8

Wemos D1入门

 2 years ago
source link: https://www.cnblogs.com/bymeet/p/15138653.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Wemos D1入门

 

 

 ESP8266特点介绍

  • 802.11 b/g/n
  • 内置Tensilica L106 超低功耗 32 位微型 MCU,主频支持 80 MHz 和160 MHz,支持 RTOS
  • 内置10 bit高精度ADC
  • 内置TCP/IP协议栈
  • 内置TR 开关、balun、LNA、功率放大器和匹配网络
  • 内置PLL、稳压器和电源管理组件,802.11b 模式下+20 dBm的输出功率
  • A-MPDU 、 A-MSDU 的聚合和 0.4 s的保护间隔
  • WiFi @ 2.4 GHz,支持 WPA/WPA2 安全模式
  • 支持AT远程升级及云端OTA升级
  • 支持 STA/AP/STA+AP 工作模式
  • 支持 Smart Config 功能(包括 Android 和 iOS 设备)
  • HSPI 、UART、I2C、I2S、IR Remote Control、PWM、GPIO
  • 深度睡眠保持电流为 10 uA,关断电流小于 5 uA
  • 2 ms 之内唤醒、连接并传递数据包
  • 待机状态消耗功率小于1.0 mW (DTIM3)
  • 工作温度范围:-40℃- 125℃

WeMos D1开发板

全称是WeMos D1 WiFI UNO R3开发板,基于ESP-8266,兼容Arduino。

有了这款物联网开发板,我们就可以愉快的使用arduino方式开发ESP8266,玩转物联网项目。

 

引脚

WeMos D1包含:

数字IO引脚11个。除了D0引脚外,其余引脚均支持pwmI2C中断单总线
模拟输入引脚1个(最大支持3.3v输入)。
模拟引脚仅有1个。数字引脚(包括RX,TX)共有11个

需要注意的一点是:WeMos D1上数字引脚的一侧引脚数量远大于11个,

这是因为该板上D3与D15D4与D14D5与D13D6与D12D7与D11D9与板载LED 它们两两之间是互通的。
具体引脚的定义可以参考我整理的引脚定义库。

1.Arduino IDE下载

链接:https://pan.baidu.com/s/1ig6psM6GvWJk0CwqaIqs7A
提取码:uyy4

 

2.示例(搜索WIFI)

复制代码
 1 /*
 2  *  This sketch demonstrates how to scan WiFi networks. 
 3  *  The API is almost the same as with the WiFi Shield library, 
 4  *  the most obvious difference being the different file you need to include:
 5  */
 6 #include "ESP8266WiFi.h"
 7 
 8 void setup() {
 9   Serial.begin(115200);
10 
11   // Set WiFi to station mode and disconnect from an AP if it was previously connected
12   WiFi.mode(WIFI_STA);
13   WiFi.disconnect();
14   delay(100);
15 
16   Serial.println("Setup done");
17 }
18 
19 void loop() {
20   Serial.println("scan start");
21 
22   // WiFi.scanNetworks will return the number of networks found
23   int n = WiFi.scanNetworks();
24   Serial.println("scan done");
25   if (n == 0)
26     Serial.println("no networks found");
27   else
28   {
29     Serial.print(n);
30     Serial.println(" networks found");
31     for (int i = 0; i < n; ++i)
32     {
33       // Print SSID and RSSI for each network found
34       Serial.print(i + 1);
35       Serial.print(": ");
36       Serial.print(WiFi.SSID(i));
37       Serial.print(" (");
38       Serial.print(WiFi.RSSI(i));
39       Serial.print(")");
40       Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE)?" ":"*");
41       delay(10);
42     }
43   }
44   Serial.println("");
45 
46   // Wait a bit before scanning again
47   delay(5000);
48 }
复制代码

3.WIFI搜索

 

4.点灯控制

复制代码
/*
 *  This sketch demonstrates how to set up a simple HTTP-like server.
 *  The server will set a GPIO pin depending on the request
 *    http://server_ip/gpio/0 will set the GPIO2 low,
 *    http://server_ip/gpio/1 will set the GPIO2 high
 *  server_ip is the IP address of the ESP8266 module, will be 
 *  printed to Serial when the module is connected.
 */

#include <ESP8266WiFi.h>

const char* ssid = "your-ssid";
const char* password = "your-password";

// Create an instance of the server
// specify the port to listen on as an argument
WiFiServer server(80);

void setup() {
  Serial.begin(115200);
  delay(10);

  // prepare GPIO2
  pinMode(2, OUTPUT);
  digitalWrite(2, 0);
  
  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
  
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
  
  // Start the server
  server.begin();
  Serial.println("Server started");

  // Print the IP address
  Serial.println(WiFi.localIP());
}

void loop() {
  // Check if a client has connected
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
  
  // Wait until the client sends some data
  Serial.println("new client");
  while(!client.available()){
    delay(1);
  }
  
  // Read the first line of the request
  String req = client.readStringUntil('\r');
  Serial.println(req);
  client.flush();
  
  // Match the request
  int val;
  if (req.indexOf("/gpio/0") != -1)
    val = 0;
  else if (req.indexOf("/gpio/1") != -1)
    val = 1;
  else {
    Serial.println("invalid request");
    client.stop();
    return;
  }

  // Set GPIO2 according to the request
  digitalWrite(2, val);
  
  client.flush();

  // Prepare the response
  String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now ";
  s += (val)?"high":"low";
  s += "</html>\n";

  // Send the response to the client
  client.print(s);
  delay(1);
  Serial.println("Client disonnected");

  // The client will actually be disconnected 
  // when the function returns and 'client' object is detroyed
}
复制代码

 

作者:儒良设计

-------------------------------------------

个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!

万水千山总是情,打赏一分行不行,所以如果你心情还比较高兴,也是可以扫码打赏博主,哈哈哈(っ•̀ω•́)っ✎⁾⁾!

posted @ 2021-08-13 18:16  儒良  阅读(470)  评论(0编辑  收藏  举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK