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

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

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

超聲波氣象站搭建指南

涂鴉開發(fā)者 ? 2022-03-24 15:35 ? 次閱讀

本文將展示如何基于涂鴉智能平臺搭建一個屬于自己的超聲波氣象站!

超聲波氣象站的測量維度包括:

- 溫度測量(DHT22)

- 濕度測量(DHT22)

- 氣壓測量(BMP180)

- 風(fēng)向、風(fēng)速測量(防水超聲波測距模組)

- 紫外線等級測量(CJMCU-GUVA-S12SD

- PM2.5測量(GP2Y1014AU)

也就是六個維度的氣象信息的測量!

氣象站采用ESP32作為主控,使用Arduino平臺進行開發(fā),開發(fā)IDE為Visual Studio Code + Platform IO

物聯(lián)網(wǎng)通訊方面使用涂鴉WBR3模組,使用低代碼MCU開發(fā)形式??刂平缑?APP)使用涂鴉的客制化面板。

Q1: 什么是超聲波氣象站?

A1: 超聲波氣象站是利用超聲波模組對聲速進行測量的一種氣象站。由于風(fēng)速會引起聲速的變化:超聲波順風(fēng)傳播時,聲速會加快;逆風(fēng)時風(fēng)速將減慢;通過測量一組正交的聲速矢量,進行合成分析后可以分析出當(dāng)前的風(fēng)速、風(fēng)向信息。

Q2: 超聲波氣象站有什么優(yōu)點?

A2: 傳統(tǒng)的氣象站對于風(fēng)向和風(fēng)速的測量通常使用風(fēng)向儀和風(fēng)速儀,這兩種儀器都具有轉(zhuǎn)動的機械結(jié)構(gòu),體積龐大、壽命較短。使用超聲波對風(fēng)速、風(fēng)向測量可以壓縮氣象站體積、提高氣象站壽命。

Q3: 為什么選擇涂鴉平臺?

A3: 涂鴉平臺的開發(fā)比較省事。在MCU低代碼開發(fā)的方式中,可以通過網(wǎng)頁實現(xiàn)對APP的設(shè)計,而且一些常用的組件也非常精美。

系統(tǒng)框架

pYYBAGI64muATjkRAACsyoicgyM570.png

如何利用超聲波對風(fēng)速進行測量

pYYBAGI65leAI2McAAAv5gPCUhk344.png

超聲波探頭布置如圖所示,兩組探頭互相垂直分布。

- 此時若A組探頭間距離S已知,聲速C已知,且此時風(fēng)速為0。則此時超聲波的行進速度T為聲速,可算出無風(fēng)時超聲波從發(fā)射探頭移動到接收探頭的時間T1=S/C。

- 若此時存在風(fēng)向為發(fā)射探頭指向接收探頭,風(fēng)速為1m/s的風(fēng),則超聲波行進速度變?yōu)镃+1m/s,同樣可以算出該情況下超聲波從發(fā)射探頭移動到接收探頭的時間T2=S/(C+1)。

在距離已知、聲速已知的情況下,通過獲取超聲波模塊返回的超聲波行進時間T2,可以推算出A組探頭方向的風(fēng)速V1=(S / T2) - (S / T1)。同理可推算出B組探頭方向的風(fēng)速V2。

由于A、B組探頭垂直分布,故當(dāng)存在任意方向、任意大小的風(fēng)時,可通過矢量合成的方法計算出風(fēng)速和風(fēng)向。

模塊及驅(qū)動

DHT22

DHT22使用DHT-Sensor-Library進行驅(qū)動,詳細(xì)方法參考GitHub頁面,使用該庫需要依賴Adafruit Unified Sensor Driver庫。

DHT dht(DHT_PIN, DHT_TYPE);
float h = dht.readHumidity();
float t = dht.readTemperature();
    if(isnan(h) || isnan(t)){
        Serial.println("Failed to read from DHT sensor.");
        return;
}

此處h獲取值為濕度,t獲取值為溫度。

BMP180

BMP180使用Adafruit BMP085 Library驅(qū)動,同上,需要依賴Adafruit BrushIO庫。

Adafruit_BMP085 bmp;
air_pressure = bmp.readPressure()

超聲波模組

