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

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

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

Arduino無(wú)線氣象站和Web服務(wù)器的制作

454398 ? 來(lái)源:網(wǎng)絡(luò)整理 ? 作者:網(wǎng)絡(luò)整理 ? 2019-11-13 17:16 ? 次閱讀

步驟1:解碼無(wú)線信號(hào)

這是最大的障礙,我必須將這一階段的全部功勞交給JeeLabs的Dominique Pierre,我使用了該代碼(在Dominique的支持下)對(duì)我的所有傳感器進(jìn)行了解碼。測(cè)試硬件很簡(jiǎn)單(并在JeeLabs網(wǎng)站上進(jìn)行了說(shuō)明)。這里要注意的一點(diǎn)是,最初我使用的是Arduino UNO,但是(如后所述)我轉(zhuǎn)到了MEGA。出于測(cè)試和解碼目的,任何一個(gè)都可以使用,我強(qiáng)烈建議您執(zhí)行此步驟,然后再進(jìn)行其他操作,以便您可以識(shí)別和驗(yàn)證接收到的信號(hào)是否來(lái)自傳感器,并可以對(duì)其進(jìn)行解釋。我使用了一個(gè)簡(jiǎn)單的Excel電子表格來(lái)手動(dòng)驗(yàn)證解碼的信號(hào)并在開(kāi)始任何氣象站編碼之前計(jì)算出校驗(yàn)和。

步驟2:硬件

除了RF無(wú)線電接收器外,我還使用了RTC –您可以使用以太網(wǎng)屏蔽和NTP,但是我覺(jué)得重點(diǎn)在于應(yīng)該是日志記錄而不是Internet/服務(wù)器端,如果使用RTC時(shí)網(wǎng)絡(luò)中斷,則可以“離線”完成。我也為一個(gè)傳感器有限的朋友構(gòu)建了該項(xiàng)目的變體,因此包括一個(gè)“車(chē)載”壓力和溫度傳感器。您所使用的取決于您自己,稍后我會(huì)提供所有元素的示例代碼。該示意圖提供了已使用硬件的概述。我在Fritzing中構(gòu)建,還創(chuàng)建了一個(gè)“ mini Shield”,該插槽插入MEGA的“端”,以太網(wǎng)屏蔽即在該端完成(如圖中的白色所示)。該“防護(hù)罩”包括可選件的腳印和一些將來(lái)可選件的突圍針。已嘗試/測(cè)試的組合包括:

?用于Oregon Scientific傳感器的RF接收器和RTC

?用于Cresta傳感器,RTC和BMP085氣壓/溫度傳感器的RF接收器

?外部LM35溫度傳感器(防水和測(cè)量以及我們花園中溪流的溫度)和外部溪流深度監(jiān)控器(此處未詳細(xì)說(shuō)明,但使用安裝在橋上的I2C超聲波測(cè)距儀來(lái)評(píng)估溪流的高度–有趣的是,大雨時(shí)深度可能在30cm到150cm之間變化! )。但是,任何組合都可以使用,并且可以將代碼修改為適當(dāng)?shù)娜罩?Web服務(wù)。

如上所示,示意圖顯示了屏蔽上的組件,不需要全部使用,但是可以使用選項(xiàng)如果想要的話。以太網(wǎng)屏蔽層也未顯示,只需插入MEGA。

您需要的組件:

1。 Arduino MEGA 2560

2。以太網(wǎng)屏蔽(帶有micro SD卡)

3。 RF 433MHz接收器(已使用Aurel RX-4M50RR30SF,從這里開(kāi)始運(yùn)行良好)

4。空中結(jié)果5。 DS3234 RTC中斷模塊

6。 LM35溫度傳感器(最多2個(gè),可選)

7。 BMP085壓力傳感器(可選)

