基于arduino采集光照强度通过软串口发送数据给DFrobot Mind+掌控板并上传阿里云物联网平台

一、硬件准备

器件数量
Mind +掌控板1
arduino uno1
micro:bit掌控I/O扩展板1
光照传感器1
杜邦线若干

二、软件准备

名称版本
Mind+V1.7.0 RC3.0(自己看着办)
arduino IDE1.8.13(自己看着办)

三、项目开始

arduino IDE下载链接:

1、arduino软串口发送数据
在这里不用硬串口是因为每次烧写程序是都要拔掉对应的插线,不然会出现占用现象。发送数据时,可以考虑直接发送JSON格式,因为阿里云物联网的数据格式就是JSON格式,这样接收方便处理。

(1)具体代码:

#include <SoftwareSerial.h>
#include <string.h>

SoftwareSerial mySerial(3, 6); // RX, TX
#define Sunshine A0 //定义AO 引脚 为 IO-A0
String 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 port
  mySerial.begin(115200);
  //监听软串口通信
  pinMode(Sunshine, INPUT);//定义A0为输入模式,将AO所测得的数据输入到计算机中

}
void loop() { // run over and over
  long 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采集数据传至掌控板,并由掌控板提取数据发送上云的小实验,简单的介绍了一下一些实验过程中要注意的点。如有写的不好的地方,欢迎大家提点宝贵的建议。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