当前位置:首页Arduino > 正文

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

作者:野牛程序员:2023-12-25 11:00:46Arduino阅读 2599

利用Arduino进行智慧农业监测,可以通过ThingSpeak平台上传温湿度数据。首先,确保已经在ThingSpeak上创建了一个账户,并创建了一个新的通道(Channel)用于存储你的传感器数据。

接下来,确保Arduino板子连接了温湿度传感器,例如DHT11或DHT2。需要下载并安装相应的库,以便Arduino能够与传感器进行通信。

以下是一个简单的Arduino代码示例,用于读取温湿度数据并上传到ThingSpeak:

#include <DHT.h>
#include <WiFi.h>

#define DHTPIN 2  // 温湿度传感器连接到Arduino的引脚
#define DHTTYPE DHT22  // 使用的传感器类型

const char* ssid = "你的WiFi网络名称";
const char* password = "你的WiFi密码";
const char* thingSpeakApiKey = "你的ThingSpeak API密钥";

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(115200);
  delay(10);

  // 连接WiFi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("连接到WiFi...");
  }
  Serial.println("已连接到WiFi");

  dht.begin();
}

void loop() {
  // 读取温湿度数据
  float humidity = dht.readHumidity();
  float temperature = dht.readTemperature();

  // 检查是否成功读取数据
  if (isnan(humidity) || isnan(temperature)) {
    Serial.println("无法读取温湿度数据");
    return;
  }

  // 打印温湿度数据到串口
  Serial.print("湿度: ");
  Serial.print(humidity);
  Serial.print("%  温度: ");
  Serial.print(temperature);
  Serial.println("°C");

  // 将数据上传到ThingSpeak
  String data = String("field1=") + String(temperature) + "&field2=" + String(humidity);
  String url = "http://api.thingspeak.com/update?" + data + "&key=" + thingSpeakApiKey;

  // 发送HTTP请求
  Serial.println("正在上传到ThingSpeak...");
  if (WiFi.status() == WL_CONNECTED) {
    WiFiClient client;
    if (client.connect("api.thingspeak.com", 80)) {
      client.println("GET " + url + " HTTP/1.1");
      client.println("Host: api.thingspeak.com");
      client.println("Connection: close");
      client.println();
      delay(500);
      client.stop();
      Serial.println("上传成功");
    } else {
      Serial.println("无法连接到ThingSpeak");
    }
  } else {
    Serial.println("WiFi连接失败");
  }

  // 等待一段时间后再次上传数据
  delay(60000);  // 上传间隔为一分钟
}

这个代码会在循环中读取温湿度数据并上传到ThingSpeak,然后等待一分钟再次上传。可以根据需要调整上传间隔。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击