為了將Arduino和“盾牌”安裝到標(biāo)準(zhǔn)Arduino外殼中,我不得不卸下了兩個(gè)定位銷(xiāo),但是這些定位銷(xiāo)很容易折斷,并且不會(huì)影響到固定的安裝位置。硬件。請(qǐng)注意,在PCB上,接收器模塊位于PCB的下側(cè)(有足夠的空間),因此仍可以彈出存儲(chǔ)卡而不會(huì)受到干擾。

我用433MHz的鞭狀天線使設(shè)備看起來(lái)更整潔(未連接照片,但顯示為安裝在第二張照片的包裝盒中)–不確定其響應(yīng)是否比我的測(cè)試天線更好-一根電線;但是看起來(lái)更整潔并且更專(zhuān)業(yè)!

第3步:記錄數(shù)據(jù)的代碼

這是一個(gè)擴(kuò)展步驟1的步驟,獲取接收到的信號(hào)并解釋這些信號(hào)以獲得“真實(shí)”值。這些數(shù)據(jù)存儲(chǔ)在全局變量中,因?yàn)閿?shù)據(jù)在多個(gè)地方使用(即日志記錄階段和網(wǎng)頁(yè)服務(wù)頁(yè)面,第4步)。我通常使用整數(shù)來(lái)盡可能地節(jié)省內(nèi)存并加快處理速度,在將值記錄或“提供”到網(wǎng)絡(luò)時(shí),除以10可以得到小數(shù)點(diǎn)后一位。我還包括了最大值和最小值的觸發(fā)器(如果在一年中的某個(gè)時(shí)刻斷電,它們會(huì)在午夜存儲(chǔ)在EEPROM中)。對(duì)于某些參數(shù),還有觸發(fā)器發(fā)送電子郵件(第5步)。我為那些需要驗(yàn)證的元素添加了校驗(yàn)和,因?yàn)榕紶枙?huì)處理錯(cuò)誤的數(shù)據(jù)并歪曲最大/最小數(shù)據(jù)。 Oregon Scientific信號(hào)的解碼基于互聯(lián)網(wǎng)上的信息以及此處的Cresta設(shè)備的信息。請(qǐng)注意,每個(gè)Oregon Scientific和Cresta設(shè)備的RF解碼代碼都不相同。這兩個(gè)示例都包含在示例草圖文件中。

第4步:Web服務(wù)代碼

有這有兩個(gè)關(guān)鍵要素。一種是直接從Arduino提供固定格式的頁(yè)面,本質(zhì)上是傳感器讀數(shù),電池狀態(tài),Arduino狀態(tài)等的列表。這對(duì)于“調(diào)試”這兩個(gè)軟件很有用,但也可以驗(yàn)證硬件是否按預(yù)期工作–例如,如果傳感器由于超出范圍或受到干擾而未被解碼,則可以在“最新更新”詳細(xì)信息上對(duì)其進(jìn)行監(jiān)視。第二個(gè)要素是提供更復(fù)雜的頁(yè)面。編碼的解決方案非常強(qiáng)大(我認(rèn)為),因?yàn)樗鼘腟D卡的根目錄加載模板文件(以文本形式),并在該文件中找到“變量”(以打開(kāi)和關(guān)閉~~表示),在投放到網(wǎng)頁(yè)之前,將其替換為值。這意味著可以創(chuàng)建非常復(fù)雜的網(wǎng)頁(yè),而無(wú)需重新編碼Arduino,也無(wú)需占用內(nèi)存/資源,包括對(duì)外部文件的引用,例如.css文件,圖像等,這些文件可以存儲(chǔ)在您自己的網(wǎng)站上,而不是在網(wǎng)站上提供最初,該代碼旨在在UNO上工作,但我需要為趨勢(shì)圖存儲(chǔ)大數(shù)據(jù)數(shù)組(48個(gè)值x 13組) (請(qǐng)參見(jiàn)示例網(wǎng)頁(yè)),盡管編譯大小低于32k,但Arduino因內(nèi)存“過(guò)載”而失敗。..轉(zhuǎn)到MEGA還允許添加附加功能(例如電子郵件,日出等),而不會(huì)出現(xiàn)問(wèn)題。 。隨意優(yōu)化代碼并將其壓縮到UNO上。

