2017年9月13日 星期三

*3*nRF24L01+*3* 初遇 Blynk - 建立從 nRF24L01+ 到 ESP8266 再到 Blynk 的 SHT31 單點無線溫溼度傳輸物聯網


 網頁最後修改時間:2017/09/13

經過前面幾篇關於 nRF24L01+  的網頁的介紹,相信讀者對於 nRF24L01+ 基本的資料傳送與接收有了一定程度的了解。再者,番外篇也特別以範例介紹了 Arduino 開發板和 ESP8266 無線網路模組利用 AT 指令連線的過程,最後以 Blynk 手機 app 的一個 Project 範例作為結束,展示了兩個無線裝置之間的遠端數據如何進行通訊。

我們最終的目的:就是要利用 nRF24L01+ 構建無線溫溼度節點群組 (sensor nodes),群組中的主節點負責接收其他節點的溫溼度數據,利用有線或無線網路 (ESP8266, WiFi Shield ... etc ) 的方式向伺服器 (例如 Blynk Server 、ThingSpeak ... etc ) 傳送並儲存數據,能夠在手機隨時監控與查詢各節點的溫溼度。

在這篇,將完成單點溫溼度無線傳輸與數據上傳 Blynk Server 的部分。與之前討論不同的是:發射端加入休眠功能,不傳送的時後,nRF24L01+ 與 Arduino Nano 進入 Power Down 休眠模式節省電力;接收端的整合型 LCD 增加一個可處理儲存於 Flash 字串的顯示函式,並且修改程式以解決 Blynk Arduino 函式庫記憶體需求的問題。

2017年9月2日 星期六

初遇 Blynk ( 物聯網手機 APP ) - 如何使用 Arduino 和 AT 韌體 ( Ai-Mod, AT v1.2.0.0 based on SDK v1.5.4.1 ) 的 ESP8266 (ESP-01, ESP-01S) 連上 Blynk 伺服器和儲存數據 {*2_1*nRF24L01+*2_1*}

網頁最後修改時間:2017/09/02

之前有網友詢問關於 ESP8266, ESP-01 使用 AT 指令方式連不上 Blynk 伺服器的問題,當時我的直覺認為不是 AT 韌體版本的問題,就是通訊速率的關係,所以就這樣回了!不過,最後他也沒嘗試成功,只好使用建議的 Standalone 的方式再試試;但是,我還是不知道他最後成功了沒有 ?

剛好!這篇網頁的前一篇 (*2*nRF24L01+*2* SHT31 單點無線溫溼度傳輸) 的最後提及到 :"之後會需要將收到的溫溼度值上傳到雲端去,希望能利用手機來監控與查詢"。也因為這樣,所以寫了 *2*nRF24L01+*2* 的番外篇,順便來初遇認識一下 Blynk;怎麼使用 Arduino Blynk 函式庫控制 ESP8266 的 AT 指令連線 Blynk Server,以其作為中介與 Blynk app 做雙向溝通。

2017年8月28日 星期一

*2*nRF24L01+*2* SHT31 單點無線溫溼度傳輸

網頁最後修改時間:2017/08/29 

在之前的兩篇 0, 1 的網頁,已經針對選擇哪一個頻道做為通訊,以及傳送端與接收端選擇何種天線的 nRF24L01+ 無線模組做過說明。有了這些資訊之後,接下來就是開始無線通訊的部分,這篇先由單點無線通訊開始。

2017年8月21日 星期一

*1*nRF24L01+*1* 如何提高 nRF24L01+ 無線模組的傳輸距離與穿牆效果? 加碼:不同天線形式的穿牆測試

網頁最後修改時間:2017/08/21

nRF24L01+ 板載天線的無線模組在空曠處無遮蔽的情況之下,距離可達上百公尺!但是在隔著木板牆甚至是水泥牆時,傳輸距離就會大打折扣!因此在參考其他網路上的建議,加上了兩支平行的天線,來提高傳輸距離並且提高穿牆效果;由於這些資料原網站都有,我在這邊只做必要的照片重拍與解釋的動作,測試的程式直接沿用。

在這篇網頁,我們的重點是:
  • 樓層與樓層之間,前面與後面都相隔幾堵(水泥)牆 (公寓則是都在同一層,應該牆壁少,所以影響會比較小),對於無線模組的影響有多少?
  • 傳輸成功率變為多少 ? 
  • 這些修改過的無線模組能夠幫我穿多少牆?
  • 是否能夠在建立多節點 (Nodes) 無線感測器網路時可用來減少 PA+LNA 無線模組的使用 ?
雖然可以全部都選用高功率的無線模組來用,但這只是增加點到點的距離而已,並無法解決接收的模組超過六個、點到點的距離超過限制的問題!

