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张图片

  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, TX

int 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());
  }
}

备注:这里没有采用业务控制逻辑,因此就是每一条AT命令运行一次程序。
增加AT+CWLAP命令后去当前wifi列表的原因是,貌似有些热点esp无法获取。

你可能感兴趣的:(单片机,其他)