示例文件(graphs.htm)在下面創(chuàng)建網(wǎng)頁(yè),并利用Google Charts api通過(guò)簡(jiǎn)單的超鏈接調(diào)用呈現(xiàn)圖表。請(qǐng)注意,該代碼僅適用于8.3命名文件(由于使用了SDFat),因此使用了.htm命名文件。要查看處理后的頁(yè)面,只需鍵入Arduino IP代碼:端口,然后輸入/graphs.htm。

該代碼還包括用于計(jì)算某些派生參數(shù)(例如云底高度和風(fēng)寒)的數(shù)學(xué)方法。除正常頁(yè)面交付外的URL:

?YourIP:Port/EEPROM –強(qiáng)制將當(dāng)前的最大和最小(和下雨次數(shù))記錄到EEPROM中。在出于任何原因斷電以確保維護(hù)年度數(shù)據(jù)之前執(zhí)行此操作很有用。注意:每天午夜只對(duì)EEPROM寫(xiě)入一次。這可以延長(zhǎng)Arduino EEPROM的壽命,并且由于我打算每天無(wú)限期供電,因此我認(rèn)為每天就足夠了。

?YourIP:Port/TIME&year&year&mo&day&hr&mi –盡管已使用RTC,但它似乎會(huì)浪費(fèi)一段時(shí)間。此功能允許用戶(hù)(通過(guò)Web)將RTC重置為“正確的時(shí)間”并更新夏令時(shí)的更改。

基本日志記錄和服務(wù)器代碼均基于此處的教程,并進(jìn)行了修改以滿(mǎn)足我的需要和更改為Arduino 1.0編譯器。

庫(kù)參考

?TimeLord庫(kù)

?EEPROMWriteAnything庫(kù)

?RTCLib庫(kù)

?SDFat庫(kù)(和以太網(wǎng)/SD卡教程)

步驟5:電子郵件代碼

使用一個(gè)簡(jiǎn)單的網(wǎng)頁(yè)客戶(hù)端,我將一個(gè)URL稱(chēng)為php位于我網(wǎng)頁(yè)上的腳本,用于通過(guò)電子郵件發(fā)送設(shè)置的電子郵件分發(fā)列表。同樣,由于它是由Arduino托管的,因此我可以隨時(shí)更改電子郵件的分發(fā)和內(nèi)容。

氣象臺(tái)警報(bào)電子郵件php腳本:

《?php

//以下幾行閱讀了URL中的參數(shù)

$ TO =‘電子郵件地址1’;

$ TO。=‘,電子郵件地址2’;

$ FROM =‘您的電子郵件地址’;

$ SUBJECT =‘天氣站點(diǎn)更新”;

$ TIME = $ _REQUEST [“ TIME”];

$ TEMPNOW = $ _REQUEST [“ TEMPNOW”];

$ WSNOW = $ _REQUEST [“ WSNOW”];

$ WDNOW = $ _REQUEST [“ WDNOW”];

$ RAIN = $ _REQUEST [“ RAIN”];

$ TEMPMAX = $ _REQUEST [“ TEMPMAX”];

$ TEMPMIN = $ _REQUEST [“ TEMPMIN” ];

$ WSMAX = $ _REQUEST [“ WSMAX”];

$ TRIGGER = $ _REQUEST [“ TRIGGER”];

$ MESSAGE =’來(lái)自氣象站的消息

時(shí)間為‘。$ TIME 。 ’

-現(xiàn)在的溫度是‘。$ TEMPNOW。 ’C

-現(xiàn)在的風(fēng)速為‘。$ WSNOW。 “每小時(shí)deg

-今天下雨”。$ RAIN。 ’mm

-今天的最高溫度是‘。$ TEMPMAX。 ’C

