“Microduino WiFi(ESP) mqtt通讯固件烧写教程/zh”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
出处
程序
 
(未显示同一用户的17个中间版本)
第17行: 第17行:
 
|[[Microduino-USBTTL/zh]] ||1||下载程序
 
|[[Microduino-USBTTL/zh]] ||1||下载程序
 
|-
 
|-
|[[Microduino-WiFi(ESP)/zh]] ||1||网络通讯
+
|[[Microduino-Module_WIFI,ESP/zh]] ||1||网络通讯
  
 
|}
 
|}
 
 
  
 
==程序==
 
==程序==
  
[[https://github.com/Microduino/mqttFirmware https://github.com/Microduino/mqttFirmware]]
+
*固件包及其相关文件 '''[[File:mqttFirmware.zip]]'''
  
 
==烧写固件过程==
 
==烧写固件过程==
  
===1.为什么要给ESP8266烧写固件===
+
===为什么要给ESP8266烧写固件===
 
烧写固件以后就有了MQTT通讯功能,也就可以和mCotton云端通讯了
 
烧写固件以后就有了MQTT通讯功能,也就可以和mCotton云端通讯了
===2.固件的的内部机制是什么===
+
 
 +
===固件的的内部机制是什么===
 
固件功能是实现了一个中转:
 
固件功能是实现了一个中转:
 
*Core+得到的传感器json格式数据通过串口Serial1发送到ESP8266中,ESP8266再通过mqtt协议发送到云端
 
*Core+得到的传感器json格式数据通过串口Serial1发送到ESP8266中,ESP8266再通过mqtt协议发送到云端
 
*云端通过mqtt协议发送json格式数据到ESP8266中,ESP8266在通过串口传到Core+,core+在控制执行器
 
*云端通过mqtt协议发送json格式数据到ESP8266中,ESP8266在通过串口传到Core+,core+在控制执行器
  
===3.如何给ESP8266烧写固件===
+
===如何给ESP8266烧写固件===
 
用microduino IDE就可以给ESP8266烧写固件,不过首先你给IDE装一个ESP8266的插件
 
用microduino IDE就可以给ESP8266烧写固件,不过首先你给IDE装一个ESP8266的插件
  
====3.1.安装插件====
+
====安装插件====
 
打开MicroduinoIDE进入Preferences[首选项]
 
打开MicroduinoIDE进入Preferences[首选项]
  
第59行: 第58行:
 
[[File:esp8266MqttIDEPlugin4.png|600px|center|thumb]]
 
[[File:esp8266MqttIDEPlugin4.png|600px|center|thumb]]
 
到此,ESP8266的插件就安装成功了
 
到此,ESP8266的插件就安装成功了
[[File:esp8266MqttIDEPlugin5.png|600px|center|thumb]]
 
  
===3.2.模块准备===
+
===模块准备===
 
接下来你需要3个Microduino模块:
 
接下来你需要3个Microduino模块:
 +
 
Core+
 
Core+
[[File:esp8266MqttModule1.png|600px|center|thumb]]
+
[[File:Microduino-core+ -rect.jpg|150px|link=Microduino-Core+/zh]]
 
USBTTL
 
USBTTL
[[File:esp8266MqttModule2.png|600px|center|thumb]]
+
[[File:Microduino-ft232-rect.jpg|150px|link=Microduino-USBTTL/zh]]
 
WiFi(ESP)
 
WiFi(ESP)
[[File:esp8266MqttModule3.png|600px|center|thumb]]
+
[[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:esp8266MqttModule4.png|600px|center|thumb]]
+
[[File:mCookie-core+-rect.jpg|150px|link=mCookie-Core+]]
 
USBTTL
 
USBTTL
[[File:esp8266MqttModule5.png|600px|center|thumb]]
+
[[File:mCookie--FT232-rect.jpg|150px|link=mCookie-USBTTL]]
 +
 
 
WiFi(ESP)
 
WiFi(ESP)
[[File:esp8266MqttModule6.png|600px|center|thumb]]
+
[[file:mCookie-WiFi-2Big1.jpg|800px|thumb|center|mCookie-WiFi]]
  
====3.3.给Core+考入程序帮助WiFi(ESP)烧写固件====
+
====给Core+考入程序帮助WiFi(ESP)烧写固件====
 
现在需要给Core+考入一个串口转换的程序用来帮助WiFi(ESP)烧写固件
 
现在需要给Core+考入一个串口转换的程序用来帮助WiFi(ESP)烧写固件
  
 
代码如下:
 
代码如下:
[[File:esp8266MqttCorePlusCode.png|600px|center|thumb]]
+
使用核心配合烧写固件
 +
**将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]]
  
====3.4.正式烧写固件====
+
 
 +
====加入json库函数====
 +
把提供给你的ArduinoJson库
 +
[[File:esp8266MqttYourDeviceCode3.png|600px|center|thumb]]
 +
解压后放到你的IDE地址里的libraries里
 +
[[File:esp8266MqttYourDeviceCode4.png|600px|center|thumb]]
 +
 
 +
====正式烧写固件====
 
考好程序后把3个模块堆叠在一起,确保WiFi(ESP)模块的按钮露在外边因为一会烧写的时候要按住它不松手
 
考好程序后把3个模块堆叠在一起,确保WiFi(ESP)模块的按钮露在外边因为一会烧写的时候要按住它不松手
  
第117行: 第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库的错误的话请把提供给你的ArduinoJson库
+
 
 +
如果在上传你自己写的设备程序时候报 无法找到 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通讯的固件。

设备

模块 数量 功能
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里即可