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

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

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

利用Arduino Nano 33 IoT構(gòu)建的微型互聯(lián)網(wǎng)氣象站

科技觀察員 ? 來源:https://file.elecfans.com//web ? 作者:Doug Domke ? 2022-04-05 15:58 ? 次閱讀

該項目是一個易于構(gòu)建的簡單氣象站,可通過WiFi和Blynk連接到您的智能手機。

背景

實際上,有很多應(yīng)用程序可以讓您將智能手機連接到物聯(lián)網(wǎng),在此期間我嘗試了很多,不過帶來的結(jié)果通常都讓我很失望。但Blynk不是這樣!它非常靈活,擁有漂亮的用戶界面,適用于各種物聯(lián)網(wǎng)平臺,并且可以在AndroidiPhone上運行。愛好者也可以免費使用!所以這是一個相對簡單的物聯(lián)網(wǎng)項目,讓我可以使用Blynk進行探索。

硬件

這個項目的硬件相當簡單。我們使用ArduinoNano33IoT、一個將溫度、濕度和氣壓全部集成在一個單元中的BME280傳感器板,以及一個1英寸的OLED顯示屏。這三個部件都在3.3V電壓下運行良好。

顯示方面是可選的-目標是讓氣象站顯示在您的手機上。但是,在處理Blynk和您的智能手機之前,我們首先得讓OLED顯示屏上啟動和運行所有內(nèi)容。

下面的示意圖顯示了硬件是如何互連的。傳感器和顯示接口均采用I2C。理論上,一個I2C可以支持多個設(shè)備,但是傳感器和顯示器的庫有一些沖突,所以我最終得到了兩個不同的I2C端口。傳感器在模擬引腳4和5處使用正常的默認I2C端口。顯示器使用在數(shù)字引腳4和5處設(shè)置的輔助I2C端口。(是的,它們是相反的-SDA是數(shù)字引腳5))

硬件封裝在一個前面清晰的小塑料外殼中,以便我們可以查看內(nèi)容,同時。它需要相對防風雨,傳感器通過底部的1/2“孔暴露在外部天氣中,使傳感器的連接使其正好位于該孔內(nèi)。我將所有東西都安裝在外殼內(nèi)膠水,但如果你打算在夏天炎熱的時候把它放在外面,你可能還想用環(huán)氧樹脂代替。

該項目通過USB電纜供電。它通過開箱即用的單根電纜進行編程或供電。該電纜可以在編程時連接到您的計算機,或者在用作氣象站時連接到插入式USB電源。

軟件

在Arduino上運行的軟件不僅僅是傳感器、顯示器和Blynk庫示例的混搭。涉及的庫還有傳感器的Adafruit_BME280_Library、顯示器的ss_oled庫和Blynk的Blynk庫。這三個都可以直接從Arduino的庫管理器下載。

Blynk有很多關(guān)于如何配置硬件以與其交互的示例:https://examples.blynk.cc/但它沒有將Nano33IoT列為其支持的Arduino之一。但Blynk確實支持WiFiNINA,它被Nano33IoT和其他幾個Arduino處理器使用。所以添加這兩個包含解決了這個問題:#include《WiFiNINA.h》和#include《BlynkSimpleWiFiNINA.h

您將在我的代碼中看到的另一項添加是:#include《avr/dtostrf.h》這是將傳感器輸出的數(shù)字轉(zhuǎn)換為適合在OLED顯示屏上顯示的字符串所必需的。起初,我向Blynk發(fā)送了與我發(fā)送到OLED相同的字符串。這可以很好地顯示數(shù)字,但是當我添加圖表時完全失敗了。為了讓圖表發(fā)揮作用,Blynk顯然需要實際的數(shù)字。

注意-大氣壓力通常報告為校正到海平面。在較高海拔處,大氣壓力明顯下降,因此要將傳感器的值校正為海平面上的等效讀數(shù),您必須在每1000英尺海拔的測量值中添加一個大約1英寸汞柱的值。在我自己的附加代碼中,你會看到我添加了1.3來補償我自己海拔1300英尺的高度。您將需要更改此值以匹配您自己的高度。每1000英尺1英寸汞柱只是一個粗略的估計。如果你想要一個精確的修正,網(wǎng)上有表格可以為你提供精確的海拔修正。

此時,您可以設(shè)置硬件,并使用我的附加軟件在OLED顯示屏上顯示天氣數(shù)據(jù)。只需在Setup中注釋掉Blynk.begin()行,即可讓氣象站自行運行。(如果您不注釋掉Blink.begin(),沒有與Blynk的有效連接,則草圖將停止或掛起。)在

