最近要测试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
引脚
文章图片
工作模式
- VCC: 电源正极,ESP-12S 是5v;
- RXD: 数据接收端;
- TXD: 数据发送端;
- RST: 复位端;
- IO_0: 用于固件烧写模式(当前模组未暴露该接口), 低电平-烧写;高电平-程序运行
模块配置 串口设置
- STA: 通过路由器接入网络,即上网模式;
- AP: 该模块作为热点,实现局域网;
- STA+AP: 模式共存,通常手机等不允许;
波特率:115200
停止位:1
数据位: 8
奇偶检验: 无
AT命令 基础验证
命令: AT+RST\r\nAP模式
功能: 第一条输入,重启建立模块
返回: OK,并打印信息后结尾为 ready,表示模块可用
第一步
命令: 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参数STA模式
返回: OK + ready,完成后可用手机搜索上述配置热点接入
命令: AT+CWJAP=,\r\n
ssid: 待接入点名称
pwd: 密码,最长64位
功能: 设置接入网络的名称和密码利用arduino进行wifi模块配置 连接线(利用arduino软串口)
返回: OK
- 开发板(UX(13)) – 接 ESP TX
- 开发板(TX(12)) – 接 ESP RX
- 开发板5v – 接 VCC
- 开发板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无法获取。
推荐阅读
- 单片机|单片机初学者做项目为什么这么难(单片机初学者心得有哪些)
- 单片机|自学单片机好找工作吗(会单片机能找什么工作?)
- 单片机|keil把源代码生成lib的方法
- c语言|一文搞懂栈(stack)、堆(heap)、单片机裸机内存管理malloc
- 单片机|Arduino、arm、树莓派、单片机四者有什么不同()
- 其他|有趣的10个CMD命令
- 其他|清理C盘内存(电脑C盘飘红了,那么如何清理垃圾文件,总结几种亲测方案)
- 其他|如何复制百度文库中的内容
- 谈谈base中遇到的坑点 及 其他
- 灵动微电子全新超值型MM32F基本特性及目标应用