Arduino智慧农业之温湿度数据可视化
作者:野牛程序员:2023-12-25 11:06:52Arduino阅读 2642
要实现温湿度数据的可视化,可以使用传感器采集环境数据,然后将数据传输到云平台或本地服务器,最后使用相应的工具进行数据可视化。以下是一个示例方案,硬件部分包括 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
