锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

dht11+光照传感器+esp32 采集数据 上传至树莓派服务器

时间:2023-05-30 04:07:00 wl系列传感器wlcal5

最近对植物的研究, 赶上冬天,阳台采光不好。然后买了水族加热棒(安全) 植物补光灯。 但作为入门科技宅,当然不能盲操一切。esp32走起~~

设备 esp32板子1 光照传感器1 dht11 温湿度传感器1

esp32牛就牛在有wifi 通过http将数据发送到树莓派搭服务器

代码到处乱抄 晚点有空format下

#include  //IIC库 #include  #include "SSD1306.h" //显示屏 #include "DHT.h"  ///温湿传感器 #include   #define DHTPIN 17 // 引脚定义 #define DHTTYPE DHT22    DHT dht(DHTPIN, DHTTYPE);  int BH1750address = 0x23./芯片地址为16位23 byte buff[2];  // #define SDA 21 #define SCL 22 SSD1306 display(0x3c, SDA, SCL);  int BH1750_Read(int address)   {   int i = 0;   Wire.beginTransmission(address);   Wire.requestFrom(address, 2);   while (Wire.available()) //   {    buff[i] = Wire.read(); // read one byte    i  ;   }   Wire.endTransmission();   return i;  }   void BH1750_Init(int address)  {   Wire.beginTransmission(address);   Wire.write(0x10);//1lx reolution 120ms   Wire.endTransmission();  }   const char* ssid   = "firework"; const char* password = "wifi密码";  const char* host = "192.168.1.50"; const char* streamId  = "..."; const char* privateKey = "...";  void setup()  {  Wire.begin();  Serial.begin(9600);  display.init();  dht.begin();   // wifi  Serial.println();  Serial.println();  Serial.print("Connecting to ");  Serial.println(ssid);   WiFi.begin(ssid, password);   while (WiFi.status() != WL_CONNECTED) {   delay(500);   Serial.print(".");  }   Serial.println("");  Serial.println("WiFi connected");  Serial.println("IP address: ");  Serial.println(WiFi.localIP());  //wifi }  int value = 0;  void loop()  {  delay(2000); // 设置间隔时间为2000毫秒   int i;  uint16_t val = 0;   //  float h = dht.readHumidity();  float t = dht.readTemperature();  float f = dht.readTemperature(true);  if (isnan(h) || isnan(t) || isnan(f)) {   Serial.println("没有从DHT在传感器上获取数据!");   return;  }   // 计算华氏温度 (默认)  //  float hif = dht.computeHeatIndex(f, h);  // 计算摄氏温度 (Fahreheit = false)  float hic = dht.computeHeatIndex(t, h, false);  BH1750_Init(BH1750address);   delay(1000);   if (2 == BH1750_Read(BH1750address))   {    val = ((buff[0] << 8) | buff[1]) / 1.2;    Serial.print(val, DEC);    Serial.println("[lx]");   display.clear();   display.setFont(ArialMT_Plain_16);   display.drawString(0, 0, "T:"   (String)hic   "C");   display.drawString(0, 20, "H:"   (String)h   "%");   display.drawString(0, 40, (String)val   "lx");   display.display();     //http      value;   Serial.print("connecting to ");   Serial.println(host);    // Use WiFiClient class to create TCP connections   WiFiClient client;   const int httpPort = 8080;   if (!client.connect(host, httpPort)) {    Serial.println("connection failed");    return;   }    // We now create a URI for the request   String url = ( "192.168.1.50:8080/sensor/in");    Serial.print("Requesting URL: ");   Serial.println("GET "   url   " HTTP/1.0");  client.println("GET http://192.168.1.50:8080/sensor/in?inData=" (String)hic "," (String)h "," (String)val " HTTP/1.0");   client.println("Host: 192.168.1.50:8080");   client.println("Connection: close");   client.println();   unsigned long timeout = millis();   while (client.available() == 0) {    if (millis() - timeout > 5000) {     Serial.println(">>> Client Timeout !");     client.stop();     return;    }   }    // Read all the lines of the reply from server and print them to Serial   while (client.available()) {    String line = client.readStringUntil('\r');    Serial.print(line);   }    //http   }   delay(150);  }

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章