单片机|IOT测试环境(Arduino UNO + ESP8266 + MQTT)基于AT指令透传(一)

最近要测试IOT平台功能,基于一块Arduino UNO和ESP-12s作为MQTT终端进行数据上报测试。MQTT具体连接在博客:https://blog.csdn.net/Fredric_2014/article/details/89602457
【参考资料】
【1】https://blog.csdn.net/private_void_main/article/details/78947831
【2】https://www.cnblogs.com/lifan3a/articles/7070028.html
引脚 单片机|IOT测试环境(Arduino UNO + ESP8266 + MQTT)基于AT指令透传(一)
文章图片

  1. VCC: 电源正极,ESP-12S 是5v;
  2. RXD: 数据接收端;
  3. TXD: 数据发送端;
  4. RST: 复位端;
  5. IO_0: 用于固件烧写模式(当前模组未暴露该接口), 低电平-烧写;高电平-程序运行
工作模式
  1. STA: 通过路由器接入网络,即上网模式;
  2. AP: 该模块作为热点,实现局域网;
  3. STA+AP: 模式共存,通常手机等不允许;
模块配置 串口设置
波特率:115200 停止位:1 数据位: 8 奇偶检验: 无

AT命令 基础验证
命令: AT+RST\r\n
功能: 第一条输入,重启建立模块
返回: OK,并打印信息后结尾为 ready,表示模块可用
AP模式
第一步
命令: AT+CWMODE=2\r\n
功能: 设置模式为AP
返回: OK
第二步
命令: AT+RST\r\n
功能: 重启,使得第一步配置生效
返回: OK + ready
第二步
命令: AT+CWSAP=,,, \r\n
ssid: 接入点名称 pwd: 密码,最长64位 chl: 通道号 ecn: 加密方式:0~不加密、 1~WEP、 2~WPA_PSK、 3~WPA2_PSK 等等 举例:AT+CWSAP="test","12345", 1, 3

功能: 设置AP参数
返回: OK + ready,完成后可用手机搜索上述配置热点接入
STA模式
命令: AT+CWJAP=,\r\n
ssid: 待接入点名称 pwd: 密码,最长64位

功能: 设置接入网络的名称和密码
返回: OK
利用arduino进行wifi模块配置 连接线(利用arduino软串口)
  1. 开发板(UX(13)) – 接 ESP TX
  2. 开发板(TX(12)) – 接 ESP RX
  3. 开发板5v – 接 VCC
  4. 开发板GND – 接 GND

程序
#include //软串口 const int tx = 1; const int rx = 0; SoftwareSerial mySerial(13, 12); // RX, TXint LED = 13; void setup() { delay(5000); pinMode(rx,INPUT_PULLUP); pinMode(tx,INPUT_PULLUP); Serial.begin(115200); Serial.println("start serial"); delay(1000); mySerial.begin(9600); //mySerial.println("AT+RST"); //mySerial.println("AT+CWMODE=1"); //mySerial.println("AT+CWLAP"); mySerial.println("AT+CWJAP=\"XXXX\",\"XXXXX\""); //此为wifi ssid和密码}void loop() {if (mySerial.available()) { Serial.write(mySerial.read()); } }

【单片机|IOT测试环境(Arduino UNO + ESP8266 + MQTT)基于AT指令透传(一)】备注:这里没有采用业务控制逻辑,因此就是每一条AT命令运行一次程序。
增加AT+CWLAP命令后去当前wifi列表的原因是,貌似有些热点esp无法获取。

    推荐阅读