文章

目前顯示的是 三月, 2017的文章

[心得] nodeMCU 開發語言

圖片
從一開始以為 nodeMCU 要用 Lua 開發,到後來發現 arduino IDE 也能開發。
從一開始以為 nodeMCU 要先燒 firmware,到剛剛試用 arduino 才發現 arduino 沒有這步驟。
從一開始用 ESPlorer IDE 覺得介面很難懂,到剛剛試用 arduino IDE 才發現原來 arduino IDE 進步到支持中文介面,而且字型挺耐看的。

以下是我現在所認知的 nodeMCU 兩種開發模式(有錯的話,還請指教)

IDE 不用Lua 或 C++ 語言來分優劣勢的話,還是 arduino IDE 美觀的多。 函式庫的支持度來說,我想 arduino 更勝一籌。 執行效率不用說, script language 居於劣勢,C++ develop 勝。 開發時的方便性,當然是 Lua 的好,直接上傳檔案到開發版就好了,馬上就可以看到結果。
我想下一個專案就用 arduino IDE 開發吧!

nodemcu 開發篇(三) - 畫面

圖片
來看看 Line 收到訊息的畫面
落落長,不過也就兩種訊息,一個是開發版接上電源並且連上wifi後,會自動發送的初始化訊息,訊息內容展示 IP 位置,可以透過瀏覽器連上此位置做開發版設定,當然初始化訊息是可以客製的,等會會展示設定的頁面。

另一個訊息是當開關被觸發時,發送出來的訊息,罐頭訊息一多起來,連最後一點美感都蕩然無存了,有人有好想法美化罐頭訊息嗎?歡迎跟我分享。

接下來就是設定頁面的展示
首頁
Sensor Behavior 設定門窗開關感測器的行為AP Configuration 開發版到一個新的wifi環境時,提供 AP 功能用以設定 wifi 環境使用的 SSID、Password、IP 位置WIFI Configuration 設定接上電源後連接的 wifi 帳號密碼Line Notification 設定要通知的 Line ID、客製化訊息內容Chart Display 記得前面一篇架構圖裡有畫到 firebase 的部份嗎?運用資料然後透過 HighChart 做資料的展示About 就是關於我啦!
Sensor Behavior

Name 這個裝置的名字,放在大門口所以叫做 Front Door,可以視放置位置命名,用來辨識哪個裝置發出的訊息Trigger 門窗開關感測器觸發動作可以有關閉時觸發或是打開時觸發Power Save 省電設定,裝置作用的過程,最耗電的就是wifi連線,為了省電,可以設定每次觸發Line通知後,隨即斷開wifi。
但是一旦開啟之後會有兩個問題:一是因為沒有一直連接wifi,所以無法使用頁面設定的功能,如果有設定的需求,必須重啟電源,設計在電源接上的初始階段,會連著wifi,此時就可以使用頁面設定功能。 二是當開關被觸發時,無法隨即送出訊息,必須重新連上wifi再發送訊息,測試會有1~5秒不等的延遲,視當時的網路狀況而定。 Sensitivity 觸發幾次才發送訊息,最左邊的High表示觸發1次就發送訊息Reset Timer 設定觸發過後一段時間內,不再觸發,以免過多重複訊息的發送,影響體驗(原本在家使用,設定10秒,但是開關門還是各被觸發一次,因為開門之後會摸來摸去,就超過10秒了)AP Configuration
WIFI SSID  設定移到新 wifi 環境時,充當AP Server 的 SSID
預設是 Peepe…

nodemcu 開發篇(二) - 架構

圖片
實地操作的影片,等我有時間再弄。

架構圖如下
上圖關於設定感應器的部份,是直接透過 nodemcu AP mode 處理 http request。 初次使用時,尚未設定 wifi 連線,可以透過預設的 SSID、Password 連上開發版,透過瀏覽器指向固定IP 192.168.26.1 即可設定 wifi 連線及其他客製化設定。
事後檢討了這個架構,當物聯網裝置變多的時候,要逐台設定也是很累人的事情,尤其常常一個小功能就一個開發版,應該像小米智能家庭一樣,開發版要直接向 Server 註冊,並開放設定的 API,使用者可以透過雲端主機全面設定所有物聯網裝置,由主機向各個裝置發送相關設定。 當然還是存在初次設定wifi的問題,那就看騰訊的 airkiss 是不是能搶佔開發版連接wifi station 的協定囉,畢竟這塊 nodeMCU 有支援 airkiss。 而小米的智能家庭設備能透過手機app設定同一個區網設備的wifi,操作上很自然,小米跟騰訊兩家初始產品不同的公司,也紛紛在搶佔物聯網這塊大餅呀!

nodemcu 開發篇(一) - 血淚史

圖片
一開始就寫血淚史會不會讓人覺得很挫敗?

只是想在開發之前把需要注意的,會用到的一次寫完而已。

1. IDE 是使用 ESPlorer,firmware 是透過 Cloud Build Service 產生的。
記住接下來說的兩點 (血淚點)

    a. 執行 ESPlorer 時,要用root 執行,不然會選不到裝置
        ex: sudo java -jar ESPlorer.jar

    b. baud rate 只能選 115200