在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用ESP32創(chuàng)建一個氣象站

科技觀察員 ? 來源:八色木 ? 作者:八色木 ? 2022-04-12 15:56 ? 次閱讀

在這個項(xiàng)目中,我們將使用ESP32創(chuàng)建一個氣象站。基本原理是通過讀取DHT22和BMP180傳感器的數(shù)據(jù),然后使用ESP32傳輸創(chuàng)建的網(wǎng)頁上,在網(wǎng)頁上顯示氣象數(shù)據(jù)。

電路圖

poYBAGJVMCaAOFi4AAJF76tzN-U325.png

首先,將DHT22和ESP32連接起來。DHT22與ESP32的連接如下:

DHT22 引腳1 VCC —–>ESP32 / 3.3V;

DHT22 引腳2 DATA—–>ESP32 / D15;

DHT22引腳4 GND —–>ESP32 /GND.

然后將BMP180壓力傳感器連接到ESP32上。連接如下:

BMP180 Vin —–> ESP32 / 3.3V;

BMP180 GND —–> ESP32 /GND;

BMP180SCL —–> ESP32 / pin 22;(ESP32的22號引腳是SCL.)

BMP180SDA —–> ESP32 / pin 21;(ESP32的21號引腳是SDA.)

ESP32的22和21號引腳是I2C通信接口。詳見下圖ESP32的引腳圖

pYYBAGJVMCuAF3VnAASJjiG1i4M778.png

氣象站C代碼

#include

#include

#include

#include

#define DHTPIN 15

#define DHTTYPE DHT22

DHT dht(DHTPIN, DHTTYPE);

Adafruit_BMP085 bmp;

char pressure_value[4];

const char* wifi_name = "Asus_2.4G"; //Your Wifi name

const char* wifi_pass = "basemu.com"; //Your Wifi password

WiFiServer server(80); //Port 80

void setup()

{

Serial.begin(115200);

dht.begin();

bmp.begin();

// Let's connect to wifi network

Serial.print("Connecting to ");

Serial.print(wifi_name);

WiFi.begin(wifi_name, wifi_pass); //Connecting to wifi network

while (WiFi.status() != WL_CONNECTED) //Waiting for the responce of wifi network

{

delay(500);

Serial.print(".");

}

Serial.println("");

Serial.println("Connection Successful");

Serial.print("IP address: ");

Serial.println(WiFi.localIP()); //Getting the IP address at which our webserver will be created

Serial.println("Type the above IP address into a browser search bar");

server.begin(); //Starting the server

}

void loop()