-今天的最低溫度是‘。$ TEMPMIN。 ’C

-今天的最大風(fēng)速為‘。$ WSMAX。 ’mph

由于‘。$ TRIGGER發(fā)送了電子郵件。 ’;

//這將發(fā)送消息

mail($ TO,$ SUBJECT,$ MESSAGE,“發(fā)件人:”。$ FROM);

?》

如果有,還會(huì)發(fā)出一封電子郵件

步驟6:已知限制和需要改進(jìn)的地方

1。我遇到的最大問(wèn)題是,在檢查任何網(wǎng)頁(yè)請(qǐng)求時(shí),Arduino缺少對(duì)RF信號(hào)的解碼。更改為Arduino 1.0會(huì)使情況變得更糟(似乎需要花費(fèi)很多時(shí)間才能檢查任何服務(wù)器請(qǐng)求)。為了克服這個(gè)問(wèn)題,我只會(huì)在收到并解碼了RF信號(hào)時(shí)檢查互聯(lián)網(wǎng)活動(dòng)(這對(duì)我來(lái)說(shuō)很有效,因?yàn)槲矣泻芏鄠鞲衅?,每隔幾秒鐘就?huì)收到一個(gè)信號(hào)),或者每5秒通過(guò)關(guān)于mills()的檢查。這在實(shí)踐中可行(用戶(hù)接收網(wǎng)頁(yè)的最大延遲約為5秒鐘,并且沒(méi)有明顯的閱讀損失),但是我敢肯定有更好的方法可以做到這一點(diǎn),例如軟件中斷? 》 2。有些編碼很差(我可以更好地利用函數(shù)/過(guò)程,甚至可能更好地利用某些庫(kù)工作(這超出了我的能力)),而且我敢肯定,有更有效的方法可以達(dá)到相同的目的。該代碼可以正常工作,并且可以可靠地完成我的工作(運(yùn)行幾個(gè)月沒(méi)有問(wèn)題),但是歡迎任何改進(jìn)/建議。