Blynk

Blynk很容易安裝在你的iPhone或Android上,并附帶詳細的文檔:http://docs.blynk.cc/但是那里有太多的信息和太多的選項,一開始我發(fā)現(xiàn)文檔有點混亂,所以我會在這里提供我自己的如何開始使用Blynk的版本。

我在iPhone上使用了Blynk,但我認為與Android的使用情況非常相似,您可以按照我的說明使用其中任意一個。

在擁有應(yīng)用程序后,您需要創(chuàng)建一個帳戶。從那里,在應(yīng)用程序中,您創(chuàng)建一個新項目。您的項目提供了一個身份驗證代碼,用于將您的硬件與您的項目鏈接。你需要做的第一項工作是通過WiFi將您的硬件連接到您的Blynk項目。您可以使用示例.blynk.cc上名為BlynkBlink的Blynk默認草圖/程序來完成此操作并進行測試,它允許您打開和關(guān)閉Nano33IoT上的板載LED。

但我的建議是,在嘗試讓氣象站與Blynk合作之前,先嘗試一下并讓它工作。

我們已經(jīng)討論了一些關(guān)于配置我們的軟件以使我們的Nano33IoT與Blynk一起工作的內(nèi)容。如果您打開examples.blynk.cc,它默認為ESP8266板。找到#include《ESP8266WiFi.h》和#include《BlynkSimpleEsp8266.h》并將它們替換為#include《WiFiNINA.h》和#include《BlynkSimpleWiFiNINA.h用于我們的Nano33IoT板。

除了為Nano33IoT添加WiFiNINA支持外,正如我們已經(jīng)討論過的,您需要添加WiFi憑據(jù)和Blynk項目的身份驗證代碼。

首先,檢查連接。正確配置并運行BlynkBlink草圖后,打開Arduino的串行監(jiān)視器,您應(yīng)該能夠看到與Blynk云服務(wù)器的連接。此時,我們可以擱置硬件,在手機上使用Blynk應(yīng)用程序。

我發(fā)現(xiàn)Blynk應(yīng)用程序的界面有些混亂:

左上角的圖標允許您在項目之間進行選擇,也可以注銷您的帳戶;

右上角允許您進入和退出編輯項目模式。中間那個做什么取決于你在哪里。

poYBAGJIAc6AVeqmAAFpSVDpVZo075.png

要控制我們的板載LED,我們需要在應(yīng)用程序中進入編輯模式。然后您將看到一個空白屏幕。如果您向左滑動,它將移到一邊以顯示小部件工具箱。通過單擊選擇一個按鈕,它現(xiàn)在將出現(xiàn)在主屏幕上。在此處單擊它,它將打開以進行配置。將其從推送模式移至切換模式。使用引腳選擇來選擇板載LED-Nano33IoT上的數(shù)字引腳13?,F(xiàn)在點擊確定,然后點擊右上角的圖標退出編輯模式。您的按鈕現(xiàn)在應(yīng)該控制LED。

帶有Blynk的氣象站

我們現(xiàn)在準備將我們的氣象站鏈接到我們的Blynk項目。打開我附加的軟件,在設(shè)置中取消注釋Blynk.begin()行,添加您的項目身份驗證代碼和WiFi憑據(jù),然后上傳到Arduino。

pYYBAGJIAciAGKcIAAInZAXJHUM409.png

在手機上打開Blynk。如果您按照本篇進行操作,您的按鈕仍然存在,并且應(yīng)該仍然能夠打開和關(guān)閉板載LED。進入編輯模式,單擊按鈕進行配置,然后使用最底部的Delete將其刪除?,F(xiàn)在轉(zhuǎn)到工具箱并選擇一個標簽值。它在顯示下方的列表中。返回顯示頁面,單擊標簽值顯示進行配置。單擊pin,然后選擇VirtualpinV3。我們將在下一段中解釋虛擬引腳?,F(xiàn)在對于標簽,它說“例如溫度”類型“溫度/pin.#/deg.F”。.#告訴應(yīng)用程序顯示小數(shù)點后一位。選擇大文本大小,并將刷新間隔保留為推送,文本顏色保留為綠色。

現(xiàn)在單擊確定。您的標簽值現(xiàn)在幾乎可以顯示溫度了,但它的顯示界面太窄了,我們需要慢慢選擇它-足夠慢以至于它不會重新進入配置模式。標簽的輪廓將亮起?,F(xiàn)在可以拉伸它以顯示整行。它也可以四處移動,盡管我們不會在這里這樣做。將其拉伸到屏幕上大約3/4的位置。然后退出編輯模式,您應(yīng)該會看到手機上顯示的溫度。

