基于arduino采集光照强度通过软串口发送数据给DFrobot Mind+掌控板并上传阿里云物联网平台
一、硬件准备
二、软件准备
三、项目开始
arduino IDE下载链接:
1、arduino软串口发送数据
在这里不用硬串口是因为每次烧写程序是都要拔掉对应的插线,不然会出现占用现象。发送数据时,可以考虑直接发送JSON格式,因为阿里云物联网的数据格式就是JSON格式,这样接收方便处理。
(1)具体代码:
#include <SoftwareSerial.h>#include <string.h>SoftwareSerial mySerial(3, 6); // RX, TX#define Sunshine A0 //定义AO 引脚 为 IO-A0String sun;long last_time = 0;void setup() {Serial.begin(9600);while (!Serial) {; // wait for serial port to connect. Needed for native USB port only}// set the data rate for the SoftwareSerial portmySerial.begin(115200);//监听软串口通信pinMode(Sunshine, INPUT);//定义A0为输入模式,将AO所测得的数据输入到计算机中}void loop() {// run over and overlong now = millis();if (now - last_time > 2000) {last_time = now;sun = analogRead(Sunshine);mySerial.write(sun.c_str());Serial.println(sun); }}
2、掌控板接收数据并发送上阿里云物联网平台
(1)物联网平台
A.阿里云物联网平台相关配置
B.创建相关产品和设备
b1.点击公共实例
b2.创建产品
b3.创建设备
创建设备是对应着相关产品的,每一个设备都相当于是相关设备的功能。
b4.定义相关产品的功能并用于相关设备
相关说明(自定义功能,这里用的也是它)
1、属性、服务、事件
属性:一般是设备的运行状态,如当前温度等;
服务:是设备可被调用的方法,支持定义参数,如执行某项任务;
事件:是设备上报的通知,如告警,需要被及时处理。
2、功能名称、标识符、数据类型、取值范围等
注:这些都可以自己定义,不过建议用平台推荐的
(2)Mind+的具体代码及相关说明
Mind+IDE下载链接:
A.添加相关功能
这里选择上传模式(在右上角),主控板选择掌控板,网络服务选择WiFi和mqtt,在用户库搜索JSON格式
a1.主控板
a2.网络服务
a3.用户库搜索
B.部分重要代码解析
b1.mqtt配置及连接
三元组
topic_0的配置:
/sys/a1svJVDRTXY/${deviceName}/thing/event/property/post
改成:/sys/a1svJVDRTXY/LI_test/thing/event/property/post
注:${deviceName}:改成自己的设备名字,即deviceName。
b2.数据处理:由于串口是一个一个字符发送过来的,所以每次都要把全部数据接收完才能完整,同时把数据转变成整型。在掌控板这端也同样是使用了软串口进行通信(接收数据),由于掌控板是使用十进制的ASCII码进行通信的,所以掌控板在接收到数据后,要将十进制ASCII码转为相对应的ASCII码字符。(这是个坑)
b3.完整代码
标识符
四、相关效果展示
(1)云平台展示
(2)arduino串口打印
(3)掌控板串口打印
(4)web端展示
A.在iot studio开发一个web显示界面
B.选择web可视化开发
C.新创建一个web应用
D.关联产品和设备
d1.关联产品
d2.关联设备
d3.配置资源
d4.最终效果
五、总结
以上就是使用Arduino UNO采集数据传至掌控板,并由掌控板提取数据发送上云的小实验,简单的介绍了一下一些实验过程中要注意的点。如有写的不好的地方,欢迎大家提点宝贵的建议。