責(zé)任編輯:wv

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

    關(guān)注

    0

    文章

    138

    瀏覽量

    24435
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6472

    瀏覽量

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

    關(guān)注

    1

    文章

    756

    瀏覽量

    15695
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    自動(dòng)氣象站的工作原理與應(yīng)用

    自動(dòng)氣象站是現(xiàn)代氣象觀測(cè)網(wǎng)絡(luò)的重要組成部分,它通過(guò)集成傳感、數(shù)據(jù)采集與處理系統(tǒng)、通訊設(shè)備等技術(shù)手段,實(shí)現(xiàn)了對(duì)大氣環(huán)境參數(shù)的實(shí)時(shí)監(jiān)測(cè)和高效數(shù)據(jù)傳輸。以下是對(duì)自動(dòng)氣象站的工作原理與應(yīng)用的
    的頭像 發(fā)表于 12-18 13:56 ?161次閱讀

    城市交通氣象站:本地化氣象服務(wù)保障都市交通

    在繁華喧囂的都市中,交通如同一座城市的血脈,日夜不停地流淌,維持著城市的生機(jī)與活力。而城市交通氣象站,則猶如敏銳的神經(jīng)末梢,感知著氣象的細(xì)微變化,為都市交通提供著精準(zhǔn)且本地化的氣象服務(wù)
    的頭像 發(fā)表于 12-11 17:20 ?240次閱讀

    負(fù)氧離子氣象站

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

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

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

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

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

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

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

    什么是自動(dòng)氣象站?

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

    小型氣象站是什么?有哪些作用?

    小型氣象站可以監(jiān)測(cè)多種氣象參數(shù),包括但不限于溫度、濕度、氣壓、風(fēng)速、風(fēng)向、降水量等。這些數(shù)據(jù)對(duì)于農(nóng)業(yè)、氣象預(yù)測(cè)、交通運(yùn)輸、環(huán)境監(jiān)測(cè)等領(lǐng)域都至關(guān)重要。例如,在農(nóng)業(yè)領(lǐng)域,農(nóng)民可以根據(jù)氣象站
    的頭像 發(fā)表于 05-29 17:03 ?583次閱讀

    多參數(shù)自動(dòng)氣象站:科技前沿與應(yīng)用尖端

    JD-CQX10 多參數(shù)自動(dòng)氣象站代表了氣象監(jiān)測(cè)領(lǐng)域的科技前沿與應(yīng)用尖端,其集成了多種傳感和先進(jìn)技術(shù),能夠?qū)崿F(xiàn)對(duì)氣象要素的全面監(jiān)測(cè)和高效數(shù)據(jù)采集。 這些先進(jìn)的自動(dòng)
    的頭像 發(fā)表于 05-16 17:16 ?446次閱讀

    微型氣象站的性能表現(xiàn)如何?

    。準(zhǔn)確性取決于傳感的精度和校準(zhǔn)程度。對(duì)于溫度、濕度、風(fēng)速等參數(shù)的監(jiān)測(cè),微型氣象站的傳感需要具備高精度和高穩(wěn)定性,確保監(jiān)測(cè)數(shù)據(jù)的準(zhǔn)確性。定期的校準(zhǔn)和維護(hù)是保證微型氣象站準(zhǔn)確性的關(guān)鍵步
    的頭像 發(fā)表于 05-10 16:22 ?429次閱讀

    農(nóng)業(yè)小型自動(dòng)氣象站應(yīng)用

    。 小型自動(dòng)氣象站,由農(nóng)業(yè)環(huán)境監(jiān)測(cè)領(lǐng)域硬件和軟件設(shè)計(jì)而來(lái),采用物聯(lián)網(wǎng)、無(wú)線通訊等技術(shù),穩(wěn)定運(yùn)行在各種惡劣戶(hù)外環(huán)境下,具備低功耗、高穩(wěn)定性、高精度、無(wú)人值守等特點(diǎn),24小時(shí)全天候監(jiān)測(cè)農(nóng)業(yè)生產(chǎn)的各項(xiàng)氣象參數(shù)。 采用小
    的頭像 發(fā)表于 04-24 16:42 ?460次閱讀

    小型農(nóng)業(yè)氣象站廠家:數(shù)據(jù)分析與決策支持

    ,助力農(nóng)業(yè)增產(chǎn)致富。 一、智能化農(nóng)業(yè)氣象站——助力農(nóng)民科學(xué)種植 小型農(nóng)業(yè)氣象站廠家推出的智能化農(nóng)業(yè)氣象站,集成了先進(jìn)的氣象傳感器、數(shù)據(jù)采集系統(tǒng)和云平臺(tái)
    的頭像 發(fā)表于 04-02 16:35 ?463次閱讀

    罐區(qū)防爆氣象站:科技保障,安全生產(chǎn)

    JD-FBCQ罐區(qū)防爆氣象站是指在石油、化工等工業(yè)罐區(qū)內(nèi)設(shè)置的一種氣象監(jiān)測(cè)設(shè)備,旨在監(jiān)測(cè)和分析當(dāng)?shù)?b class='flag-5'>氣象變化,提供關(guān)鍵氣象信息,以保障罐區(qū)安全生產(chǎn)??萍急U显谶@里主要體現(xiàn)在提供高精度、實(shí)
    的頭像 發(fā)表于 03-19 16:40 ?614次閱讀

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

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

    【開(kāi)源項(xiàng)目】Arduino ESP32 彩色電子氣象站

    這是我十多年來(lái)一直想建立的項(xiàng)目。我終于成功了,我真的很興奮——一個(gè)電池供電的氣象站項(xiàng)目。我過(guò)去建造過(guò)許多氣象站項(xiàng)目,但這次不同。它可以在電池上持續(xù)數(shù)月。原因是它使用的令人驚嘆的電子紙顯示。讓我向你
    發(fā)表于 01-16 14:01