温湿度项目--ESP32

13 篇文章 2 订阅
10 篇文章 1 订阅

  通过DHT11获取温湿度数据  通过udp通信上传到服务器端保存

  还可以通过lcd现场查看温湿度数据  

/*
tft_lcd接线
LCD 电源 3.3V
#define TFT_MISO 19   //未接线
#define TFT_MOSI 23  //  SDA D23
#define TFT_SCLK 18  //  SCL D18
#define TFT_CS   27  //  CS  D27
#define TFT_DC   25  //  DC  D25
#define TFT_RST  26  //  RES D26
DHT11温湿度传感器接线
DHT11电源 3.3V
数据接引脚D22
*/
#include <Arduino.h>
#include <WiFi.h>  //wifi功能需要的库
#include <WiFiUdp.h> //引用以使用UDP
#include <TFT_eSPI.h> // Graphics and font library for ST7735 driver chip
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include "DHT.h"
#define DHTTYPE DHT11   // DHT 11
#define DHTPIN 22 
DHT dht(DHTPIN, DHTTYPE);
#define TFT_GREY 0x5AEB // New colour 定义背景色
#define LCD_SHOW 21  // D21高电平 lcd点亮  低电平 熄灭
const int button = 19;   //D19按钮输入 触发中断 用于点亮lcd
TFT_eSPI tft = TFT_eSPI();  // Invoke library, pins defined in User_Setup.h
const int delay_time = 10000;//延时时间
WiFiUDP Udp;//声明UDP对象
const char* ssid="dsx";  //存储AP的名称信息
const char* password ="dsxbs725";  //存储AP的密码信息
unsigned int localUdpPort = 8081; //本地端口号
const char* ycudp_host = "121.4.99.98";
const int ycudp_port = 8081;
// 按钮中断函数 按下按钮 点亮lcd 在下个loop循环熄灭lcd
void IRAM_ATTR isr(){
  digitalWrite(LCD_SHOW,HIGH);
}
void wifi_init(){
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  while (!WiFi.isConnected())
  {
    delay(500);
    tft.print(".");
  }
  tft.println();
  tft.println("WiFi Connected");
  tft.println("IP Address:");
  tft.println(WiFi.localIP());
  Udp.begin(localUdpPort); //启用UDP监听以接收数据
}
void setup() {
  Serial.begin(115200);
  pinMode(LCD_SHOW,OUTPUT);
  digitalWrite(LCD_SHOW,HIGH);
  tft.init();
  tft.setRotation(0); //0 竖屏 1 横屏
  tft.fillScreen(TFT_GREY);
  tft.setCursor(0, 0, 2); //使用字体2 从1 开始
  tft.setTextColor(TFT_BLUE);    
  tft.setTextFont(2); 
  dht.begin();
  pinMode(button,INPUT_PULLUP);// 设置按键IO为上拉输入 GPIO19 连接按键,按键另一端接GND
  attachInterrupt(digitalPinToInterrupt(button), isr, FALLING);//按键中断 放在setup后面
  wifi_init();
  delay(delay_time);
}

 
void loop() {
  digitalWrite(LCD_SHOW,LOW); //熄灭lcd
  tft.fillScreen(TFT_GREY);
  tft.setCursor(0, 0, 2); //使用字体2 从1 开始
  tft.setTextColor(TFT_BLUE);    
  tft.setTextFont(2); 
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  float f = dht.readTemperature(true);
  if (isnan(h) || isnan(t) || isnan(f)) {
    tft.println(F("Failed to read from DHT sensor!"));
    return;
  }
  tft.println("House T && H");
  tft.print("Temperature:");
  tft.println(t);
  tft.print("Humidity:");
  tft.println(h);
  Udp.beginPacket(ycudp_host, ycudp_port); //准备发送数据 int beginPacket(IPAddress ip, uint16_t port)
  String data= "FromEsp32:" + String(t) + ":" + String(h) ;
  Udp.print(data);    //复制数据到发送缓存
  Udp.endPacket();//发送数据
  delay(delay_time);
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ESP8266是一款集成了Wi-Fi模块的51单片机,可以实现物联网应用。温湿度传感器是一种用于测量环境中温度和湿度的设备。 在使用ESP8266和51单片机搭建温湿度传感器时,首先需要连接温湿度传感器到单片机的引脚。传感器通常有三个引脚,分别是VCC、GND和DATA。通过将VCC引脚连接到单片机的电源引脚,GND引脚连接到单片机的地引脚,然后将DATA引脚连接到单片机的一个可用IO引脚上。 在软件方面,我们可以使用Arduino IDE编写代码来读取传感器数据并将其发送到云端或通过串口输出。通过使用适当的库,我们可以简化与传感器的通信过程。 编写代码时,我们可以首先初始化串口进行输出,并初始化温湿度传感器。然后,我们可以设置一个定时器来定期读取传感器数据。读取数据后,我们可以将数据发送到预定的目的地,例如通过Wi-Fi发送到服务器或通过串口发送到电脑。 在实际应用中,我们可以将ESP8266和51单片机温湿度传感器一起使用,以监测室内或室外的温度和湿度变化。这可以用于自动化系统,例如自动调节空调或通风系统,以保持适宜的温湿度。 总而言之,使用ESP8266和51单片机搭建温湿度传感器可以实现温湿度数据的实时监测和远程传输,为物联网应用提供了可靠的基础。 ### 回答2: ESP8266是一款高性能、低功耗的Wi-Fi模块,适用于物联网项目。而51单片机是常用的微控制器,具有广泛的应用领域。温湿度传感器用于测量环境的温度和湿度,并将数据传输到控制器进行处理。 在使用ESP8266和51单片机进行温湿度传感器的编程时,需先连接温湿度传感器到单片机的GPIO引脚上。然后,通过相应的电路和代码,可以读取温湿度传感器的数据。 首先,在代码中需引入相应的库文件,例如DHT库以支持温湿度传感器的读取。然后,定义所需的引脚和变量,配置单片机的GPIO引脚,以便与传感器通信。 接下来,通过相应的函数,读取温湿度传感器的数值。将传感器返回的数值进行解析,得到温度和湿度的数值。 最后,可以将得到的温湿度数据通过ESP8266模块通过Wi-Fi连接发送到云服务器或其他设备上。这样,可以实现远程监控温湿度数据的功能。 总之,使用ESP8266和51单片机结合温湿度传感器可以实现温湿度数据的监测和传输。这对于需要对环境进行实时监测的物联网项目非常实用。 ### 回答3: ESP8266是一款功能强大的Wi-Fi模块,而51单片机是一种常用的嵌入式控制器。温湿度传感器是一种用于测量环境温度和湿度的设备。 ESP8266和51单片机可以配合使用温湿度传感器,实现对环境温湿度的监测和数据传输功能。具体的实现方式可以是,通过51单片机来读取温湿度传感器的数据,然后利用ESP8266模块的Wi-Fi功能,将数据发送到云端或其他设备。 在实际应用中,可以通过编程来配置ESP8266和51单片机之间的通信协议,使它们能够互相连接和传递数据。同时,还可以利用ESP8266模块的强大功能,如TCP/IP协议栈和Web服务器功能,使温湿度数据可以通过互联网远程访问和监测。这样,用户可以通过手机、电脑等设备随时随地获取温湿度数据,而无需实时接触传感器。 此外,为了保证温湿度传感器的准确性和稳定性,在设计和制作过程中需要注意一些细节。例如,选择合适的传感器,注意传感器的精度和响应时间;同时,需合理布置电路和引脚连接,以及合理选择电源和信号线的布线方式,以避免干扰和故障。 总的来说,通过ESP8266和51单片机配合使用温湿度传感器,可以实现对环境温湿度的远程监测和数据传输,为用户提供更便利和智能化的环境管理解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值