【Arduino】双主板串口通信并将光敏传感器信息上传到阿里云

【Arduino】双主板串口通信并将光敏传感器信息上传到阿里云


前言

注:本文系湛江市第十七中学星火创客团队及岭南师范学院物联网俱乐部原创部分参赛项目,转载请保留声明

在很多时候,我们发现一个主控板满足你当前的部分需求,然后另一个主控板满足你另一部分需求,两个主控板刚好满足你所有需求,这时候我们可以用到串口通信,将两个主控板都使用起来


一、所需材料

电脑一台
Mind+
阿里云物联网平台
Arduino UNO
掌控板
掌控板拓展板
光敏
杜邦线若干

UNO和光敏传感器接线方法

光敏传感器UNO
VCC3.3V
GNDGND
SA0

UNO和掌控板串口接线

UNO掌控板
D0P14
D1P13

二、掌控板部分

1、引入库

1、打开拓展
在这里插入图片描述
2、添加主控板
在这里插入图片描述
3、引入网络服务,添加WiFi和MQTT
在这里插入图片描述
4、导入json库
在这里插入图片描述

2、配置WiFi和MQTT

1、添加WiFi
在这里插入图片描述
2、添加MQTT信息,初始化MQTT
在这里插入图片描述
3、添加阿里云三元组,订阅物模型topic
在这里插入图片描述
3、完整代码
在这里插入图片描述

三、UNO部分

1、导入库

1、选择UNO开发板
在这里插入图片描述
2、完整程序
在这里插入图片描述

代码下载

四、效果

可以看到阿里云可以接收到数据
在这里插入图片描述

总结

图形化编程相对代码形式来讲会简单非常多,但是正是积木块整体的形式,所有会受到的局限性也更大

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个关于Arduino Uno和ESP-01S模块的项目,主要用于接收DHT11温湿度传感器的数据并将其通过ESP-01S模块上到阿里云服务器上。以下是具体的步骤: 1. 将DHT11温湿度传感器连接到Arduino Uno上,可以参考以下连接方式: DHT11 VCC - Arduino 5V DHT11 GND - Arduino GND DHT11 DATA - Arduino Digital Pin 2 2. 下载并安装ESP8266库,这里我们使用的是ESP8266WiFi库和ESP8266HTTPClient库。打开Arduino IDE,选择菜单栏:Sketch -> Include Library -> Manage Libraries,搜索并安装这两个库。 3. 连接ESP-01S模块到Arduino Uno上,可以参考以下连接方式: ESP-01S VCC - Arduino 3.3V ESP-01S GND - Arduino GND ESP-01S RX - Arduino Digital Pin 3 ESP-01S TX - Arduino Digital Pin 4 4. 在阿里云上创建一个IoT实例并添加一个设备,记录下设备的三元组(ProductKey、DeviceName、DeviceSecret)。 5. 在阿里云上创建一个Topic,用于接收设备上的数据。 6. 编写Arduino代码,实现从DHT11传感器读取数据并将其上到阿里云服务器上,可以参考以下代码: ``` #include <DHT.h> #include <ESP8266WiFi.h> #include <ESP8266HTTPClient.h> #include <PubSubClient.h> #define DHTPIN 2 #define DHTTYPE DHT11 const char* ssid = "your_SSID"; const char* password = "your_PASSWORD"; const char* serverName = "your_SERVER_NAME"; const char* productKey = "your_PRODUCT_KEY"; const char* deviceName = "your_DEVICE_NAME"; const char* deviceSecret = "your_DEVICE_SECRET"; const char* mqttServer = productKey ".iot-as-mqtt.cn-shanghai.aliyuncs.com"; int mqttPort = 1883; const char* mqttClientId = "clientId"; const char* mqttUsername = deviceName "&" productKey; const char* mqttPassword = "your_MQTT_PASSWORD"; const char* mqttTopic = "/sys/" productKey "/" deviceName "/thing/event/property/post"; DHT dht(DHTPIN, DHTTYPE); WiFiClient wifiClient; PubSubClient mqttClient(wifiClient); void setup() { Serial.begin(9600); dht.begin(); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } Serial.println("Connected to WiFi"); mqttClient.setServer(mqttServer, mqttPort); } void loop() { float temp = dht.readTemperature(); float humidity = dht.readHumidity(); if (isnan(temp) || isnan(humidity)) { Serial.println("Failed to read from DHT sensor!"); return; } Serial.print("Temperature: "); Serial.print(temp); Serial.print("C, Humidity: "); Serial.print(humidity); Serial.println("%"); if (WiFi.status() == WL_CONNECTED) { HTTPClient http; String serverPath = serverName + "/temperature=" + String(temp) + "&humidity=" + String(humidity); http.begin(serverPath.c_str()); int httpCode = http.GET(); if (httpCode > 0) { String payload = http.getString(); Serial.println(payload); } else { Serial.println("Error on HTTP request"); } http.end(); } if (!mqttClient.connected()) { String clientId = mqttClientId; clientId += String(random(0xffff), HEX); Serial.print("Connecting to MQTT server "); Serial.print(mqttServer); Serial.println("..."); if (mqttClient.connect(clientId.c_str(), mqttUsername, mqttPassword)) { Serial.println("Connected to MQTT server"); } else { Serial.print("Failed to connect to MQTT server, rc="); Serial.println(mqttClient.state()); delay(2000); return; } } String payload = "{\"id\":\"1\",\"params\":{\"Temperature\":" + String(temp) + ",\"Humidity\":" + String(humidity) + "},\"method\":\"thing.event.property.post\"}"; mqttClient.publish(mqttTopic, payload.c_str()); Serial.println("Published message"); delay(5000); } ``` 在代码中,我们使用了MQTT协议将传感器数据上到阿里云服务器上。需要注意的是,MQTT连接需要使用三元组中的DeviceName、ProductKey和DeviceSecret,以及阿里云IoT账号的AccessKey和SecretKey生成MQTT密码,可以在阿里云控制台中找到。 7. 将代码上Arduino Uno板子上。 到这里,你已经完成了将温湿度传感器数据发送到阿里云服务器的过程。如果你在阿里云IoT控制台中创建了一个Topic,则可以在控制台中查看设备上的数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值