NodeMCU(ESP8266) 接入阿里云物联网平台 踩坑之旅

在看阿里云的物联网平台的时候发现居然可以接入NodeMCU ,于是就顺手买了一个就开始弄,一路上遇到了不少的坑,经过接近三天的时间才完整的把问题解决,为此写一下我的笔记,可以选择新阅读

NodeMCU

简介

官网

www.nodemcu.com

官方解释

一款开源快速硬件原型平台,包括固件和开发板,用几行简单的Lua脚本就能开发物联网应用

第三方解释

找了很久都没有找到有什么人对这个模块做一个比较完整的介绍,就引用百度百科的一段介绍,感觉还比较合理的

NodeMCU,是一个开源的物联网平台。 它使用Lua脚本语言编程。该平台基于eLua 开源项目,底层使用ESP8266 sdk 0.9.5版本。该平台使用了很多开源项目, 例如 lua-cjson, spiffs.
NodeMCU包含了可以运行在 esp8266 Wi-Fi SoC芯片之上的固件,以及基于ESP-12模组的硬件。

我个人解释

简单,便宜,快速的物联网开发平台

参考文章

初识 NodeMCU 及其 DEVKIT开发板

快速入门

这里的快速入门我也是参照别人的,我个人的话也不想去列举一个步骤,所以请参考参考文章

1.我的购买淘宝链接

(没有打广告的意思,确确实是就是单纯的推荐)

wifi物联网 ESP8266开发板 V3 ESP-12N F NodeMcu Lua CP2102

2.CP2102驱动下载地址

USB串口有好多种类型,其中包括(FT232,CP2102,CH340,PL2303)
不同的类型就需要不同的驱动软件来驱动,这里我列举的是CP2102,所以附上驱动下载地址

cp2102驱动下载地址

3.ArduinoIDE 下载地址 推荐下载windows免安装包

下载Arduino软件

4.快速入门CSDN文章

ESP8266与NodeMCU开发(一)环境搭建

简单使用

阿里云物联网

简介

官方解释

物联网平台是阿里云针对物联网领域开发人员推出的一款设备管理平台。高性能IoTHub实现设备与云端稳定通信,全球多节点部署有效降低通信延时,多重防护能力保障设备云端安全。此外,物联网平台还提供丰富的设备管理功能、稳定可靠的数据存储能力,以及规则引擎。使用规则引擎,您仅需在Web上配置简单规则,即可将设备数据转发至阿里云其他产品,获得数据采集、数据计算、数据存储的全栈服务,真正实现物联网应用的灵活快速搭建。

官方文档

阿里云物联网平台

快速入门

推荐参考阿里的快速入门的文档,其实也很简单,大致流程是:

  1. 创建产品

  2. 为产品添加设备

  3. 将创建好的设备绑定到真实的物理设备上

  4. 调试

NodeMCU(ESP8266)接入物联网平台

如果说您已经知道如何向nodeMCU里面编写程序,您就可以开始这一步操作了

这里我只说明我踩到的坑,具体教程,请看阿里官方的教程文档:

NodeMCU(ESP8266)接入物联网平台

坑1

MQTT_PASSWD 生成问题 看了文档显示很不清晰,而且官方给的小工具也比较垃圾 问题就在CLIENT_ID

CLIENT_ID是可以自己随便定义的,但是你一定要要加|securemode=3,timestamp=1234567890,signmethod=hmacsha1|
这一段,可是文档没说这个是你生成完passwd后加的,我每次生成的时候就带上了这一段,所以pubsubclient这个工具一直给我报err=4,找了很久才找到err的错误代码表
所以我重新改了一下这个小工具

生成MQTT_PASSWD工具

int - the client state, which can take the following values (constants defined in PubSubClient.h):

int - the client state, which can take the following values (constants defined in PubSubClient.h):

-4 : MQTT_CONNECTION_TIMEOUT - the server didn’t respond within the keepalive time

-3 : MQTT_CONNECTION_LOST - the network connection was broken

-2 : MQTT_CONNECT_FAILED - the network connection failed

-1 : MQTT_DISCONNECTED - the client is disconnected cleanly

0 : MQTT_CONNECTED - the client is connected

1 : MQTT_CONNECT_BAD_PROTOCOL - the server doesn’t support the requested version of MQTT

2 : MQTT_CONNECT_BAD_CLIENT_ID - the server rejected the client identifier

3 : MQTT_CONNECT_UNAVAILABLE - the server was unable to accept the connection

4 : MQTT_CONNECT_BAD_CREDENTIALS - the username/password were rejected

5 : MQTT_CONNECT_UNAUTHORIZED - the client was not authorized to connect

坑2

官方的背景说是控制一个灯泡设备,其实是一个红外人体感应设备,就是说根本不能点亮一个灯泡设备

后期列出我的源码

写在最后

这个文章写得很不好,很乱;主要是我比较懒,不想一一去列举这些东西,但是欢迎有疑问的朋友加我的QQ:1286396784 一起沟通交流,这个是我个人QQ账号,不涉及任何的广告,没有任何的有关钱的问题,单纯的技术沟通和学习