該項目是一個易于構建的簡單氣象站,可通過WiFi和Blynk連接到您的智能手機。
背景
實際上,有很多應用程序可以讓您將智能手機連接到物聯網,在此期間我嘗試了很多,不過帶來的結果通常都讓我很失望。但Blynk不是這樣!它非常靈活,擁有漂亮的用戶界面,適用于各種物聯網平臺,并且可以在Android和iPhone上運行。愛好者也可以免費使用!所以這是一個相對簡單的物聯網項目,讓我可以使用Blynk進行探索。
硬件
這個項目的硬件相當簡單。我們使用ArduinoNano33IoT、一個將溫度、濕度和氣壓全部集成在一個單元中的BME280傳感器板,以及一個1英寸的OLED顯示屏。這三個部件都在3.3V電壓下運行良好。
顯示方面是可選的-目標是讓氣象站顯示在您的手機上。但是,在處理Blynk和您的智能手機之前,我們首先得讓OLED顯示屏上啟動和運行所有內容。
下面的示意圖顯示了硬件是如何互連的。傳感器和顯示接口均采用I2C。理論上,一個I2C可以支持多個設備,但是傳感器和顯示器的庫有一些沖突,所以我最終得到了兩個不同的I2C端口。傳感器在模擬引腳4和5處使用正常的默認I2C端口。顯示器使用在數字引腳4和5處設置的輔助I2C端口。(是的,它們是相反的-SDA是數字引腳5))
硬件封裝在一個前面清晰的小塑料外殼中,以便我們可以查看內容,同時。它需要相對防風雨,傳感器通過底部的1/2“孔暴露在外部天氣中,使傳感器的連接使其正好位于該孔內。我將所有東西都安裝在外殼內膠水,但如果你打算在夏天炎熱的時候把它放在外面,你可能還想用環氧樹脂代替。
該項目通過USB電纜供電。它通過開箱即用的單根電纜進行編程或供電。該電纜可以在編程時連接到您的計算機,或者在用作氣象站時連接到插入式USB電源。
軟件
在Arduino上運行的軟件不僅僅是傳感器、顯示器和Blynk庫示例的混搭。涉及的庫還有傳感器的Adafruit_BME280_Library、顯示器的ss_oled庫和Blynk的Blynk庫。這三個都可以直接從Arduino的庫管理器下載。
Blynk有很多關于如何配置硬件以與其交互的示例:https://examples.blynk.cc/但它沒有將Nano33IoT列為其支持的Arduino之一。但Blynk確實支持WiFiNINA,它被Nano33IoT和其他幾個Arduino處理器使用。所以添加這兩個包含解決了這個問題:#include《WiFiNINA.h》和#include《BlynkSimpleWiFiNINA.h
您將在我的代碼中看到的另一項添加是:#include《avr/dtostrf.h》這是將傳感器輸出的數字轉換為適合在OLED顯示屏上顯示的字符串所必需的。起初,我向Blynk發送了與我發送到OLED相同的字符串。這可以很好地顯示數字,但是當我添加圖表時完全失敗了。為了讓圖表發揮作用,Blynk顯然需要實際的數字。
注意-大氣壓力通常報告為校正到海平面。在較高海拔處,大氣壓力明顯下降,因此要將傳感器的值校正為海平面上的等效讀數,您必須在每1000英尺海拔的測量值中添加一個大約1英寸汞柱的值。在我自己的附加代碼中,你會看到我添加了1.3來補償我自己海拔1300英尺的高度。您將需要更改此值以匹配您自己的高度。每1000英尺1英寸汞柱只是一個粗略的估計。如果你想要一個精確的修正,網上有表格可以為你提供精確的海拔修正。
此時,您可以設置硬件,并使用我的附加軟件在OLED顯示屏上顯示天氣數據。只需在Setup中注釋掉Blynk.begin()行,即可讓氣象站自行運行。(如果您不注釋掉Blink.begin(),沒有與Blynk的有效連接,則草圖將停止或掛起。)在
Blynk
Blynk很容易安裝在你的iPhone或Android上,并附帶詳細的文檔:http://docs.blynk.cc/但是那里有太多的信息和太多的選項,一開始我發現文檔有點混亂,所以我會在這里提供我自己的如何開始使用Blynk的版本。
我在iPhone上使用了Blynk,但我認為與Android的使用情況非常相似,您可以按照我的說明使用其中任意一個。
在擁有應用程序后,您需要創建一個帳戶。從那里,在應用程序中,您創建一個新項目。您的項目提供了一個身份驗證代碼,用于將您的硬件與您的項目鏈接。你需要做的第一項工作是通過WiFi將您的硬件連接到您的Blynk項目。您可以使用示例.blynk.cc上名為BlynkBlink的Blynk默認草圖/程序來完成此操作并進行測試,它允許您打開和關閉Nano33IoT上的板載LED。
但我的建議是,在嘗試讓氣象站與Blynk合作之前,先嘗試一下并讓它工作。
我們已經討論了一些關于配置我們的軟件以使我們的Nano33IoT與Blynk一起工作的內容。如果您打開examples.blynk.cc,它默認為ESP8266板。找到#include《ESP8266WiFi.h》和#include《BlynkSimpleEsp8266.h》并將它們替換為#include《WiFiNINA.h》和#include《BlynkSimpleWiFiNINA.h用于我們的Nano33IoT板。
除了為Nano33IoT添加WiFiNINA支持外,正如我們已經討論過的,您需要添加WiFi憑據和Blynk項目的身份驗證代碼。
首先,檢查連接。正確配置并運行BlynkBlink草圖后,打開Arduino的串行監視器,您應該能夠看到與Blynk云服務器的連接。此時,我們可以擱置硬件,在手機上使用Blynk應用程序。
我發現Blynk應用程序的界面有些混亂:
左上角的圖標允許您在項目之間進行選擇,也可以注銷您的帳戶;
右上角允許您進入和退出編輯項目模式。中間那個做什么取決于你在哪里。
要控制我們的板載LED,我們需要在應用程序中進入編輯模式。然后您將看到一個空白屏幕。如果您向左滑動,它將移到一邊以顯示小部件工具箱。通過單擊選擇一個按鈕,它現在將出現在主屏幕上。在此處單擊它,它將打開以進行配置。將其從推送模式移至切換模式。使用引腳選擇來選擇板載LED-Nano33IoT上的數字引腳13。現在點擊確定,然后點擊右上角的圖標退出編輯模式。您的按鈕現在應該控制LED。
帶有Blynk的氣象站
我們現在準備將我們的氣象站鏈接到我們的Blynk項目。打開我附加的軟件,在設置中取消注釋Blynk.begin()行,添加您的項目身份驗證代碼和WiFi憑據,然后上傳到Arduino。
在手機上打開Blynk。如果您按照本篇進行操作,您的按鈕仍然存在,并且應該仍然能夠打開和關閉板載LED。進入編輯模式,單擊按鈕進行配置,然后使用最底部的Delete將其刪除。現在轉到工具箱并選擇一個標簽值。它在顯示下方的列表中。返回顯示頁面,單擊標簽值顯示進行配置。單擊pin,然后選擇VirtualpinV3。我們將在下一段中解釋虛擬引腳。現在對于標簽,它說“例如溫度”類型“溫度/pin.#/deg.F”。.#告訴應用程序顯示小數點后一位。選擇大文本大小,并將刷新間隔保留為推送,文本顏色保留為綠色。
現在單擊確定。您的標簽值現在幾乎可以顯示溫度了,但它的顯示界面太窄了,我們需要慢慢選擇它-足夠慢以至于它不會重新進入配置模式。標簽的輪廓將亮起。現在可以拉伸它以顯示整行。它也可以四處移動,盡管我們不會在這里這樣做。將其拉伸到屏幕上大約3/4的位置。然后退出編輯模式,您應該會看到手機上顯示的溫度。
在我們完成配置Blynk之前,有必要解釋一下我們剛剛在設置溫度顯示時看到的一些事情。
Blynk使用了一個有點獨特的功能,稱為虛擬引腳。顯示值小部件可以設置為讀取我們處理器上的模擬引腳,或設置為讀取數字引腳是高電平還是低電平。但更多時候,我們想要顯示變量的內容。我們通過為該變量分配一個虛擬引腳號來做到這一點,從那時起,Blynk應用程序將通過它的虛擬引腳號引用該變量。因此,在我的軟件中,您將看到我將華氏溫度分配給虛擬引腳V3的位置。
另一個值得一提的Blynk想法是我們在Push模式下留下的RefreshInterval。這意味著Arduino草圖正在持續輸出數據,在我們的例子中,每分鐘更新一次溫度、濕度和氣壓。但Blynk也支持Pull方法,其中Blynk應用程序設置間隔并詢問硬件以獲取新數據。
所以現在讓我們完成在Blynk上顯示我們的氣象站。您將需要另外兩個標簽值顯示,一個用于濕度百分比(虛擬引腳V4),另一個用于“英寸汞柱”或英寸汞柱(虛擬引腳V5)的壓力。對于濕度,我顯示小數點后一位;對于壓力,我顯示了小數點后兩位。
如果您現在有顯示溫度、濕度和氣壓的三個標簽值顯示,您可以添加所有三個的圖表。這是通過添加SuperChart小部件來完成的。首先,將其向下拉伸,使其充滿屏幕的其余部分。然后點擊它進行配置。我打開了顯示x軸值,并選擇了實時分辨率、1小時、6小時、1天、1周、1個月。和3個月。我們需要三個數據流——一個用于我們的3個變量中的每一個。要配置每個數據流,請單擊其右側的圖標。我們需要再次為每個選擇虛擬引腳。對于y軸縮放,選擇高度。然后對于溫度,將高度設置為67-100。對于濕度,將高度設置為34-66。對于壓力,將高度設置為0-33。設置顏色以匹配標記值。打開顯示Y軸。就是這樣。退出編輯模式,你的手機顯示應該和我的一樣。圖表需要一點時間才能開始。要獲得快速結果,請查看實時或1小時分辨率。
您可能想了解的Blynk的另一項功能是與其他智能手機共享您完成的Blynk項目,以便不止一部手機可以查看氣象站。要啟動共享,請將您的項目置于編輯模式,然后單擊項目設置的頂部中間圖標。打開共享,然后生成一個鏈接。它會給你一個二維碼,你可以通過電子郵件發送或以其他方式分享。新用戶需要Blynk應用程序,但不需要Blynk上的帳戶。未注冊用戶的應用程序有一個鏈接,用于加載另一個人的Blynk項目的二維碼。
這是對Blynk的一個非常有限的介紹,但應該會帶給你一個很好的使用起點。
-
智能手機
+關注
關注
66文章
18549瀏覽量
181038 -
Arduino
+關注
關注
188文章
6477瀏覽量
187806 -
氣象站
+關注
關注
1文章
759瀏覽量
15749
發布評論請先 登錄
相關推薦
評論