mini D1WiFi模块Arduino开发简介
扫描二维码
随时随地手机看文章
mini D1 WiFi模块简介
六月份每月活动将使用此模块连接WiFi。

该模块上有一个RESET按键,用于复位模块;
有一个Micro USB座,用于与CH340芯片相连,用于实现USB转串口,该串口可以用于下载固件、程序,打印输出串口信息使用。
模块的TX、RX引脚可以跟单片机的串口交叉相连,进而可以实现单片机与WiFi模块的联用。
我们六月份的智能风扇的实现就会选用这个模块,然后使用这两个引脚与STM32的串口相连,使用STM32解析接收到的串口数据,进而判断应该执行某种指令。
该模块基于ESP-12F模组,各个引脚的说明如下图所示:

上电测试
刚买回来的模块串口打印输出情况:

最开始显示乱码的原因是,因为esp8266模块上电时,默认打印波特率为74880,而固件中的比特率是115200,所以我们在115200比特率下查看输出,就是乱码。使用友善之臂的串口调试助手,可以自定义串口比特率,设置为74880,那么显示就正常了,但是固件输出的信息又变成乱码了。

Arduino IDE 环境搭建
下载arduino-1.8.8-windows.zip,解压之后,打开Arduino IDE “arduino.exe”,然后点击选择:文件-->首选项。

在“附加开发板管理器网址”处输入:
http://arduino.esp8266.com/stable/package_esp8266com_index.json

进入:工具-->开发板-->开发板管理器

选择ESP8266库,并按下“安装”,下载安装ESP8266开发板类型文件库(Arduino官方库文件更新,下载需要一定时间,请耐心等待!)


安装完毕之后,就在IDE工具-->开发板中找到咱们的mini D1模块【WeMos D1 R1】。

示例代码
打开WiFiScan示例:

#include "ESP8266WiFi.h" void setup() { Serial.begin(115200); // Set WiFi to station mode and disconnect from an AP if it was previously connected WiFi.mode(WIFI_STA); WiFi.disconnect(); delay(100); Serial.println("Setup done"); } void loop() { Serial.println("scan start"); // WiFi.scanNetworks will return the number of networks found int n = WiFi.scanNetworks(); Serial.println("scan done"); if (n == 0) { Serial.println("no networks found"); } else { Serial.print(n); Serial.println(" networks found"); for (int i = 0; i < n; ++i) { // Print SSID and RSSI for each network found Serial.print(i + 1); Serial.print(": "); Serial.print(WiFi.SSID(i)); Serial.print(" ("); Serial.print(WiFi.RSSI(i)); Serial.print(")"); Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE) ? " " : "*"); delay(10); } } Serial.println(""); // Wait a bit before scanning again delay(5000); }
代码中可以看到,每隔五秒,模块会打印出周围的SSID的信息,如此反复。
硬件连接并测试
找一个MicroUSB线与模块相连:

点击下图向右箭头,编译并下载程序,成功烧录程序如下图所示:

打开串口助手,设置串口号为模块的串口号,比特率:115200,按一下模块上的Reset键,复位模块,打印日志如下图所示:

Arduino软件菜单中的“文件”-->“示例”-->“WeMos D1 R1的例子”中有很多Demo代码,大家可以自己下载验证,学习一下。