在我們完成配置Blynk之前,有必要解釋一下我們剛剛在設(shè)置溫度顯示時看到的一些事情。

Blynk使用了一個有點獨特的功能,稱為虛擬引腳。顯示值小部件可以設(shè)置為讀取我們處理器上的模擬引腳,或設(shè)置為讀取數(shù)字引腳是高電平還是低電平。但更多時候,我們想要顯示變量的內(nèi)容。我們通過為該變量分配一個虛擬引腳號來做到這一點,從那時起,Blynk應(yīng)用程序?qū)⑼ㄟ^它的虛擬引腳號引用該變量。因此,在我的軟件中,您將看到我將華氏溫度分配給虛擬引腳V3的位置。

另一個值得一提的Blynk想法是我們在Push模式下留下的RefreshInterval。這意味著Arduino草圖正在持續(xù)輸出數(shù)據(jù),在我們的例子中,每分鐘更新一次溫度、濕度和氣壓。但Blynk也支持Pull方法,其中Blynk應(yīng)用程序設(shè)置間隔并詢問硬件以獲取新數(shù)據(jù)。

所以現(xiàn)在讓我們完成在Blynk上顯示我們的氣象站。您將需要另外兩個標簽值顯示,一個用于濕度百分比(虛擬引腳V4),另一個用于“英寸汞柱”或英寸汞柱(虛擬引腳V5)的壓力。對于濕度,我顯示小數(shù)點后一位;對于壓力,我顯示了小數(shù)點后兩位。

如果您現(xiàn)在有顯示溫度、濕度和氣壓的三個標簽值顯示,您可以添加所有三個的圖表。這是通過添加SuperChart小部件來完成的。首先,將其向下拉伸,使其充滿屏幕的其余部分。然后點擊它進行配置。我打開了顯示x軸值,并選擇了實時分辨率、1小時、6小時、1天、1周、1個月。和3個月。我們需要三個數(shù)據(jù)流——一個用于我們的3個變量中的每一個。要配置每個數(shù)據(jù)流,請單擊其右側(cè)的圖標。我們需要再次為每個選擇虛擬引腳。對于y軸縮放,選擇高度。然后對于溫度,將高度設(shè)置為67-100。對于濕度,將高度設(shè)置為34-66。對于壓力,將高度設(shè)置為0-33。設(shè)置顏色以匹配標記值。打開顯示Y軸。就是這樣。退出編輯模式,你的手機顯示應(yīng)該和我的一樣。圖表需要一點時間才能開始。要獲得快速結(jié)果,請查看實時或1小時分辨率。

您可能想了解的Blynk的另一項功能是與其他智能手機共享您完成的Blynk項目,以便不止一部手機可以查看氣象站。要啟動共享,請將您的項目置于編輯模式,然后單擊項目設(shè)置的頂部中間圖標。打開共享,然后生成一個鏈接。它會給你一個二維碼,你可以通過電子郵件發(fā)送或以其他方式分享。新用戶需要Blynk應(yīng)用程序,但不需要Blynk上的帳戶。未注冊用戶的應(yīng)用程序有一個鏈接,用于加載另一個人的Blynk項目的二維碼。

這是對Blynk的一個非常有限的介紹,但應(yīng)該會帶給你一個很好的使用起點。

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

    關(guān)注

    66

    文章

    18363

    瀏覽量

    179467
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6455

    瀏覽量

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

    關(guān)注

    1

    文章

    730

    瀏覽量

    15592
