最近在学习物联网,第一次买了一个Aaruino D1 WIFI开发板,过程遇到不少困难,甚至怀疑开发板是不是有问题;后来发现网上的大部分教程里用的是NodeMCU,于是我就把它买了下来,本教程里用的也是NodeMCU开发板。
下面是分别是接入阿里云物联网平台和百度天工物联网平台的注意事项:
阿里云物联网平台
阿里云物联网平台链接:https://www.aliyun.com/product/iot
直接进入管理控制台即可,新建设备什么的比较简单,查看技术文档即可
下面是阿里云开发者社区给出的教程:
NodeMCU(ESP8266)接入阿里云物联网平台
对于上面教程里的esp8266.ino 代码:
#include <ESP8266WiFi.h>
/* 依赖 PubSubClient 2.4.0 */
#include <PubSubClient.h>
/* 依赖 ArduinoJson 5.13.4 */
#include <ArduinoJson.h>
#define SENSOR_PIN 13
/* 连接您的WIFI SSID和密码 */
#define WIFI_SSID "路由器SSID"
#define WIFI_PASSWD "密码"
/* 设备的三元组信息*/
#define PRODUCT_KEY "设备PRODUCT_KEY"
#define DEVICE_NAME "替换DEVICE_NAME"
#define DEVICE_SECRET "替换DEVICE_SECRET"
#define REGION_ID "cn-shanghai"
/* 线上环境域名和端口号,不需要改 */
#define MQTT_SERVER PRODUCT_KEY ".iot-as-mqtt." REGION_ID ".aliyuncs.com"
#define MQTT_PORT 1883
#define MQTT_USRNAME DEVICE_NAME "&" PRODUCT_KEY
#define CLIENT_ID "esp8266|securemode=3,timestamp=1234567890,signmethod=hmacsha1|"
// 算法工具: http://iot-face.oss-cn-shanghai.aliyuncs.com/tools.htm 进行加密生成password
// password教程 https://www.yuque.com/cloud-dev/iot-tech/mebm5g
#define MQTT_PASSWD "参考上面password教程,算法工具生成"
#define ALINK_BODY_FORMAT "{\"id\":\"123\",\"version\":\"1.0\",\"method\":\"thing.event.property.post\",\"params\":%s}"
#define ALINK_TOPIC_PROP_POST "/sys/" PRODUCT_KEY "/" DEVICE_NAME "/thing/event/property/post"
这里主要讲一下CLIENT_ID和MQTT_PASSWD:
- CLIENT_ID的timestamp不用写,也就是:
"esp8266|securemode=3,signmethod=hmacsha1|"
- MQTT_PASSWD使用password生成小工具
这个生成方法对刚开始接触的同学比较友好,至少比注释里提供的方式要简明的多:
把这块搞定,其他的基本就没什么问题了
阿里云的接入方法还是比较简单的,也有很多资源,下面来看看接入百度天工物联网平台的方法
百度天工物联网平台
百度天工物接入IoT Hub链接:
https://cloud.baidu.com/product/iot.html
创建设备的方法很简单,在帮助文档都能找到:
下面是百度开发者中心里的案例:
了解物接入-家庭温湿度交互式系统开发
教程里用的是Linux系统,但是问题不大,使用Windows系统的朋友也是可以的
首先是第三步的固件包下载:
这里划重点!
一定要把MQTT加上,如果要做温湿度检测,还要把DHT勾上,不然就会像这样:
报错信息如下:
PANIC: unprotected error in call to Lua API (init.lua:37: attempt to index global ‘mqtt’ (a nil value))
这个报错就好像python里导入的库没有安装一样
接下来是第4步:
准确说,这里的烧录不是上传程序,而是为后续的程序上传做准备,具体原因请看 NodeMCU文档:
https://nodemcu.readthedocs.io/en/master/flash/#putting-device-into-flash-mode
那这一步怎么做呢?教程用到的是esptool.py
esptool.py的GitHub地址在教程上已经给了,但是下载速度很慢,这里我找了一个码云的,一样的,亲测能用:
https://gitee.com/reepu/esptool
使用方法在readme.md里,比较重要的是这一部分:
对应着教程里的这一部分:
在Windows系统下,驱动路径直接写COM口即可,下面是我用的命令:
python C:\Users\Administrator\Downloads\reepu-esptool-master\esptool\esptool.py --port COM10 write_flash -fm dio 0x00000 C:\Users\Administrator\Downloads\nodemcu