一、Arduino开发环境
- 开发工具: Arduino
- 开 发 板: esp8266 core for arduino v3.0.2 或 esp32 core for arduino 1.0.6
- 依 赖 库: PubSubClient2.8.0 、 ArduinoJson6.19.1 、 OneButton2.0.4
二、Arduino示例功能
- WIFI连接、MQTT连接、设备加密认证、设备配网、发布设备信息、订阅设备升级、Http和Mqtt获取设备当前时间、
- 物模型(属性、功能、事件)的发布和订阅
- 实时监测、模拟上报监测数据
- 用户自定义功能:继电器的开关
三、Arduino项目文件说明
使用该SDK主要修改Config.cpp里面的配置信息,在User.cpp里面根据产品物模型,实现自定义功能。
├───Apconfig.cpp #设备配网
├───Apconfig.h
├───Auth.cpp #设备认证
├───Auth.h
├───Base64.cpp #base64编码和解码
├───Base64.h
├───Config.cpp #全局配置信息
├───Config.h
├───Mqtt.cpp #设备交互
├───Mqtt.h
├───User.cpp #用户自定义功能
├───User.h
├───WumeiArduino.h #程序入口
四、在FastBee平台创建设备
4.1 创建设备
4.2 修改序列号,产品编码,WIFI SSID和密码
在Config.cpp文件中修改
/**********************************可配置的项 **********************************/
// wifi信息 可通过小程序配网获取,也可以写死
char *wifiSsid = "WIFI SSID";
char *wifiPwd = "WIFI密码";
// 默认绑定admin账号
char *userId = "1";
// 产品启用授权码,则授权码不能为空
char *authCode = "";
// 设备信息配置
char *deviceNum = "D1ELV3A5TOJS";
char *productId = "41";
float firmwareVersion = 1.0;
// 经度和纬度可选,如果产品使用设备定位,则必须传
float latitude = 0;
float longitude = 0;
// Mqtt配置
char *mqttHost = "fastbee.cn";
int mqttPort = 1883;
char *mqttUserName = "FastBee";
char *mqttPwd = "P47T6OD5IPFWHUM6";
char mqttSecret[17] = "KX3TSH4Q4OS835DO";
五、Ardunio烧录代码
设备烧录代码示例,常见串口模块如:CH340。ESP8266中GPIO0引脚跟GDN引脚连接,拉低电平,进入烧录模式。