Arduino智慧农业之使用Adafruit IO上传温湿度数据
作者:野牛程序员:2023-12-25 10:59:14Arduino阅读 2804
利用Adafruit IO,可以将Arduino与云端连接,实现智慧农业中温湿度数据的上传。以下是一个简单的示例代码,演示如何使用Adafruit IO Arduino库上传温湿度数据:
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
#include <AdafruitIO_WiFi.h>
#define DHTPIN 2 // 定义DHT传感器的连接引脚
#define DHTTYPE DHT22 // 指定DHT型号
#define WIFI_SSID "your_wifi_ssid" // 替换为你的WiFi名称
#define WIFI_PASS "your_wifi_password" // 替换为你的WiFi密码
#define AIO_USERNAME "your_adafruit_io_username" // 替换为Adafruit IO用户名
#define AIO_KEY "your_adafruit_io_key" // 替换为Adafruit IO密钥
DHT_Unified dht(DHTPIN, DHTTYPE);
AdafruitIO_WiFi io(WIFI_SSID, WIFI_PASS, AIO_USERNAME, AIO_KEY);
void setup() {
Serial.begin(115200);
// 启动DHT传感器
dht.begin();
// 连接WiFi
io.connect();
// 等待连接成功
while(io.status() < AIO_CONNECTED) {
delay(500);
Serial.println("Connecting to Adafruit IO...");
}
Serial.println("Connected to Adafruit IO");
}
void loop() {
// 延时2秒
delay(2000);
// 读取温湿度数据
sensors_event_t event;
dht.temperature().getEvent(&event);
float temperature = event.temperature;
dht.humidity().getEvent(&event);
float humidity = event.relative_humidity;
// 打印温湿度数据
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" °C, Humidity: ");
Serial.print(humidity);
Serial.println(" %");
// 将数据上传到Adafruit IO
AdafruitIO_Feed *temperatureFeed = io.feed("temperature");
AdafruitIO_Feed *humidityFeed = io.feed("humidity");
// 发送温湿度数据到Adafruit IO
temperatureFeed->save(temperature);
humidityFeed->save(humidity);
}这个例子使用了DHT传感器读取温湿度数据,并通过Adafruit IO库将数据上传到云端。确保已经安装了Adafruit IO Arduino库和DHT传感器库。可以通过Arduino IDE的库管理器来安装这些库。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

