連線86Duino的方法 – ESP8266 AP連線


Wifi 模組 ESP8266 – AP 模式

86Duino 在無線 Wifi 連線方面採用 ESP8266 模組的 AP 模式,AP 模式是將 ESP8266 模組變更為無線基地台,可以自主發出 Wifi 訊號提供電腦 Wifi 連線,如此一來只要電腦具有 Wifi 功能(內建或是使用 USB 無線網路卡),86Scratch 就可以透過 Wifi 與 86Duino 連線,不需要考慮現場是否有免費 Wifi 可用。

下圖是一顆 ESP8266 EP-01 的外觀圖,可順便看到它的引腳功能 :

我們可以透過杜邦線與排針來連接 ESP8266 和 86Duino,這裡以 86Duino ZERO 為例,首先確認 86Duino ZERO 的 USB電源與外部電源輸入接口都是沒有接線的狀態 :

準備 5 條 2.54mm 杜邦線與 5 根 2.54mm 排針,並連接以下 10 個腳位 :

  • 86Duino ONE 的 3.3V 連接 ESP8266 的 VCC (下圖中的紅線)
  • 86Duino ONE 的 GND 連接 ESP8266 的 GND (下圖中的黑線)
  • 86Duino ONE 的 RX1 連接 ESP8266 的 TXD (下圖中的綠線)
  • 86Duino ONE 的 TX1 連接 ESP8266 的 RXD (下圖中的黃線)
  • 86Duino ONE 的 3.3V 連接 ESP8266 的 CH_PD (下圖中的紅線)

CH_PD 是 Chip Power Down 的意思,ESP8266 的 CH_PD 腳位必須接到高電位 (3.3V),ESP8266 才會正常運作,接地 (GND) 則會進入省電模式 (Power Down) 並關閉 Wifi,所以這裡我們將 CH_PD 直接連接到 3.3V 即可。

86Duino ZERO 接線示意圖 :

若將 86Duino ZERO 換成 86Duino ONE 或是 86Duino EduCake ,只要依照上述步驟,一樣可以連接HC-06,差別只在於腳位的位置不同而已。

86Duino ONE 接線示意圖 :

86Duino EduCake 接線示意圖 :

接線完成後,請接上 USB 電源確認 ESP8266 模組是否正常供電 (如下圖亮起紅色電源燈)。


ESP8266 AP 連線設置

開啟 86Scratch 之後,請點擊 “載入教案” 進入選擇教案的畫面 :

在選擇教案的畫面中可以看到有 4 個教案可供選擇,滑鼠移動到不同教案上就會出現關於該教案的說明,在這邊請選擇 “S2A.86強化型態” 教案,並點擊 “準備連線” 進入下一步 :

出現連線設置視窗之後,如果上一次連線 86Duino 不是使用 ESP8266 AP 連線或是第一次連線 86Duino,請勾選 “自動燒錄韌體” 並選擇 86Duino ZERO 的 ESP8266 AP 連線韌體,由於電腦尚未連線 ESP8266 的無線基地台,所以在這邊只單純燒錄韌體,連線方式請先選擇 “不開啟Scratch” :

設定完成後點擊 “開始!” 就會開始燒錄韌體 :

燒錄韌體完成後會回到載入教案的畫面 :

這時 ESP8266 已被剛剛燒錄的韌體設定成 WiFi AP 模式,點擊 Windows 工作列中的網際網路存取,我們會看到名為 “86Duino_ESP8266” 發出的無線 Wifi 可供連線使用 :

Windows 7:

Windows 8/10:

輸入韌體中預設的網路安全金鑰 “1234567890”,然後再點擊 “確定” (Windows 7) 或 “下一步” (Windows 8/10) :

Windows 7:

Windows 8/10:

此時 Windows 電腦會開始連線到 ESP8266 的 AP。

在 Windows 連線 86Duino_ESP8266 成功之後,請再選擇 “S2A.86強化型態” 教案,並點擊 “準備連線” 進入連線設置視窗 :

進入連線設置視窗後,請選擇 “ESP8266 AP” 連線 (不需要再燒錄韌體) :

86Scratch 開始以 Wifi 連線到 86Duino ZERO :

過程中,86Scratch 會嘗試和 86Duino 連線,您可以看到畫面左邊的 86Scratch 喵和右邊的 86 菌正用一副對話筒對話,當看到下面這個對話畫面時,代表連線快成功了 :

此時 86Scratch 會自動幫我們開啟電腦上的 Scratch 2.0 (也會同時載入 S2A 強化形態的 86Duino 積木) :

點擊 “更多積木”,可以找到 “S2A‧86強化型態” 的積木,而在積木旁邊有一個燈號,一般狀態下是紅燈,當 86Scratch 順利把積木和 86Duino 連線後,燈號就會從紅燈變成綠燈 :

當燈號變成綠燈,切回 86Scratch 的視窗會看到以下畫面 :

現在已經連線成功,可以開始寫程式了!!


智能盆栽澆水寶

栽寶 ZaiBo 是一個應用無線 Wifi 執行遠端監控植物澆水情形的開源專案,在 GitHub 上有開源的原始碼可供參考,在專案中是將 Lubuntu (linux OS) 安裝在 Micro SD 卡中,做為 86Duino ZERO 的開機磁碟,透過栽寶 ZaiBo 的 APP 在 Lubuntu 中執行即時監控盆栽環境與自動澆水的功能 :

栽寶 APP 在 Lubuntu 中架設網站,讓使用者可以透過 Wifi 連線遠端監控盆栽環境。

只靠 86Scratch 是否也能實現簡易的 IOT 自動澆水系統呢? 當然可以!! 以讀取濕度判斷是否控制馬達抽水的功能為例,我們只需要具備簡易版的栽寶硬體元件即可 :

栽寶內的 86Duino 一樣是使用 86Duino ZERO,因此只需依照之前 ESP8266 AP 連線的步驟,就可以讓 86Scratch 連線栽寶內的 86Duino ZERO :

連線成功之後,就讓我們開始編程 86Duino IOT 自動澆水系統吧!!

1. 建立變數 “濕度” 儲存讀取到的濕度 :

2. 金屬探測棒感測到的濕度可以透過讀取類比腳位 0 來獲得,所以必須啟用類比腳位 0 為輸入,並且在 Scratch 2.0 舞台上顯示變數 “濕度” :

3. 不斷重複讀取類比腳位 0 來獲得濕度資訊,讀取類比腳位 0 的結果乘上 100 再除以 1024 就是濕度的百分比 :

4. 嘗試啟動抽水馬達維持 1 秒 :

5. 加入濕度判斷機制 :

6. 把啟動抽水馬達 1 秒鐘的動作放進濕度判斷機制,如果濕度低於目標 (70) 就執行澆水 :

7. 原本 86Duino IOT 自動澆水系統到這邊應該就已經完成了,但是在執行完澆水動作後土壤的溼度不可能立刻變化,導致澆水動作會連續執行 2 次甚至 3~4 次以上 (受土壤差異影響),為了解決這個問題,先試著在澆完水後等待 10 秒鐘 :

8. 在澆完水後等待 10 秒鐘固然解決了連續澆水的問題,但是這樣 Scratch喵 在澆完水後都會有 10 秒鐘的停止時間,感覺不太動感? 為了讓 Scratch喵 動感十足又不會連續過度澆水,我們將系統修改成有 2 個動作週期,監控土壤溼度 1 秒執行一次,判斷是否澆水則是 10 秒執行一次 :

完成上述的積木程式之後,Scratch喵 就可以開始當個盆栽管理員了。


86Scratch Home

The text of the 86Duino reference is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.