用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();
}

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