因为蛋疼的缘故, 接触了一下MQTT, 从一个大佬那里听说了涂鸦这个牛逼平台, 但是我正玩阿里的IoT呢, 就拿进行了一半的阿里IoT练练手吧.
目标是一句话: 用手机控制一个ESP8266的模块上面的一个灯.
这里面涉及几个问题:
1. ESP8266固件
2. App如何访问云端? 直接MQTT?
3. 小机端怎么连接阿里的IoT? 这个问题是问题1的延续.
挨个来说, 我的模块是某宝买的, (感觉被坑了, 20块钱).
https://detail.tmall.com/item.htm?id=524942473974&spm=a1z09.2.0.0.459e2e8dI58meT&_u=b124ig73098
排线居然焊歪了.根据这个卖家的资料, 看得我一头雾水, 一是所谓官方网站, 也就是这个http://www.nodemcu.com 啥鸡毛都没有, 几年前我玩这个8266的时候, 依稀记得貌似用的是lua, 但是这个网站没有提到lua, 反而说可以像arduino一样编程, 我有点儿糊涂了就.
先是找了一个早就没有人用的nodemcu studio 2015, 看名字就知道够老了. 折腾了一番, 终于把init.lua刷进去了, 基本能连到我家的wifi上去.
后来一个偶然的机会听说了涂鸦, 进去一看文档, 哎哟, 都是用的esp8266, 这样我又从他们官网顶了两个模块, 后来发现完全没必要.
然后回到阿里这边折腾, 发现了开发文档里面说到了, 这里要先吐槽一下涂鸦的文档, 压根没有写任何有意义的关于mcu开发的例程, 甚至连固件的编译都只字不提, 且不提怎么写代码, 我他妈怎把东西刷进去我都不知道, 搞毛线.
我后来记得貌似阿里的文档中, 提到了8266的一个快速应用案例, 一看哎呦, 还有源码, 再一看, 居然是arduino的, 这么说, esp8266真的如nodemcu.com网站上所说, 可以当作arduino来编程?
后来google了一番, 诚不我欺也, ESP8266上真的可以跑arduino, 连引脚都靠谱.
过程是, 先下一个adruino的ide, for windows版本.
记得前面根据倒霉卖家提供的资料百度盘, 下载安装一下板子的usb驱动, cp2102, 我买的是廉价的cp2102的版本.
装好之后, 去arduino的首选项里面, 加上开发板的管理器地址, 就是一个repo源
https://www.arduino.cn/package_esp8266com_index.json
再在arduino的开发板管理器里面, 下载NodeMCU 1.0的开发板
接着是两个库, 因为阿里的源码里面要引用这两个库: PubSubClient ArduinoJson
直接进库管理里面搜就行了. 注意版本最好跟阿里源码里面的版本一致.
#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 "xxid" #define WIFI_PASSWD "password" /* 设备证书信息*/ #define PRODUCT_KEY "a1mBLX1dkbZ"