“Microduino WiFi(ESP) mqtt通讯固件烧写教程/zh”的版本间的差异
(创建页面,内容为“{| style="width: 800px;" |- | ==目的== 本教程将教大家如何给WiFi(ESP)模块烧写第三方固件,本文使用的固件是和mCotton通讯的固件。...”) |
(→程序) |
||
(未显示同一用户的20个中间版本) | |||
第7行: | 第7行: | ||
本教程将教大家如何给WiFi(ESP)模块烧写第三方固件,本文使用的固件是和mCotton通讯的固件。 | 本教程将教大家如何给WiFi(ESP)模块烧写第三方固件,本文使用的固件是和mCotton通讯的固件。 | ||
− | |||
− | |||
− | |||
==设备== | ==设备== | ||
第20行: | 第17行: | ||
|[[Microduino-USBTTL/zh]] ||1||下载程序 | |[[Microduino-USBTTL/zh]] ||1||下载程序 | ||
|- | |- | ||
− | |[[Microduino- | + | |[[Microduino-Module_WIFI,ESP/zh]] ||1||网络通讯 |
|} | |} | ||
− | |||
− | |||
==程序== | ==程序== | ||
− | [[ | + | *固件包及其相关文件 '''[[File:mqttFirmware.zip]]''' |
==烧写固件过程== | ==烧写固件过程== | ||
− | === | + | ===为什么要给ESP8266烧写固件=== |
烧写固件以后就有了MQTT通讯功能,也就可以和mCotton云端通讯了 | 烧写固件以后就有了MQTT通讯功能,也就可以和mCotton云端通讯了 | ||
− | === | + | |
+ | ===固件的的内部机制是什么=== | ||
固件功能是实现了一个中转: | 固件功能是实现了一个中转: | ||
*Core+得到的传感器json格式数据通过串口Serial1发送到ESP8266中,ESP8266再通过mqtt协议发送到云端 | *Core+得到的传感器json格式数据通过串口Serial1发送到ESP8266中,ESP8266再通过mqtt协议发送到云端 | ||
*云端通过mqtt协议发送json格式数据到ESP8266中,ESP8266在通过串口传到Core+,core+在控制执行器 | *云端通过mqtt协议发送json格式数据到ESP8266中,ESP8266在通过串口传到Core+,core+在控制执行器 | ||
− | === | + | ===如何给ESP8266烧写固件=== |
用microduino IDE就可以给ESP8266烧写固件,不过首先你给IDE装一个ESP8266的插件 | 用microduino IDE就可以给ESP8266烧写固件,不过首先你给IDE装一个ESP8266的插件 | ||
− | ==== | + | ====安装插件==== |
打开MicroduinoIDE进入Preferences[首选项] | 打开MicroduinoIDE进入Preferences[首选项] | ||
第62行: | 第58行: | ||
[[File:esp8266MqttIDEPlugin4.png|600px|center|thumb]] | [[File:esp8266MqttIDEPlugin4.png|600px|center|thumb]] | ||
到此,ESP8266的插件就安装成功了 | 到此,ESP8266的插件就安装成功了 | ||
− | |||
− | === | + | ===模块准备=== |
接下来你需要3个Microduino模块: | 接下来你需要3个Microduino模块: | ||
+ | |||
Core+ | Core+ | ||
− | [[File: | + | [[File:Microduino-core+ -rect.jpg|150px|link=Microduino-Core+/zh]] |
USBTTL | USBTTL | ||
− | [[File: | + | [[File:Microduino-ft232-rect.jpg|150px|link=Microduino-USBTTL/zh]] |
WiFi(ESP) | WiFi(ESP) | ||
− | [[File: | + | [[File:Microduino-8266-rect.jpg|150px|link=Microduino-Module WIFI,ESP/zh]] |
+ | |||
如果使用mCookie的话需要确保WiFi(ESP)上的跳线跳到了D2,D3 | 如果使用mCookie的话需要确保WiFi(ESP)上的跳线跳到了D2,D3 | ||
Core+ | Core+ | ||
− | [[File: | + | [[File:mCookie-core+-rect.jpg|150px|link=mCookie-Core+]] |
USBTTL | USBTTL | ||
− | [[File: | + | [[File:mCookie--FT232-rect.jpg|150px|link=mCookie-USBTTL]] |
+ | |||
WiFi(ESP) | WiFi(ESP) | ||
− | [[ | + | [[file:mCookie-WiFi-2Big1.jpg|800px|thumb|center|mCookie-WiFi]] |
− | ==== | + | ====给Core+考入程序帮助WiFi(ESP)烧写固件==== |
现在需要给Core+考入一个串口转换的程序用来帮助WiFi(ESP)烧写固件 | 现在需要给Core+考入一个串口转换的程序用来帮助WiFi(ESP)烧写固件 | ||
代码如下: | 代码如下: | ||
− | + | 使用核心配合烧写固件 | |
+ | **将USBTTL、Core+、WIFI三个模块叠堆起来(不能用Core,波特率达不到115200) | ||
+ | **将以下程序下载到Core+中即可 | ||
+ | <source lang="cpp"> | ||
+ | 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); | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
代码附件: | 代码附件: | ||
softToHard.ino | softToHard.ino | ||
[[File:esp8266MqttCorePlusCode1.png|600px|center|thumb]] | [[File:esp8266MqttCorePlusCode1.png|600px|center|thumb]] | ||
− | ==== | + | |
+ | ====加入json库函数==== | ||
+ | 把提供给你的ArduinoJson库 | ||
+ | [[File:esp8266MqttYourDeviceCode3.png|600px|center|thumb]] | ||
+ | 解压后放到你的IDE地址里的libraries里 | ||
+ | [[File:esp8266MqttYourDeviceCode4.png|600px|center|thumb]] | ||
+ | |||
+ | ====正式烧写固件==== | ||
考好程序后把3个模块堆叠在一起,确保WiFi(ESP)模块的按钮露在外边因为一会烧写的时候要按住它不松手 | 考好程序后把3个模块堆叠在一起,确保WiFi(ESP)模块的按钮露在外边因为一会烧写的时候要按住它不松手 | ||
第120行: | 第143行: | ||
[[File:esp8266MqttYourDeviceCode1.png|600px|center|thumb]] | [[File:esp8266MqttYourDeviceCode1.png|600px|center|thumb]] | ||
[[File:esp8266MqttYourDeviceCode2.png|600px|center|thumb]] | [[File:esp8266MqttYourDeviceCode2.png|600px|center|thumb]] | ||
− | 如果在上传你自己写的设备程序时候报 无法找到 | + | |
+ | 如果在上传你自己写的设备程序时候报 无法找到 ArduinoJson库的错误的话,那就是之前没有加入Json库到IDE里 | ||
+ | |||
+ | 请把提供给你的ArduinoJson库 | ||
[[File:esp8266MqttYourDeviceCode3.png|600px|center|thumb]] | [[File:esp8266MqttYourDeviceCode3.png|600px|center|thumb]] | ||
解压后放到你的IDE地址里的libraries里即可 | 解压后放到你的IDE地址里的libraries里即可 | ||
[[File:esp8266MqttYourDeviceCode4.png|600px|center|thumb]] | [[File:esp8266MqttYourDeviceCode4.png|600px|center|thumb]] | ||
− | |||
|} | |} |
2017年5月24日 (三) 08:40的最新版本
目录目的本教程将教大家如何给WiFi(ESP)模块烧写第三方固件,本文使用的固件是和mCotton通讯的固件。 设备
程序
烧写固件过程为什么要给ESP8266烧写固件烧写固件以后就有了MQTT通讯功能,也就可以和mCotton云端通讯了 固件的的内部机制是什么固件功能是实现了一个中转:
如何给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模块: 如果使用mCookie的话需要确保WiFi(ESP)上的跳线跳到了D2,D3 WiFi(ESP) 给Core+考入程序帮助WiFi(ESP)烧写固件现在需要给Core+考入一个串口转换的程序用来帮助WiFi(ESP)烧写固件 代码如下: 使用核心配合烧写固件
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里即可 |