您的位置: 首頁 >游戲 >

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

2022-06-03 19:38:00 編輯:毛兒蝶 來源:
導(dǎo)讀 大家好,小科來為大家解答以上問題。利用Arduino Nano 33 IoT構(gòu)建的微型互聯(lián)網(wǎng)氣象站這個很多人還不知道,現(xiàn)在讓我們一起來看看吧!1、

大家好,小科來為大家解答以上問題。利用Arduino Nano 33 IoT構(gòu)建的微型互聯(lián)網(wǎng)氣象站這個很多人還不知道,現(xiàn)在讓我們一起來看看吧!

1、這個項目是一個簡單的氣象站,很容易建立,可以通過WiFi和Blynk連接到你的智能手機。

2、背景

3、實際上,有許多應(yīng)用程序可以讓您將智能手機連接到物聯(lián)網(wǎng)。在此期間,我嘗試了許多,但結(jié)果通常令我失望。

4、但是Blynk不是這樣的!它非常靈活,具有漂亮的用戶界面,適用于各種物聯(lián)網(wǎng)平臺,可以在Android和iPhone上運行。

5、粉絲也可以免費使用!所以這是一個比較簡單的物聯(lián)網(wǎng)項目,可以讓我和Blynk一起探索。

6、五金器具

7、這個項目的硬件相當(dāng)簡單。

8、我們使用ArduinoNano33IoT,一種將溫度、濕度和氣壓集成在一個單元中的BME280傳感器板,以及一個1英寸的有機發(fā)光二極管顯示器。

9、三個元件在3.3V電壓下都能正常工作。

10、Display是可選的——目標(biāo)是讓氣象站顯示在你的手機上。

11、然而,在處理Blynk和你的智能手機之前,我們必須首先在有機發(fā)光二極管顯示器上啟動和運行一切。

12、下圖顯示了硬件是如何互連的。

13、傳感器和顯示接口采用I2C。

14、理論上,一個I2C可以支持多個設(shè)備,但傳感器和監(jiān)視器的庫之間存在一些沖突,所以我最終得到了兩個不同的I2C端口。

15、在傳感器的模擬引腳4和5處使用正常的默認(rèn)I2C端口。

16、顯示器使用設(shè)置在數(shù)字引腳4和5的輔助I2C端口。

17、(是的,它們是相反的-SDA是數(shù)字引腳5))

18、硬件被包裝在一個小塑料盒里,正面是透明的,這樣我們可以查看內(nèi)容,同時。

19、它需要相對不受天氣影響,并且傳感器通過底部1/2”孔暴露于外部天氣,以便連接傳感器,使其位于孔中。

20、我把所有東西都放在外殼里面的膠水里,但是如果你打算在炎熱的夏天放在外面,你可能也想用環(huán)氧樹脂來代替。

21、本項目采用USB線供電。

22、它由一根開箱即用的電纜編程或供電。

23、該電纜可以在編程時連接到您的計算機,或者在用作氣象站時連接到插入式USB電源。

24、軟件

25、運行在Arduino上的軟件不僅僅是傳感器、監(jiān)視器和Blynk庫示例的混搭。

26、涉及的庫有傳感器的Adafruit_BME280_Library,顯示器的ss_oled庫,Brynk的Brynk庫。

27、這三個都可以直接從Arduino的圖書館管理器下載。

28、Blynk有許多關(guān)于如何配置硬件與其交互的例子:https://examples.brynk.cc/but它沒有將Nano33IoT列為其支持的Arduino之一。

29、但Blynk確實支持WiFiNINA,Nano33IoT和其他幾款A(yù)rduino處理器都使用wifi Nina。

30、所以添加這兩個包含就解決了這個問題:#include 《WiFiNINA.h》和# include "blynksimplemewinina.h。

31、您將在我的代碼中看到的另一個附加內(nèi)容是:#include 《avr/dtostrf.h》這是將傳感器輸出的數(shù)字轉(zhuǎn)換成適合在有機發(fā)光二極管顯示器上顯示的字符串所必需的。

32、起初,我將相同的字符串發(fā)送給Blynk,就像我發(fā)送給有機發(fā)光二極管一樣。

33、這可以很好地顯示數(shù)字,但當(dāng)我添加圖表時,它完全失敗了。

34、為了讓圖表起作用,Blynk顯然需要實際的數(shù)字。

35、注-大氣壓力通常是根據(jù)海平面修正后報告的。

