硬件间串口通讯与阿里云传输

一、实验原理

Arduino——>采集数据发送到掌控板——>掌控板接收数据并上传到阿里云

二、硬件与软件

硬件: Arduino uno、掌控板、DHT11、杜邦线四根、面包板
软件: Mind+

三、实验步骤

连线:掌控板扩展板的串口引脚13——TX (Arduino上的引脚1)
掌控板扩展板的串口引脚14——RX(Arduino上的引脚0)
DHT11
VCC——3.3V(Arduino)
GND——GND(Arduino)
OUT——8(Arduino)
在这里插入图片描述
连好线之后首先测试串口通信,自己上网找个Arduino代码测试一下发送,这一步很容易实现,关键是掌控板的接收,我和同学刚开始一直接收不到数据,后面修改代码终于成功了。最后就是将采集温度的数据上传到阿里云,那就大功告成了。

四、实验代码

1、采集温度数据

/*!
 * MindPlus
 * uno
 *
 */
#include <DFRobot_DHT.h>

// 动态变量
volatile float mind_n_WenDu;
// 创建对象
DFRobot_DHT dht11_8;


// 主程序开始
void setup() {
	dht11_8.begin(8, DHT11);
}
void loop() {
	mind_n_WenDu = dht11_8.getTemperature();
	delay(5000);
	Serial.begin(115200);
	Serial.write(mind_n_WenDu);
}

在这里插入图片描述
2、接收温度数据并上传阿里云

/*!
 * MindPlus
 * mpython
 *
 */
#include <MPython.h>
#include <DFRobot_Iot.h>
#include <ArduinoJson.h>

// 动态变量
String mind_s_temp;
// 静态常量
const String topics[5] = {"/sys/a1UbHBpHUbo/DHT11/thing/event/property/post","","","",""};
// 创建对象
DFRobot_Iot myIot;
String      ClientId;
String      Identifier;


// 主程序开始
void setup() {
	mPython.begin();
	ClientId = "s12345";
	Identifier = "temperature";
	myIot.wifiConnect("602iot", "18wulian");
	while (!myIot.wifiStatus()) {yield();}
	display.setCursorLine(1);
	display.printLine("WIFI连接成功!");
	myIot.init("iot-as-mqtt.cn-shanghai.aliyuncs.com", "a1UbHBpHUbo","mytest","DHT11","7c9d21379a763a8ee397de36cb15026b",topics,1883);
	myIot.connect();
	while (!myIot.connected()) {yield();}
	display.setCursorLine(2);
	display.printLine("MQTT连接成功!");
	delay(1000);
	Serial1.begin(115200, P15, P16);
}
void loop() {
	if ((Serial1.available())) {
		mind_s_temp = (String(Serial1.read()).toInt());
		display.setCursorLine(3);
		display.printLine(mind_s_temp);
		myIot.publish(topic_0, ("{\"id\":\""+ClientId+"\",\"params\":{\""+Identifier+"\":"+mind_s_temp+"},\"method\":\"thing.event.property.post\"}").c_str());
	}
}

在这里插入图片描述

五、实验结果

在这里插入图片描述
在这里插入图片描述

六、实验体会

在本次实验中,遇到了一些问题,比如刚开始一直卡在数据收发,可以发送但接收不到数据,后面在老师的指导下解决了这个问题,但是紧接着又遇到了另一个难题,就是接收到的数据要上传到阿里云,但是在掌控板那里只能显示出ASCII码,需要进行转换,尝试了好多次,还是没能解决这个问题,后面将找个时间来解决。

相关推荐
©️2020 CSDN 皮肤主题: 终极编程指南 设计师:CSDN官方博客 返回首页
实付 9.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值