Arduino智慧农业之温湿度数据可视化
作者:野牛程序员:2023-12-25 11:06:52Arduino阅读 2714
      要实现温湿度数据的可视化,可以使用传感器采集环境数据,然后将数据传输到云平台或本地服务器,最后使用相应的工具进行数据可视化。以下是一个示例方案,硬件部分包括 DHT22 温湿度传感器和 NodeMCU ESP8266 微控制器。
硬件组件:
NodeMCU ESP8266 微控制器
DHT22 温湿度传感器
杜邦线
电源和线缆
连接方式:
将 DHT22 温湿度传感器的 VCC 引脚连接到 NodeMCU 的 3.3V 引脚。
将 DHT22 温湿度传感器的 GND 引脚连接到 NodeMCU 的 GND 引脚。
将 DHT22 温湿度传感器的 DATA 引脚连接到 NodeMCU 的 D2 引脚。
Arduino 代码:
#include <DHT.h>
#include <WiFiClient.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#define DHTPIN 2          // DHT22传感器连接到D2引脚
#define DHTTYPE DHT22     // 使用DHT22型号的传感器
const char* ssid = "your-ssid";      // 替换成你的Wi-Fi网络名称
const char* password = "your-password";  // 替换成你的Wi-Fi网络密码
const char* server = "your-server";  // 替换成你的服务器地址
DHT dht(DHTPIN, DHTTYPE);
void setup() {
  Serial.begin(115200);
  dht.begin();
  connectToWiFi();
}
void loop() {
  float temperature = dht.readTemperature();
  float humidity = dht.readHumidity();
  if (isnan(temperature) || isnan(humidity)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  Serial.print("Temperature: ");
  Serial.print(temperature);
  Serial.print("°C, Humidity: ");
  Serial.print(humidity);
  Serial.println("%");
  sendToServer(temperature, humidity);
  delay(60000);  // 每分钟发送一次数据,根据实际情况调整
}
void connectToWiFi() {
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to WiFi...");
  }
  Serial.println("Connected to WiFi");
}
void sendToServer(float temperature, float humidity) {
  WiFiClient client;
  String url = "/api/record?temperature=" + String(temperature) + "&humidity=" + String(humidity);
  Serial.print("Connecting to server: ");
  Serial.println(server);
  if (client.connect(server, 80)) {
    Serial.println("Connected to server");
    client.print(String("GET ") + url + " HTTP/1.1\\r\\n" +
                 "Host: " + server + "\\r\\n" +
                 "Connection: close\\r\\n\\r\\n");
    Serial.println("Data sent to server");
  } else {
    Serial.println("Connection to server failed");
  }
  client.stop();
}这个示例代码连接到Wi-Fi网络,然后读取 DHT22 温湿度传感器的数据,并通过 HTTP 请求将数据发送到服务器。在服务器端,可以使用相应的后端技术(例如Node.js、Python、PHP等)接收数据,并将其存储在数据库中。随后,可以使用数据可视化工具,例如Grafana、ThingSpeak、或自己搭建的Web界面,实现温湿度数据的实时监测和可视化。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
        
