当前位置:首页Arduino > 正文

Arduino智慧农业之使用Adafruit IO上传温湿度数据

作者:野牛程序员:2023-12-25 10:59:14Arduino阅读 2712

利用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
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击