所以,在更進一步討論這問題之前,測試是必須的 !

2017年8月15日 星期二

*0*nRF24L01+*0* Arduino 二點四GHz 訊號掃描器

網頁最後修改時間:2017/08/15 

藍牙、WiFi、ZieBee、手機、麥克風,甚至是微波爐  ... 等裝置 ( NI 國家儀器:2.4 GHz 的廚房裡有太多廚師想大展身手 ),都會使用到 2.4GHz 頻率。簡單 DIY 個 2.4 GHz 訊號掃描器,能夠在掃描器掃描的範圍內,看到選定頻率頻道訊號強弱的分布,藉此來得知哪些頻率頻道正在被使用 ? 或是還有哪些頻率頻道可以被使用 ?

為了測試掃描器是否能正常動作,藉由切換無線路由器的無線頻道可以很方便的檢驗,並且更換使用外接天線的無線模組進行接收靈敏度的測試。雖然它不是一個非常高檔的 2.4G 訊號掃描器,但是為了之後要查詢還有哪些 2.4GHz ISM 頻段可以做為通訊來說,夠用了 !

2017年8月11日 星期五

*0*RTC(即時時鐘)模組*0* 如何更新 DS3231 RTC 模組的時間與大型數字時鐘製作

網頁最後修改時間:2017/08/11 

RTC ( Real-Time Clock, 即時時鐘) 常用於需要提供時間戳記的應用上,在一些不易取得市電供應且耗電要求低的地方,就會需要這樣的一個可用鈕扣電池驅動的 RTC 模組提供時間紀錄,只要根據實際需要選擇年、日/月、(12/24格式)小時:分鐘和秒並加以組建,就是一條時間戳記。

而在這篇網頁中,DS3231 (+AT24C32, 32KBytes EEPROM) RTC 模組會在程式編譯上傳的同時被更新年份、日期和時間,配合整合型 LCD (I2C模式) 和大型數字顯示方式,分別在 LCD 上以四個不同頁面分別以年、日/月、(12/24格式)小時:分鐘和完整格式的方式顯示,藉由這種方式讓使用者了解 RTC 模組的基本使用方法,請看影片

當然,DS3231 RTC 模組不只是一個時鐘而已,還有可程式的方波輸出功能、兩組日曆鬧鐘可以設定和內建精度 ±3°C 的數位溫度感測器可以使用,另外此模組也外掛了一顆 32KBytes 的 EEPROM 晶片可用來儲存資料,有用到時千萬別忘了 !

相關更詳細的資料請參閱晶片手冊 (或賣場的附件資料),或上網搜尋!

2017年3月2日 星期四

[公告] 請 2017-03-15 後,回報部落格連結資料遺失的問題,謝謝!

網頁最後修改時間:2017/03/02 

相信有 Dropbox 的使用者最近應該都收到過 Dropbox 的公開資料夾將成為私人資料夾的通知,因為期限 (2017-03-15) 快到了,屆時需要再重新開啟這些資料夾變成公用才能再次被使用 !

部落格上面有許多資料、檔案和工具...等等,都是使用 Dropbox 來存放,因此在 2017-03-15 後相關的檔案就變成私用而不能被存取,因為檔案分布廣泛,要全部做修改也難免有漏網之魚,故特此公告 !
如果有檔案或是連結資料遺失的話,請回報給部落格做修正,修正的結果將會回覆到相對應的"問與答" 之中 !
感謝 !

2017年1月2日 星期一

{有獎徵答,獎品:ESP8266雲端開發板} 給我一個可操作 AT 指令的 Arduino 函式庫 - 解決 AT 指令處理的蛋疼問題 (親測 Ai-Mod, AT v1.2.0.0 based on SDK v1.5.4.1 韌體)

網頁最後修改時間:2017/01/03  
AT 指令函式庫範例輸出畫面
接續上一篇 "自行更新 ESP8266 無線模組韌體至 - AT:1.2.0.0, SDK:1.5.4.1" 最後面談論到的,關於 AT 指令 Arduino 函式庫的問題。這一篇將就我實際使用與測試的結果,給出一個可用於上一篇網頁所升級的 AT 韌體的 Arduino 函式庫,最後使用該函式庫的範例程式進行實際測試得出所要的結果 !

如果你 (妳) 一直糾結於 ESP8266 AT 指令在 Arduino 使用上的便利性,又或是為了教學上的需求一定要用 AT 指令!那麼在熟悉 AT 指令操作之後的同時,一個將 AT 指令封裝成函式的函式庫,就是接下來撰寫無線通訊程式和  AT 指令初學者進階學習的一個最佳的選擇 !