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

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

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

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

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

步驟1:解碼無線信號

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

步驟2:硬件

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

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

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

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

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

您需要的組件:

1。 Arduino MEGA 2560

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

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

4??罩薪Y(jié)果5。 DS3234 RTC中斷模塊

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

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

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

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

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

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

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

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

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

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

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

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

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

庫參考

?TimeLord庫

?EEPROMWriteAnything庫

?RTCLib庫

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

步驟5:電子郵件代碼

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

氣象臺警報電子郵件php腳本:

《?php

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

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

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

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

$ SUBJECT =‘天氣站點更新”;

$ 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 =’來自氣象站的消息

時間為‘。$ TIME 。 ’

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

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

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

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

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

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

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

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

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

?》

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

步驟6:已知限制和需要改進的地方

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

責(zé)任編輯:wv

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

    關(guān)注

    0

    文章

    137

    瀏覽量

    24356
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6458

    瀏覽量

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

    關(guān)注

    1

    文章

    736

    瀏覽量

    15620
收藏 人收藏

    評論

    相關(guān)推薦

    負氧離子氣象站

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

    區(qū)域生態(tài)自動氣象站:數(shù)據(jù)監(jiān)測與傳輸

    BK-CQX12,區(qū)域生態(tài)自動氣象站主要用于監(jiān)測和收集氣象數(shù)據(jù),以便更好地了解和管理區(qū)域生態(tài)環(huán)境。這些氣象站通常配備各種傳感和設(shè)備,用于實時監(jiān)測氣溫、濕度、降水量、風(fēng)速、氣壓等
    的頭像 發(fā)表于 08-09 16:30 ?256次閱讀
    區(qū)域生態(tài)自動<b class='flag-5'>氣象站</b>:數(shù)據(jù)監(jiān)測與傳輸

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    農(nóng)業(yè)氣象站:助力現(xiàn)代農(nóng)業(yè)發(fā)展

    農(nóng)業(yè)氣象站:助力現(xiàn)代農(nóng)業(yè)發(fā)展
    的頭像 發(fā)表于 01-31 11:28 ?377次閱讀

    【開源項目】Arduino ESP32 彩色電子氣象站

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