{

String pressure = String(bmp.readPressure());

// convert the reading to a char array

pressure.toCharArray(pressure_value, 4);

float hum = dht.readHumidity();

float temp = dht.readTemperature();

float fah = dht.readTemperature(true);

float heat_index = dht.computeHeatIndex(fah, hum);

float heat_indexC = dht.convertFtoC(heat_index);

WiFiClient client = server.available(); //Checking for incoming clients

if (client)

{

Serial.println("new client");

String currentLine = ""; //Storing the incoming data in the string

while (client.connected())

{

if (client.available()) //if there is some client data available

{

char c = client.read(); // read a byte

if (c == '\n') // check for newline character,

{

if (currentLine.length() == 0) //if line is blank it means its the end of the client HTTP request

{

client.print("

");

client.print("

);

client.print("

);

client.print(temp);

client.print("
Temperature in fah: ");

client.print(fah);

client.print("
Humidity is: ");

client.print(hum);

client.print("
Heat Index in C: ");

client.print(heat_indexC);

client.print("
Heat Index in fah: ");

client.print(heat_index);

client.print("
Pressure is: ");

client.print(pressure_value);

client.print("hpa");

client.print("

");

break; // break out of the while loop:

}

else

{ // if you got a newline, then clear currentLine:

currentLine = "";

}

}

else if (c != '\r')

{ // if you got anything else but a carriage return character,

currentLine += c; // add it to the end of the currentLine

}

}

}

}

}

氣象站項(xiàng)目代碼釋義

首先,確保項(xiàng)目所需的所有庫均 include 了,然后定義連接DHT22溫度和濕度傳感器的引腳,再創(chuàng)建實(shí)例:

#include

#include

#include

#include

#define DHTPIN 15

#define DHTTYPE DHT22 DHT dht(DHTPIN, DHTTYPE);

Adafruit_BMP085 bmp;

接著存儲Wi-Fi名稱和密碼,同時定義并創(chuàng)建服務(wù)器的端口

const char* wifi_name = "Asus_2.4G"; //Your Wifi name const char*

wifi_pass = "basemu.com"; //Your Wifi password

WiFiServer server(80); //Port 80

在setup函數(shù)中,會使用上面的Wi-Fi信數(shù)據(jù)將ESP32連接到的Wi-Fi網(wǎng)絡(luò)。如果連接到網(wǎng)絡(luò)成功,那么“connection successful”將顯示在串口監(jiān)視器上。否則,程序?qū)⒗^續(xù)嘗試,直到連接到Wi-Fi網(wǎng)絡(luò)。

Serial.print("Connecting to ");

Serial.print(wifi_name);

WiFi.begin(wifi_name, wifi_pass); //Connecting to wifi network

while (WiFi.status() != WL_CONNECTED) { //Waiting for the response of wifi network

delay(500);

Serial.print(".");

}

Serial.println("");

Serial.println("Connection Successful");

下面的命令會將IP地址顯示在串口監(jiān)視器上。

Serial.println(WiFi.localIP());

然后程序?qū)臃?wù)器,以便程序能夠接收和發(fā)送數(shù)據(jù)到瀏覽器上。

server.begin();

在loop函數(shù)中,程序能夠從傳感器讀取數(shù)據(jù)并存儲在變量中,這樣就可以在網(wǎng)頁上顯示數(shù)據(jù)了。

String pressure = String(bmp.readPressure());

pressure.toCharArray(pressure_value, 4);

float hum = dht.readHumidity();

float temp = dht.readTemperature();

float fah = dht.readTemperature(true);

float heat_index = dht.computeHeatIndex(fah, hum);

float heat_indexC = dht.convertFtoC(heat_index);

然后檢查客戶端是否有發(fā)送HTTP請求,如果有客戶端請求可用,那么程序?qū)⒋鎯Σ@示結(jié)果在串行監(jiān)視器上。在請求結(jié)束時,程序?qū)l(fā)送HTML命令,在網(wǎng)頁上顯示傳感器的數(shù)據(jù)。

WiFiClient client = server.available(); //Checking for incoming clients

if (client){

Serial.println("new client");

String currentLine = ""; //Storing the incoming data in the string

while (client.connected()){

if (client.available()) //if there is some client data available

{

char c = client.read(); // read a byte

if (c == '\n') // check for newline character,

{

if (currentLine.length() == 0) //if line is blank it means it’s the end of the client HTTP

request { client.print("");

client.print("

ESP32 Weather Station

");

client.print("Temperature in C: ");

client.print(temp);

client.print(" Temperature in fah: ");

client.print(fah);

client.print(" Humidity is: ");

client.print(hum);

氣象站如何使用

首先,將代碼中的Wi-Fi名稱和密碼信息替換為你自己的。然后上傳代碼并打開串口監(jiān)視器。串口監(jiān)視器將顯示如下圖所示的IP地址。

poYBAGJVMD6AevTtAAEX2X1WMBw112.png

在瀏覽器中輸入這個IP地址。輸入IP地址后,網(wǎng)頁會顯示如下圖所示。

poYBAGJVMEKASlNGAAB5kV5QdpM722.png

現(xiàn)在傳感器數(shù)據(jù)就從氣象站上傳到網(wǎng)頁上了。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 氣象站
    +關(guān)注

    關(guān)注

    1

    文章

    766

    瀏覽量

    15964
  • DHT22
    +關(guān)注

    關(guān)注

    2

    文章

    51

    瀏覽量

    7313
  • ESP32
    +關(guān)注

    關(guān)注

    20

    文章

    992

    瀏覽量

    18470
收藏 人收藏

    評論

    相關(guān)推薦

    如何使用miniprog3設(shè)置氣象站

    你好,可以請人幫我,我想計(jì)劃的cy3271-exp1 PSoC氣象站板采用miniprog3這樣我可以把周圍的光強(qiáng)讀數(shù)然后發(fā)送閱讀通過串行命令我寫的應(yīng)用程序并存儲的數(shù)據(jù)畫成了GR促性腺激素釋放
    發(fā)表于 04-15 08:32

    基于機(jī)智云gokit4.0(G)和MDM9206的 小型智能氣象站

    和關(guān)閉,以便根據(jù)土壤濕度進(jìn)行灌溉控制。硬件說明本氣象站以MDM9206模塊作為SOC控制器,使用機(jī)智云平臺提供的軟硬件平臺開發(fā)工具進(jìn)行開發(fā)本項(xiàng)目。也可以使用esp8266/ESP32或具有GPRS功能
    發(fā)表于 07-19 16:18

    怎樣去設(shè)計(jì)基于ESP32的家庭氣象站系統(tǒng)

    或 畢業(yè)設(shè)計(jì)技術(shù)解答畢設(shè)幫助:7468760412 主要器件本項(xiàng)目學(xué)長將使用ESP32創(chuàng)建氣象站。基本原理是通過讀取DHT22和BMP
    發(fā)表于 12-13 07:38

    DIY基于ESP8266的wifi氣象站

    描述氣象站ESP8266 E12帶 ESPHome 的 DIY WiFi 停止處理不斷變化的天氣軟件和 API,自己獲取傳感器數(shù)據(jù)
    發(fā)表于 06-24 07:26

    分享氣象站項(xiàng)目

    描述氣象站 | 風(fēng)向
    發(fā)表于 07-11 07:16

    使用ESP8266和ST7735 TFT顯示屏設(shè)計(jì)氣象站

    描述基于 ESP8266 Nodemcu 和 ST7735 TFT 顯示屏的氣象站什么是氣象站氣象站種使用不同傳感器收集與天氣和環(huán)境相
    發(fā)表于 09-01 06:52

    帶有BME280的ESP32 Web服務(wù)器的高級氣象站

    介紹款帶有BME280的ESP32 Web服務(wù)器的高級氣象站
    發(fā)表于 03-17 11:15 ?18次下載
    帶有BME280的<b class='flag-5'>ESP32</b> Web服務(wù)器的高級<b class='flag-5'>氣象站</b>

    ESP32氣象站接口PCB屏蔽

    電子發(fā)燒友網(wǎng)站提供《ESP32氣象站接口PCB屏蔽.zip》資料免費(fèi)下載
    發(fā)表于 07-18 10:36 ?3次下載
    <b class='flag-5'>ESP32</b><b class='flag-5'>氣象站</b>接口PCB屏蔽

    帶有esp8266和Python Flask的桌面氣象站

    電子發(fā)燒友網(wǎng)站提供《帶有esp8266和Python Flask的桌面氣象站.zip》資料免費(fèi)下載
    發(fā)表于 11-09 10:26 ?0次下載
    帶有<b class='flag-5'>esp</b>8266和Python Flask的桌面<b class='flag-5'>氣象站</b>

    小型氣象站是什么?文淺談

    小型氣象站又叫自動氣象站、農(nóng)業(yè)氣象站、校園氣象站
    的頭像 發(fā)表于 11-16 13:15 ?1878次閱讀

    基于ESP8266的自動氣象站

    小型氣象站,帶有我們的ESP8266 NodeMCU,它將向全球社區(qū)報(bào)告溫度,濕度和露點(diǎn)。通過這個氣象站,我們可以對我們居住的城市進(jìn)行更
    發(fā)表于 12-02 14:25 ?1次下載

    基于ESP8266的自動氣象站

    小型氣象站,帶有我們的ESP8266 NodeMCU,它將向全球社區(qū)報(bào)告溫度,濕度和露點(diǎn)。通過這個氣象站,我們可以對我們居住的城市進(jìn)行更
    發(fā)表于 12-05 16:56 ?1次下載

    WIoT2氣象站之Nextion TFT with ESP8266/ESP32

    電子發(fā)燒友網(wǎng)站提供《WIoT2氣象站之Nextion TFT with ESP8266/ESP32.zip》資料免費(fèi)下載
    發(fā)表于 01-30 11:58 ?1次下載
    WIoT2<b class='flag-5'>氣象站</b>之Nextion TFT with <b class='flag-5'>ESP</b>8266/<b class='flag-5'>ESP32</b>

    使用Wio Terminal和Tensorflow Lite創(chuàng)建智能氣象站

    電子發(fā)燒友網(wǎng)站提供《使用Wio Terminal和Tensorflow Lite創(chuàng)建智能氣象站.zip》資料免費(fèi)下載
    發(fā)表于 06-25 10:30 ?0次下載
    使用Wio Terminal和Tensorflow Lite<b class='flag-5'>創(chuàng)建</b>智能<b class='flag-5'>氣象站</b>

    什么是氣象站氣象站的簡介

    什么是氣象站氣象站的簡介
    的頭像 發(fā)表于 09-14 16:14 ?1677次閱讀
    主站蜘蛛池模板: 国产欧美日韩综合精品无毒 | 日韩特级片 | 欧美12一13高清视频 | 在线观看一区二区三区视频 | 极品美女啪啪 | 深夜久久 | 她也啪97在线视频 | 国产成人毛片亚洲精品不卡 | 日韩国产片 | 一区二区中文字幕亚洲精品 | 又粗又大又猛又爽免费视频 | 黄色在线观看国产 | a看片 | 国产午夜精品久久久久免费视小说 | 一级做a爰片久久毛片图片 一级做a爰片久久毛片鸭王 | 午夜欧美视频 | 日日拍拍 | 在线色播 | 一级特黄aa大片一又好看 | 色色色色色色色色色色色色色色 | 不卡视频一区 | 亚洲不卡视频 | 中文字幕一区二区三区在线不卡 | 午夜寂寞影视 | 日本特级视频 | ssswww日本免费网站片 | 国产大乳美女挤奶视频 | 亚洲电影一区二区三区 | 午夜视频在线免费 | 手机在线观看你懂得 | 天天干夜夜骑 | a4yy私人毛片在线 | 色噜噜噜 | 国产老师的丝袜在线看 | 天天影视网天天影网 | 久久久久久久影院 | 手机毛片| 午夜精品一区二区三区在线观看 | 成视频年人黄网站免费视频 | 六月丁香啪啪 | 亚洲一本之道在线观看不卡 |