基於nb iot和arduino的氣象站(四)

2021-08-20 18:30:59 字數 718 閱讀 4133

前幾篇分開記錄了氣象站上的溫濕度、紫外線、pm2.5、gps感測器和nb-iot模組的使用。

這一篇記錄如何把所有硬體整合到一起。

設計了一塊專用pcb電路板,連線所有硬體,避免了複雜的導線連線,電路板上所有元件緊湊排布,盡可能減小了裝置體積;同時,我們設計了防水外殼。

前面幾篇已經記錄了單個感測器的示例**。因此,在合併所有**過程中,對於每個感測器的**,基本上全部複製過來就行了。在loop函式中呼叫各個感測器的函式,然後將所有資料合併到一起,修改為nb模組要求的格式,通過nb模組傳送資料,就結束了氣象站硬體部分的工作。

因為感測器比較多,arduino pro mini 的串列埠不夠用,因此使用了軟串列埠的方法。在**中,pm2.5和gps感測器資料的讀取使用軟串列埠。而arduino同時只能開啟乙個軟串列埠,因此在loop中讀取pm2.5和gps之前,都要呼叫對應軟串列埠的listen()函式。

因為gps感測器大概以每秒一次的頻率傳送資料,如果以之前文章中記錄的**來讀取gps資料,很有可能會遇到資料讀取不成功的情況。因此,修改了gpsread函式,在呼叫時,先清空串列埠中內容,然後等待串列埠資料,最後再讀取,這樣就能保證讀取成功。

有些時候遇到了問題卻找不到原因,就加了delay語句,就神奇的好了。

在最開始遇到了arduino頻繁重啟的問題,是因為動態記憶體不足。

基於nb iot和arduino的氣象站(三)

這一篇介紹nb iot模組的使用。我使用的nb模組為基於移遠bc 95設計的開發板nb101,為穀雨公司產品。選用這款產品是因為這個公司自己有乙個簡單易用的雲透傳平台,可以將nb模組的資料透傳到任意支援socket連線的裝置上。nb101包含了天線射頻 供電 sim卡座 esd防護電路等電路。接上電...

基於Arduino的自動澆水

房子裝修好之後,甲醛含量測下來很高,買了好幾盆綠植淨化空氣。結果被派出去長期出差,正值天氣轉暖,花草得經常澆水,只好拜託朋友幫忙,很是麻煩。為了解決這個麻煩,便想著基於arduino做乙個自動澆水裝置,解決在外出差時家裡花花草草的澆水問題。出差期間,在油管上看到一些別人做的案列,發現要實現自動澆水並...

基於數碼管和OLED的Arduino桌面級顯示裝置

前天才回到學校,打掃了兩天的宿舍,今天終於有空整理自己的東西了。於是我找到了塵封已久的基於數碼管和oled的arduino桌面級顯示裝置 之前做好了,但是由於各種原因被我拆掉了一些零件 今天可算是把它修復了,以後就掛宿舍欣賞了 手動滑稽 關於數碼管程式及oled的arduino程式編寫可檢視我之前的...