收藏 人收藏

    評論

    相關(guān)推薦

    【OneNET麒麟座試用申請】基于OneNET的家用氣象站

    /WIFI模塊等硬件開發(fā)基于OneNET的家用氣象站,項目具有以下功能:(1)獲取當前的溫濕度和PM2.5值(2)數(shù)據(jù)通過LCD1602顯示(3)通過GPRS/WIFI模塊連接互聯(lián)網(wǎng)并接入OneNET(4)將數(shù)據(jù)上傳至OneNET,實現(xiàn)遠程
    發(fā)表于 03-17 18:20

    基于Arduino MKR FOX 1200的移動物聯(lián)網(wǎng)氣象站 含代碼

    信息。無線電網(wǎng)絡(luò)通過rest-api調(diào)用攝取互聯(lián)網(wǎng)上的數(shù)據(jù)。最后,網(wǎng)站和移動應(yīng)用程序可以處理和顯示信息。原理圖MKRFOX1200_mobile天氣基于Arduino MKRFOX1200的移動
    發(fā)表于 05-10 20:59

    分享一個家庭互聯(lián)網(wǎng)氣象站的項目方案

    描述DubosAirNano2 氣象站 (NarodMon / Dozor MoyMon)家庭互聯(lián)網(wǎng)氣象站 Dubos Air Nano 2 是之前發(fā)展的延續(xù)。該設(shè)備測量室外和室內(nèi)的溫
    發(fā)表于 07-13 06:04

    Arduino Nano氣象站開源

    電子發(fā)燒友網(wǎng)站提供《Arduino Nano氣象站開源.zip》資料免費下載
    發(fā)表于 07-11 11:24 ?3次下載
    <b class='flag-5'>Arduino</b> <b class='flag-5'>Nano</b><b class='flag-5'>氣象站</b>開源

    家庭互聯(lián)網(wǎng)氣象站Dubos Air Nano 2

    電子發(fā)燒友網(wǎng)站提供《家庭互聯(lián)網(wǎng)氣象站Dubos Air Nano 2.zip》資料免費下載
    發(fā)表于 07-12 10:55 ?2次下載
    家庭<b class='flag-5'>互聯(lián)網(wǎng)</b><b class='flag-5'>氣象站</b>Dubos Air <b class='flag-5'>Nano</b> 2

    微型互聯(lián)網(wǎng)氣象站開源項目

    電子發(fā)燒友網(wǎng)站提供《微型互聯(lián)網(wǎng)氣象站開源項目.zip》資料免費下載
    發(fā)表于 10-21 10:28 ?0次下載
    <b class='flag-5'>微型</b><b class='flag-5'>互聯(lián)網(wǎng)</b><b class='flag-5'>氣象站</b>開源項目

    使用Arduino和NodeMCU的氣象站

    電子發(fā)燒友網(wǎng)站提供《使用Arduino和NodeMCU的氣象站.zip》資料免費下載
    發(fā)表于 11-04 09:13 ?1次下載
    使用<b class='flag-5'>Arduino</b>和NodeMCU的<b class='flag-5'>氣象站</b>

    Arduino氣象站項目

    電子發(fā)燒友網(wǎng)站提供《Arduino氣象站項目.zip》資料免費下載
    發(fā)表于 11-18 09:32 ?3次下載
    <b class='flag-5'>Arduino</b><b class='flag-5'>氣象站</b>項目

    Arduino聯(lián)網(wǎng)氣象站

    電子發(fā)燒友網(wǎng)站提供《Arduino聯(lián)網(wǎng)氣象站.zip》資料免費下載
    發(fā)表于 12-16 14:06 ?0次下載
    <b class='flag-5'>Arduino</b>物<b class='flag-5'>聯(lián)網(wǎng)</b><b class='flag-5'>氣象站</b>

    基于Arduino的無線氣象站

    一個 Arduino 供電的互聯(lián)網(wǎng)連接氣象站,將數(shù)據(jù)發(fā)送到地下氣象以進行存儲和查看。Arduino 氣象
    發(fā)表于 12-19 16:30 ?0次下載

    Sigfox和Arduino氣象站

    電子發(fā)燒友網(wǎng)站提供《Sigfox和Arduino氣象站.zip》資料免費下載
    發(fā)表于 12-22 16:31 ?0次下載
    Sigfox和<b class='flag-5'>Arduino</b><b class='flag-5'>氣象站</b>

    使用ArduinoIoT無線氣象站

    方案介紹使用Arduino,ESP8266和ThingSpeak的IoT無線氣象站。硬件部件樂鑫Wemos D1 Mini×?? ?1個?? ?DHT11溫濕度傳感器(4針)?? ?×?? ?1個?? ?Seeed Grove-
    發(fā)表于 12-30 15:14 ?0次下載

    使用Arduino Nano的迷你氣象站

    電子發(fā)燒友網(wǎng)站提供《使用Arduino Nano的迷你氣象站.zip》資料免費下載
    發(fā)表于 02-07 15:00 ?0次下載
    使用<b class='flag-5'>Arduino</b> <b class='flag-5'>Nano</b>的迷你<b class='flag-5'>氣象站</b>

    Arduino氣象站

    電子發(fā)燒友網(wǎng)站提供《Arduino氣象站.zip》資料免費下載
    發(fā)表于 06-20 09:52 ?1次下載
    <b class='flag-5'>Arduino</b><b class='flag-5'>氣象站</b>

    Arduino無線氣象站

    電子發(fā)燒友網(wǎng)站提供《Arduino無線氣象站.zip》資料免費下載
    發(fā)表于 06-27 14:42 ?0次下載
    <b class='flag-5'>Arduino</b>無線<b class='flag-5'>氣象站</b>