// Clears the trigPin condition
digitalWrite(TRIG_1, LOW);
delayMicroseconds(2);
// Sets the trigPin HIGH (ACTIVE) for 10 microseconds
digitalWrite(TRIG_1, HIGH);
delayMicroseconds(20);
digitalWrite(TRIG_1, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(ECHO_1, HIGH);

超聲波模組使用脈沖測量獲取反射時間,代碼如上。后續(xù)通過布置探頭位置,分析兩組超聲波模組的反射時間可獲得風(fēng)速、風(fēng)向信息。

CJMCU-GUVA-S12SD紫外線模組

該紫外線模組輸出為電壓模擬量,analogRead()函數(shù)可以實現(xiàn)紫外線等級的測量。

GP2Y1014AU PM2.5模組

digitalWrite(DUST_IN, LOW);
delayMicroseconds(SAMPLING_TIME);
int voMeasured = analogRead(DUST_OUT);
?
delayMicroseconds(DELTA_TIME);
digitalWrite(DUST_IN, HIGH);

通過給模組的LED驅(qū)動腳施加脈沖,測量輸出腳電壓,可以實現(xiàn)對pm2.5的濃度測量。

涂鴉智能接入

這次的開發(fā)方式為MCU低代碼開發(fā),即是利用涂鴉模組進行開發(fā)。涂鴉模組負(fù)責(zé)物聯(lián)網(wǎng)信息處理,MCU僅需要通過串口控制涂鴉模組進行物聯(lián)網(wǎng)信息的通訊。

創(chuàng)建產(chǎn)品

在進行涂鴉智能的開發(fā)時,需要進行產(chǎn)品創(chuàng)建。作為氣象站開發(fā),可以選擇溫濕度傳感器。

poYBAGI66NiAOxDCAAFjRNS76ZY668.png

DP點創(chuàng)建

在涂鴉智能中,每個氣象數(shù)據(jù)維度可以被抽象為DP(功能點)。在選擇了溫濕度傳感器這個產(chǎn)品后,涂鴉提供了常用的功能點:

DP ID

功能點名稱

標(biāo)識符

數(shù)據(jù)傳輸類型

數(shù)據(jù)類型

功能點屬性

1

溫度

temp_current

只上報(ro)

數(shù)值型(Value)

數(shù)值范圍: -200-600, 間距: 1, 倍數(shù): 1, 單位: ℃

2

濕度

humidity_value

只上報(ro)

數(shù)值型(Value)

數(shù)值范圍: 0-100, 間距: 1, 倍數(shù): 0, 單位: %

4

電池電量

battery_percentage

只上報(ro)

數(shù)值型(Value)

數(shù)值范圍: 0-100, 間距: 1, 倍數(shù): 0, 單位: %

除了這些標(biāo)準(zhǔn)功能中的DP點之外,因為我們還需要風(fēng)速、風(fēng)向這些數(shù)據(jù),所以還需要添加自定義的DP點:


DP ID

功能點名稱

標(biāo)識符

數(shù)據(jù)傳輸類型

數(shù)據(jù)類型

功能點屬性

101

PM2.5濃度

pm25

只上報(ro)

數(shù)值型(Value)

數(shù)值范圍: 0-100, 間距: 1, 倍數(shù): 0, 單位:

102

風(fēng)向角

wind_value

只上報(ro)

數(shù)值型(Value)

數(shù)值范圍: 0-364, 間距: 1, 倍數(shù): 1, 單位:

103

風(fēng)向

wind_direction

只上報(ro)

字符型(String)

104

風(fēng)速

wind_speed

只上報(ro)

數(shù)值型(Value)

數(shù)值范圍: 0-100, 間距: 1, 倍數(shù): 1, 單位:

105

紫外線等級

uv_level

只上報(ro)

數(shù)值型(Value)

數(shù)值范圍: 0-10, 間距: 1, 倍數(shù): 0, 單位:

106

氣壓

pressure

只上報(ro)

數(shù)值型(Value)

數(shù)值范圍: 0-1999, 間距: 1, 倍數(shù): 0, 單位: hPa

在功能點中,DP ID為該功能點的標(biāo)識,MCU在控制涂鴉模組進行數(shù)據(jù)上傳時需要用到。

功能點屬性中的倍數(shù)為0時,MCU上傳的數(shù)據(jù)被識別為上傳的數(shù)據(jù)本身。若倍數(shù)為1,則此時若上傳數(shù)據(jù)為50時,該數(shù)據(jù)將被涂鴉除以10^1,即50會被識別為5。

面板編輯

在產(chǎn)品開發(fā)的面板選項卡,可以對自己的APP面板進行自定義。

我使用的面板類型為:面板類型:Studio 面板-個人面板

下面是在手機中的實機效果:

pYYBAGI66keAPHipAADI4FfNr00178.pngpYYBAGI66lyAPlh0AADLiHukTLk106.png

硬件開發(fā)

在完成了傳感器驅(qū)動、電源板管理后,需要與涂鴉模組進行通訊,實現(xiàn)信息上報。

在這里我選擇的是WBR3 Wi-Fi & Bluetooth 模組。

該模組在初次上電時,可以打開智能生活A(yù)PP實現(xiàn)配網(wǎng)和面板加載,在完成了配網(wǎng)之后就可以進行實時開發(fā)了。

// define dp
#define temp_pid   1
#define humi_pid   2
#define battery_pid 4
#define pm25_pid     101
#define wind_angle_pid  102
#define wind_direct_pid 103
#define wind_speed_pid  104
#define uv_level_pid   105
#define pressure_pid   106
?
// Create TuyaWifi object
TuyaWifi my_device;
?
// input your device pid here
unsigned char pid[] = {""};
// select mcu version, 1.0.0 as commonly use
unsigned char mcu_ver[] = {"1.0.0"};
?
// create an array to restore the datapoint 
unsigned char dp_array[][2] = 
{
  {temp_pid, DP_TYPE_VALUE},
  {humi_pid, DP_TYPE_VALUE},
  {battery_pid, DP_TYPE_VALUE},
  {pm25_pid, DP_TYPE_VALUE},
  {wind_angle_pid, DP_TYPE_VALUE},
  {wind_direct_pid, DP_TYPE_STRING},
  {wind_speed_pid, DP_TYPE_VALUE},
  {uv_level_pid, DP_TYPE_VALUE},
  {pressure_pid, DP_TYPE_VALUE},
};
?
unsigned char dp_process(unsigned char dpid,const unsigned char value[], unsigned short length)
{
 /* all DP only report */
 return TY_SUCCESS;
}
?
void dp_update_all(void)
{
 
}
?
void setup(){
   ...
  my_device.init(pid, mcu_ver);
    my_device.set_dp_cmd_total(dp_array, 9);
  // register call back function
    my_device.dp_process_func_register(dp_process);
    my_device.dp_update_all_func_register(dp_update_all);
}
?
void loop() {
  // SDK handle
  my_device.uart_service();
  // Check the wifi connection
    if ((my_device.mcu_get_wifi_work_state() == WIFI_CONNECTED) || (my_device.mcu_get_wifi_work_state() == WIFI_CONN_CLOUD)) {
  update_sensor();
    // report all the data
    my_device.mcu_dp_update(temp_pid, temp, 1);
    my_device.mcu_dp_update(humi_pid, humi, 1);
    my_device.mcu_dp_update(battery_pid, battery_level, 1);
    my_device.mcu_dp_update(pm25_pid, pm25, 1);
    my_device.mcu_dp_update(wind_angle_pid, wind_angle, 1);
    my_device.mcu_dp_update(wind_speed_pid, wind_speed, (sizeof(dp_string_value) / sizeof(dp_string_value[0])));
    my_device.mcu_dp_update(wind_speed_pid, wind_speed, 1);
    my_device.mcu_dp_update(uv_level_pid, uv_index, 1);
    my_device.mcu_dp_update(pressure_pid, air_pressure, 1);
  }
  ...

MCU工作流程

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

    關(guān)注

    2909

    文章

    44637

    瀏覽量

    373400
  • 超聲波
    +關(guān)注

    關(guān)注

    63

    文章

    3017

    瀏覽量

    138397
  • 模組
    +關(guān)注

    關(guān)注

    6

    文章

    1492

    瀏覽量

    30392
  • 氣象站
    +關(guān)注

    關(guān)注

    1

    文章

    751

    瀏覽量

    15673
  • 涂鴉智能
    +關(guān)注

    關(guān)注

    7

    文章

    205

    瀏覽量

    19475
收藏 人收藏

    評論

    相關(guān)推薦

    自動超聲波氣象站:智慧氣象的重要組成部分

    自動超聲波氣象站是一款高度集成、低功耗、可快速安裝、便于野外監(jiān)測使用的高精度自動氣象觀測設(shè)備。以下是對自動超聲波氣象站的詳細(xì)介紹: 一、概述
    的頭像 發(fā)表于 12-06 11:51 ?170次閱讀

    負(fù)氧離子氣象站

    氣象站
    pingao141378
    發(fā)布于 :2024年10月19日 08:52:28

    超聲波和次聲波的頻率范圍和應(yīng)用

    超聲波和次聲波是兩種不同頻率的聲波,它們在許多領(lǐng)域都有廣泛的應(yīng)用。以下是關(guān)于超聲波和次聲波的頻率范圍和應(yīng)用的介紹:
    的頭像 發(fā)表于 09-19 16:42 ?2517次閱讀

    什么是超聲波一體氣象儀?

    超聲波一體式氣象儀是將多種氣象測量功能集成于一體且基于超聲波技術(shù)的儀器。它集超聲波風(fēng)速風(fēng)向測量功能于一身,同時可能還集成了溫度、濕度、氣壓等
    的頭像 發(fā)表于 09-18 10:52 ?242次閱讀
    什么是<b class='flag-5'>超聲波</b>一體<b class='flag-5'>氣象</b>儀?

    小型車載自動氣象站:提供全面、及時的氣象信息

    和記錄車輛周圍的氣象數(shù)據(jù),配有超聲波多合一環(huán)境監(jiān)測傳感器,集成度較高,可對風(fēng)速、風(fēng)向、空氣溫度、空氣濕度、噪聲、PM2.5、PM10、二氧化碳等氣象要素進行實時監(jiān)測,為駕駛員提供即時的天氣狀況信息。此外,用戶可以依據(jù)監(jiān)測環(huán)
    的頭像 發(fā)表于 09-12 16:52 ?289次閱讀

    超聲波測速的原理、方法及應(yīng)用

    超聲波測速是一種利用超聲波在介質(zhì)中的傳播速度來測量物體速度的技術(shù)。它廣泛應(yīng)用于工業(yè)、醫(yī)療、交通等領(lǐng)域。 一、超聲波測速的原理 超聲波的定義 超聲波
    的頭像 發(fā)表于 08-16 10:36 ?4201次閱讀

    校園氣象站高??破照撐?b class='flag-5'>氣象站多功能氣象站

    校園氣象站高校科普論文氣象站多功能氣象站是一種集氣象監(jiān)測、數(shù)據(jù)傳輸、數(shù)據(jù)處理、信息發(fā)布等功能于一體的數(shù)字化氣象設(shè)備。它可以通過各種傳感器實時
    的頭像 發(fā)表于 08-06 17:53 ?444次閱讀
    校園<b class='flag-5'>氣象站</b>高??破照撐?b class='flag-5'>氣象站</b>多功能<b class='flag-5'>氣象站</b>

    便攜式氣象站:未來氣象監(jiān)測的便攜新選擇

    氣象站
    萬象環(huán)境科技
    發(fā)布于 :2024年06月23日 10:39:24

    便攜式氣象站:科技與便捷的完美融合

    氣象站
    萬象環(huán)境科技
    發(fā)布于 :2024年06月22日 21:14:07

    什么是自動氣象站?

    在科學(xué)技術(shù)迅猛發(fā)展的今天,自動氣象站以其高效、精準(zhǔn)、實時的特點,逐漸成為現(xiàn)代氣象觀測的先鋒。它不僅極大地提升了氣象觀測的效率和準(zhǔn)確性,還為農(nóng)業(yè)生產(chǎn)、交通運輸、環(huán)境保護等領(lǐng)域提供了重要的氣象
    的頭像 發(fā)表于 06-14 09:15 ?542次閱讀
    什么是自動<b class='flag-5'>氣象站</b>?

    超聲波無損檢測原理及應(yīng)用

    超聲波無損檢測(Ultrasonic Non-Destructive Testing,簡稱UT)是一種利用超聲波在材料內(nèi)部傳播的特性,檢測材料內(nèi)部缺陷和結(jié)構(gòu)的無損檢測技術(shù)。本文將詳細(xì)介紹超聲波無損
    的頭像 發(fā)表于 05-24 16:48 ?5553次閱讀

    超聲波連接示波器問題

    我買了一只中心頻率2.5Mhz的超聲波探頭,當(dāng)我連接到示波器上的時候就有信號在顯示屏上。 我想問的是示波器上的信號到底是接收的環(huán)境中的超聲波信號? 還是當(dāng)探頭接到示波器上 探頭就會自動的發(fā)射超聲波然后再接收自己發(fā)射的
    發(fā)表于 05-04 14:46

    六要素超聲波氣象儀有哪些作用?原理是什么?

      JD-WQX6天氣變化無常,對人們的生產(chǎn)和生活造成很大影響。如何準(zhǔn)確地掌握天氣變化,成為了每個人關(guān)注的焦點。而六要素超聲波氣象儀,就是一款能夠幫助人們更好地了解天氣變化的利器。   六要素
    的頭像 發(fā)表于 03-29 15:37 ?444次閱讀

    超聲波氣象傳感器(超聲波技術(shù)來測量大氣環(huán)境參數(shù)的儀器)

    JD-WQX5超聲波氣象傳感器是一種利用超聲波技術(shù)來測量大氣環(huán)境參數(shù)的儀器。它可以測量風(fēng)速、風(fēng)向、溫度、濕度等多個氣象參數(shù),并且具有高精度、高穩(wěn)定性、高可靠性等優(yōu)點,被廣泛應(yīng)用于
    的頭像 發(fā)表于 03-28 15:06 ?515次閱讀

    什么是科研用的小型氣象站

      JD-CQX7科研用的小型氣象站是一種專門設(shè)計用于科學(xué)研究領(lǐng)域的氣象監(jiān)測設(shè)備,其主要特點是小巧輕便、靈活易用,并具有高精度的測量性能。這種氣象站通常包括多個傳感器,能夠測量和記錄氣溫、濕度、風(fēng)速、風(fēng)向、氣壓、降水量等多種
    的頭像 發(fā)表于 03-15 15:26 ?387次閱讀