温湿度等参数并发送至云服务器"/>
智慧大棚中通过ESP收集温湿度等参数并发送至云服务器
用ESP32的代码
#include <WiFi.h>
#include <WiFiClient.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#include <DHT_U.h>
/* change ssid and password according to yours WiFi*/
const char* ssid = "feng";
const char* password = "12345678";
/** This is the IP address of your PC* [Wins: use ipconfig command, Linux: use ifconfig command]
*/
const char* host = "49.235.106.65";
const int port = 9990;
const char* houseId ="0001";/* 设置DHT11 */
#define DHTPIN 4 // Digital pin connected to the DHT sensor
#define DHTTYPE DHT11 // DHT 11DHT_Unified dht(DHTPIN, DHTTYPE);void setup()
{Serial.begin(115200);Serial.print("Connecting to ");Serial.println(ssid);/* connect to your WiFi */WiFi.begin(ssid, password);/* wait until ESP32 connect to WiFi*/while (WiFi.status() != WL_CONNECTED) {delay(5000);Serial.print(".");}Serial.println("");Serial.println("WiFi connected with IP address: ");Serial.println(WiFi.localIP());/* ====== 初始化DHT11 ========*/dht.begin();Serial.println(F("DHTxx Unified Sensor Example"));// Print temperature sensor details.sensor_t sensor;dht.temperature().getSensor(&sensor);Serial.println(F("------------------------------------"));Serial.println(F("Temperature Sensor"));Serial.print (F("Sensor Type: ")); Serial.println(sensor.name);Serial.print (F("Driver Ver: ")); Serial.println(sensor.version);Serial.print (F("Unique ID: ")); Serial.println(sensor.sensor_id);Serial.print (F("Max Value: ")); Serial.print(sensor.max_value); Serial.println(F("°C"));Serial.print (F("Min Value: ")); Serial.print(sensor.min_value); Serial.println(F("°C"));Serial.print (F("Resolution: ")); Serial.print(sensor.resolution); Serial.println(F("°C"));Serial.println(F("------------------------------------"));// Print humidity sensor details.dht.humidity().getSensor(&sensor);Serial.println(F("Humidity Sensor"));Serial.print (F("Sensor Type: ")); Serial.println(sensor.name);Serial.print (F("Driver Ver: ")); Serial.println(sensor.version);Serial.print (F("Unique ID: ")); Serial.println(sensor.sensor_id);Serial.print (F("Max Value: ")); Serial.print(sensor.max_value); Serial.println(F("%"));Serial.print (F("Min Value: ")); Serial.print(sensor.min_value); Serial.println(F("%"));Serial.print (F("Resolution: ")); Serial.print(sensor.resolution); Serial.println(F("%"));Serial.println(F("------------------------------------"));
}void loop()
{char temp[8];char hum[8];delay(10);Serial.print("connecting to ");Serial.println(host);/* Use WiFiClient class to create TCP connections */WiFiClient client;if (!client.connect(host, port)) {Serial.println("connection failed");return;}// Get temperature event and print its value.sensors_event_t event;dht.temperature().getEvent(&event);if (isnan(event.temperature)) {Serial.println(F("Error reading temperature!"));}else {Serial.print(F("Temperature: "));Serial.print(event.temperature);Serial.println(F("°C"));
// client.print(event.temperature);dtostrf((float)event.temperature,2,2,temp);}// Get humidity event and print its value.
// delay(100);dht.humidity().getEvent(&event);if (isnan(event.relative_humidity)) {Serial.println(F("Error reading humidity!"));}else {Serial.print(F("Humidity: "));Serial.print(event.relative_humidity);Serial.println(F("%"));dtostrf((float)event.relative_humidity,2,2,hum);}/* This will send the data to the server */String msg = "Temperature: " + String(temp)+ "; " + "Humidity: " + String(hum)+"houseId: " + String(houseId)+ "\n";client.print(msg);client.stop();
}
用ESP32 S3的代码
#include <WiFi.h>
#include <WiFiClient.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>const char* ssid = "ccc";
const char* password = "123456789";const char* hostt = "49.235.106.65";
const int portt = 9990;
const char* houseId ="0006";#define DHTPIN 17 // 连接DHT传感器的数字引脚.
const int guangmin=16; //光敏传感器
const int yanwu=15; //烟雾传感器
const int eryang=7; //二氧化碳传感器// 取消对使用中的传感器类型的注释:
#define DHTTYPE DHT11 // DHT 11DHT dht(DHTPIN, DHTTYPE);void setup()
{Serial.begin(115200);Serial.print("Connecting to ");Serial.println(ssid);/* connect to your WiFi */WiFi.begin(ssid, password);/* wait until ESP32 connect to WiFi*/while (WiFi.status() != WL_CONNECTED) {delay(5000);Serial.print(".");}Serial.println("");Serial.println("WiFi connected with IP address: ");Serial.println(WiFi.localIP());pinMode(17,INPUT); //温度传感器pinMode(16,INPUT); //光敏传感器pinMode(15,INPUT); //烟雾传感器pinMode(7,INPUT); //二氧化碳传感器analogReadResolution(10); // 设置采样分辨率为10bit 范围可以是9-12之间dht.begin();
}void loop()
{float temper = 0;float humer=0;float guang=0;float mqmq=0;float coco=0;float plant=0;char temp[8];char hum[8];char bright[8];char smoke[8];char Co2[8];char planttype[8];Serial.print("connecting to ");Serial.println(hostt);/* Use WiFiClient class to create TCP connections */WiFiClient client;if (!client.connect(hostt, portt)) {Serial.println("connection failed");return;}temper = dht.readTemperature();humer=dht.readHumidity();guang=analogRead(16);mqmq=analogRead(15);coco=analogRead(7);plant=100;Serial.print("温度");Serial.print(temper);Serial.println("℃");Serial.print("湿度");Serial.print(humer);Serial.print("%");Serial.print("光敏");Serial.print(guang);Serial.print("烟雾");Serial.print(mqmq);Serial.print("二氧化碳");Serial.print(coco);delay(10);dtostrf((float)dht.readTemperature(),2,2,temp);dtostrf((float)dht.readHumidity(),2,2,hum);dtostrf((float)(570-analogRead(16)),2,2,bright);dtostrf((float)analogRead(15),2,2,smoke);dtostrf((float)analogRead(7)/80,2,2,Co2);dtostrf((float)plant,2,2,planttype);String msg = "Temperature:" + String(temp)+ ";" + "Humidity:" + String(hum)+ ";"+"Bright:" + String(bright)+ ";"+"Smoke:" + String(smoke)+ ";"+"Co2:" + String(Co2)+ ";"+"Planttype:" + String(planttype)+ ";"+"houseId:" + String(houseId)+ ";"+ "\n";Serial.println( msg);client.print(msg);client.stop();
}
更多推荐
智慧大棚中通过ESP收集温湿度等参数并发送至云服务器
发布评论