Arduino 上传 DHT11 湿度温度数据到 OneNet 并控制舵机
以下是一个示例代码,使用 DHT11 传感器读取湿度和温度值,将数据上传到 OneNet 平台,并接收并执行来自 OneNet 平台的命令,控制舵机的转动角度。
注意:此代码仅供参考,需要根据具体硬件和 OneNet 平台的配置进行修改。
#include <SoftwareSerial.h>
#include <OneNet.h>
#include <dht.h>
#include <Servo.h>
#define ONENET_DEVICE_ID 'your_device_id' // OneNet 平台的设备 ID
#define ONENET_API_KEY 'your_api_key' // OneNet 平台的 API Key
#define DHT11_PIN 2 // DHT11 传感器的數據引脚
#define SERVO_PIN 9 // 舵机的信号引脚
dht DHT;
Servo servo;
SoftwareSerial serial(10, 11); // 用于与 OneNet 平台通信的串口
void setup() {
Serial.begin(9600);
serial.begin(9600); // 初始化 OneNet 通信串口
OneNet.begin(serial, ONENET_DEVICE_ID, ONENET_API_KEY); // 初始化 OneNet 库
servo.attach(SERVO_PIN); // 初始化舵机
}
void loop() {
// 读取湿度和温度值
int chk = DHT.read11(DHT11_PIN);
float humidity = DHT.humidity;
float temperature = DHT.temperature;
// 将湿度和温度值上传到 OneNet 平台
char data[50];
sprintf(data, '{\'temperature\':%.2f,\'humidity\':%.2f}', temperature, humidity);
OneNet.sendData(data);
// 接收来自 OneNet 平台的命令,并控制舵机的转动角度
OneNetCommand cmd = OneNet.receiveCommand();
if (cmd.isValid()) {
if (cmd.getName() == 'angle') {
int angle = cmd.getValue().toInt();
if (angle >= 0 && angle <= 180) {
servo.write(angle);
}
}
}
delay(1000);
}
原文地址: https://www.cveoy.top/t/topic/oKI9 著作权归作者所有。请勿转载和采集!