36、在更高的海拔高度,大氣壓力會顯著下降,因此,要將傳感器的值校正為海平面上的等效讀數(shù),您必須在海拔每1000英尺的測量值上添加大約1英寸汞柱的值。

37、在我自己的附加代碼中,你會看到我添加了1.3來補償我自己海拔1300英尺的高度。

38、您需要更改該值以匹配您自己的身高。

39、每1000英尺1英寸汞柱只是一個粗略的估計。

40、如果你想要一個精確的修正,網(wǎng)上有表格可以為你提供精確的海拔修正。

此時,您可以設(shè)置硬件,并使用我的附加軟件在OLED顯示屏上顯示天氣數(shù)據(jù)。

42、只需在Setup中注釋掉Blynk.begin()行,即可讓氣象站自行運行。

43、(如果您不注釋掉Blink.begin(),沒有與Blynk的有效連接,則草圖將停止或掛起。

44、)在

Blynk

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

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

在擁有應(yīng)用程序后,您需要創(chuàng)建一個帳戶。

49、從那里,在應(yīng)用程序中,您創(chuàng)建一個新項目。

50、您的項目提供了一個身份驗證代碼,用于將您的硬件與您的項目鏈接。

51、你需要做的第一項工作是通過WiFi將您的硬件連接到您的Blynk項目。

52、您可以使用示例.blynk.cc上名為BlynkBlink的Blynk默認(rèn)草圖/程序來完成此操作并進行測試,它允許您打開和關(guān)閉Nano33IoT上的板載LED。

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

我們已經(jīng)討論了一些關(guān)于配置我們的軟件以使我們的Nano33IoT與Blynk一起工作的內(nèi)容。

55、如果您打開examples.blynk.cc,它默認(rèn)為ESP8266板。

56、找到#include《ESP8266WiFi.h》和#include《BlynkSimpleEsp8266.h》并將它們替換為#include《WiFiNINA.h》和#include《BlynkSimpleWiFiNINA.h用于我們的Nano33IoT板。

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

首先,檢查連接。

59、正確配置并運行BlynkBlink草圖后,打開Arduino的串行監(jiān)視器,您應(yīng)該能夠看到與Blynk云服務(wù)器的連接。

60、此時,我們可以擱置硬件,在手機上使用Blynk應(yīng)用程序。

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

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

右上角允許您進入和退出編輯項目模式。

64、中間那個做什么取決于你在哪里。

要控制我們的板載LED,我們需要在應(yīng)用程序中進入編輯模式。

67、然后您將看到一個空白屏幕。

68、如果您向左滑動,它將移到一邊以顯示小部件工具箱。

69、通過單擊選擇一個按鈕,它現(xiàn)在將出現(xiàn)在主屏幕上。

70、在此處單擊它,它將打開以進行配置。

71、將其從推送模式移至切換模式。

72、使用引腳選擇來選擇板載LED-Nano33IoT上的數(shù)字引腳13。

73、現(xiàn)在點擊確定,然后點擊右上角的圖標(biāo)退出編輯模式。

74、您的按鈕現(xiàn)在應(yīng)該控制LED。

帶有Blynk的氣象站

我們現(xiàn)在準(zhǔn)備將我們的氣象站鏈接到我們的Blynk項目。

77、打開我附加的軟件,在設(shè)置中取消注釋Blynk.begin()行,添加您的項目身份驗證代碼和WiFi憑據(jù),然后上傳到Arduino。

在手機上打開Blynk。

80、如果您按照本篇進行操作,您的按鈕仍然存在,并且應(yīng)該仍然能夠打開和關(guān)閉板載LED。

81、進入編輯模式,單擊按鈕進行配置,然后使用最底部的Delete將其刪除。

82、現(xiàn)在轉(zhuǎn)到工具箱并選擇一個標(biāo)簽值。

83、它在顯示下方的列表中。

84、返回顯示頁面,單擊標(biāo)簽值顯示進行配置。

85、單擊pin,然后選擇VirtualpinV3。

86、我們將在下一段中解釋虛擬引腳。

87、現(xiàn)在對于標(biāo)簽,它說“例如溫度”類型“溫度/pin.#/deg.F”。

88、.#告訴應(yīng)用程序顯示小數(shù)點后一位。

89、選擇大文本大小,并將刷新間隔保留為推送,文本顏色保留為綠色。

現(xiàn)在單擊確定。

