智慧大棚中通过ESP收集温湿度等参数并发送至云服务器
用ESP32 S3的代码。
·
用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 11
DHT_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 11
DHT 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();
}
更多推荐
所有评论(0)