Microduino WiFi(ESP) mqtt通讯固件烧写教程/zh

来自Microduino Wikipedia
跳转至: 导航搜索


目的

本教程将教大家如何给WiFi(ESP)模块烧写第三方固件,本文使用的固件是和mCotton通讯的固件。

设备

模块 数量 功能
Microduino-Core+/zh 1 核心板
Microduino-USBTTL/zh 1 下载程序
Microduino-Module_WIFI,ESP/zh 1 网络通讯

程序

烧写固件过程

为什么要给ESP8266烧写固件

烧写固件以后就有了MQTT通讯功能,也就可以和mCotton云端通讯了

固件的的内部机制是什么

固件功能是实现了一个中转:

  • Core+得到的传感器json格式数据通过串口Serial1发送到ESP8266中,ESP8266再通过mqtt协议发送到云端
  • 云端通过mqtt协议发送json格式数据到ESP8266中,ESP8266在通过串口传到Core+,core+在控制执行器

如何给ESP8266烧写固件

用microduino IDE就可以给ESP8266烧写固件,不过首先你给IDE装一个ESP8266的插件

安装插件

打开MicroduinoIDE进入Preferences[首选项]

在Additional Boards Manager URLs[附加开发板管理器网址]里输入:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

点击OK,重启IDE

选择Boards Manager[开发板管理器]

在搜索框中输入关键字ESP就能看到要安装的插件,点击install,(我的已经安装完了所以不可用)

Tips:如果安装不成功需要翻墙

安装好以后板卡就可以选择Generate ESP8266 Module

到此,ESP8266的插件就安装成功了

模块准备

接下来你需要3个Microduino模块:

Core+ Microduino-core+ -rect.jpg USBTTL Microduino-ft232-rect.jpg WiFi(ESP) Microduino-8266-rect.jpg

如果使用mCookie的话需要确保WiFi(ESP)上的跳线跳到了D2,D3

Core+ MCookie-core+-rect.jpg USBTTL MCookie--FT232-rect.jpg

WiFi(ESP)

mCookie-WiFi

给Core+考入程序帮助WiFi(ESP)烧写固件

现在需要给Core+考入一个串口转换的程序用来帮助WiFi(ESP)烧写固件

代码如下: 使用核心配合烧写固件

    • 将USBTTL、Core+、WIFI三个模块叠堆起来(不能用Core,波特率达不到115200)
    • 将以下程序下载到Core+中即可
void setup() { 
  Serial.begin(115200); 
  Serial1.begin(115200);
} 

void loop() { 
  if (Serial.available()) { 
    char c = Serial.read(); 
    Serial1.write(c); 
  } if (Serial1.available()) { 
    char c = Serial1.read(); 
    Serial.write(c); 
  }
}

代码附件: softToHard.ino


加入json库函数

把提供给你的ArduinoJson库

解压后放到你的IDE地址里的libraries里

正式烧写固件

考好程序后把3个模块堆叠在一起,确保WiFi(ESP)模块的按钮露在外边因为一会烧写的时候要按住它不松手

好了,要开始上传了:

固件有两中可根据实际需要选择:

一种是不支持smartConfiger的固件IOTFirmwareV6_7_13.ino

另一种是支持smartConfiger的固件smartMqttESPFirmware.ino

根据你的需要选择一个打开

插上USB以后选择Serial

串口选择分配的串口(我的串口是COM18,你的可能不一样)

USBTTL +core+ +ESP8266堆叠好以后,上传固件的时候要按住那个按钮(mCookie的ESP8266的串口引脚是0,1,为了好调试可以改成2,3,micorduino的ESP8266引脚是2,3所以不用改)

上传就点这个上传就可以了,记住给ESP8266上传代码固件的时候要按住那个按钮

烧写完以后,之前的Core+就可以用来做其它事情了,比如获取温湿度数据传给WiFi(ESP),然后刚才你考入的固件就可以把温湿度数据上传云端了

然而,如果你有很多设备需要通过mqtt上传云端的话,这个Core+就可以不烧写其它程序做好标记,只用来给WiFi(ESP)烧写固件

4.编写你自己的设备程序:

在写你自己设备程序的时候可以参照提供给你的示例代码:

如果在上传你自己写的设备程序时候报 无法找到 ArduinoJson库的错误的话,那就是之前没有加入Json库到IDE里

请把提供给你的ArduinoJson库

解压后放到你的IDE地址里的libraries里即可