91、您的標(biāo)簽值現(xiàn)在幾乎可以顯示溫度了,但它的顯示界面太窄了,我們需要慢慢選擇它-足夠慢以至于它不會重新進入配置模式。

92、標(biāo)簽的輪廓將亮起。

93、現(xiàn)在可以拉伸它以顯示整行。

94、它也可以四處移動,盡管我們不會在這里這樣做。

95、將其拉伸到屏幕上大約3/4的位置。

96、然后退出編輯模式,您應(yīng)該會看到手機上顯示的溫度。

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

Blynk使用了一個有點獨特的功能,稱為虛擬引腳。

99、顯示值小部件可以設(shè)置為讀取我們處理器上的模擬引腳,或設(shè)置為讀取數(shù)字引腳是高電平還是低電平。

100、但更多時候,我們想要顯示變量的內(nèi)容。

101、我們通過為該變量分配一個虛擬引腳號來做到這一點,從那時起,Blynk應(yīng)用程序?qū)⑼ㄟ^它的虛擬引腳號引用該變量。

102、因此,在我的軟件中,您將看到我將華氏溫度分配給虛擬引腳V3的位置。

另一個值得一提的Blynk想法是我們在Push模式下留下的RefreshInterval。

104、這意味著Arduino草圖正在持續(xù)輸出數(shù)據(jù),在我們的例子中,每分鐘更新一次溫度、濕度和氣壓。

105、但Blynk也支持Pull方法,其中Blynk應(yīng)用程序設(shè)置間隔并詢問硬件以獲取新數(shù)據(jù)。

所以現(xiàn)在讓我們完成在Blynk上顯示我們的氣象站。

107、您將需要另外兩個標(biāo)簽值顯示,一個用于濕度百分比(虛擬引腳V4),另一個用于“英寸汞柱”或英寸汞柱(虛擬引腳V5)的壓力。

108、對于濕度,我顯示小數(shù)點后一位;對于壓力,我顯示了小數(shù)點后兩位。

如果您現(xiàn)在有顯示溫度、濕度和氣壓的三個標(biāo)簽值顯示,您可以添加所有三個的圖表。

110、這是通過添加SuperChart小部件來完成的。

111、首先,將其向下拉伸,使其充滿屏幕的其余部分。

112、然后點擊它進行配置。

113、我打開了顯示x軸值,并選擇了實時分辨率、1小時、6小時、1天、1周、1個月。

114、和3個月。

115、我們需要三個數(shù)據(jù)流——一個用于我們的3個變量中的每一個。

116、要配置每個數(shù)據(jù)流,請單擊其右側(cè)的圖標(biāo)。

117、我們需要再次為每個選擇虛擬引腳。

118、對于y軸縮放,選擇高度。

119、然后對于溫度,將高度設(shè)置為67-100。

120、對于濕度,將高度設(shè)置為34-66。

121、對于壓力,將高度設(shè)置為0-33。

122、設(shè)置顏色以匹配標(biāo)記值。

123、打開顯示Y軸。

124、就是這樣。

125、退出編輯模式,你的手機顯示應(yīng)該和我的一樣。

126、圖表需要一點時間才能開始。

127、要獲得快速結(jié)果,請查看實時或1小時分辨率。

您可能想了解的Blynk的另一項功能是與其他智能手機共享您完成的Blynk項目,以便不止一部手機可以查看氣象站。

129、要啟動共享,請將您的項目置于編輯模式,然后單擊項目設(shè)置的頂部中間圖標(biāo)。

130、打開共享,然后生成一個鏈接。

131、它會給你一個二維碼,你可以通過電子郵件發(fā)送或以其他方式分享。

132、新用戶需要Blynk應(yīng)用程序,但不需要Blynk上的帳戶。

133、未注冊用戶的應(yīng)用程序有一個鏈接,用于加載另一個人的Blynk項目的二維碼。

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

本文到此結(jié)束,希望對大家有所幫助。


免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請聯(lián)系刪除!

精彩推薦

圖文推薦

點擊排行

2016-2022 All Rights Reserved.平安財經(jīng)網(wǎng).復(fù)制必究 聯(lián)系QQ280 715 8082   備案號:閩ICP備19027007號-6

本站除標(biāo)明“本站原創(chuàng)”外所有信息均轉(zhuǎn)載自互聯(lián)網(wǎng) 版權(quán)歸原作者所有。