ESP8266  === esp8266.mlwmlw.org AP 帳號密碼 TP-LINK/1234567890 投影片:[](https://speakerdeck.com/mlwmlw/esp8266-workshop/)https://speakerdeck.com/mlwmlw/esp8266-workshop/ 範例程式碼: [](https://github.com/mlwmlw/esp8266-workshop)https://github.com/mlwmlw/esp8266-workshop nodemcu 64Bit  flasher [](https://github.com/nodemcu/nodemcu-flasher/tree/master/Win64/Release)https://github.com/nodemcu/nodemcu-flasher/tree/master/Win64/Release nodemcu 32bit flasher [](https://github.com/nodemcu/nodemcu-flasher/tree/master/Win32/Release)[https://github.com/nodemcu/nodemcu-flasher/tree/master/Win](https://github.com/nodemcu/nodemcu-flasher/tree/master/Win64/Release)[3](https://github.com/nodemcu/nodemcu-flasher/tree/master/Win/Release)2[/Release](https://github.com/nodemcu/nodemcu-flasher/tree/master/Win64/Release) WeeESP8266 library [](https://github.com/itead/ITEADLIB_Arduino_WeeESP8266/archive/master.zip)https://github.com/itead/ITEADLIB_Arduino_WeeESP8266/archive/master.zip 教室環境 === * 一台可組態的 AP 供大家的 ESP8266 連線 * [如何讓實習的 PC 跟 ESP 連線?](http://www.tp-link.us/faq-417.html) 個人材料([淘寶店家](https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-10831283312.9.kfDP7o&id=17784510350)) === * 麵包板 x 1 * Arduino:[uno r3 非官方](http://tw.taobao.com/item/41889698772.htm?fromSite=main&spm=a1z10.3-c.w4002-10831283312.12.OLtOmw) * ESP8266  * [ESP01](http://tw.taobao.com/item/40511001950.htm?fromSite=main&spm=a1z10.3-c.w4002-10831283312.9.vWkOFj)<s>(1024KB flash 可跑最新韌體) </s> * [ESP201](http://tw.taobao.com/item/42411337701.htm?fromSite=main&spm=a1z10.3-c.w4002-10831283312.14.DCZsCO) x1(引出所有腳位,可測所有 SDK 功能,需要先把針腳改焊成 180度) * [CP2102](https://item.taobao.com/item.htm?spm=a1z10.3-c.w4002-10831283312.16.tYuCfv&id=18127859919) x1 * I2C LCD * [LCD](http://tw.taobao.com/item/17857852202.htm?fromSite=main&spm=a1z10.3-c.w4002-10831283312.9.aMOfwr)  x1 * [LCD I2c 轉換版](http://tw.taobao.com/item/41146372507.htm?fromSite=main&spm=a1z10.3-c.w4002-10831283312.18.K0a1Wt) x1 * [土壤感測器](http://tw.taobao.com/item/17784510350.htm?fromSite=main&spm=a1z10.3-c.w4002-10831283312.9.kfDP7o) x1 * 100K**Ω** 200K**Ω** 分壓電阻各1 * 小盆栽?當天準備一包土,跟一些盒子(布丁?)給大家裝,還要有一些盛水的容器 * LED & 100Ω & 220Ω * 一些 公對公杜邦線 or 單芯線 * 一台可連 wifi 的裝置,測試用(手機 or 筆電) 時間:2015-09-20 09:00 ~ 16:00 大綱 === * 介紹 5 ~ 10m * 目的,計畫 * ESP8266EX 晶片介紹 20 m * 組成(樂鑫、Ai-thinker) * 生態 * 硬體版本 * 韌體版本 * 版本差異 * baud rate * 社群 * Ai-thinker 封裝(ESP01、03、12)介紹 * Flash Size、支援差異(ADC) * 引出接腳、麵包板 * 功能、特色 * 條列 * 配線 * 基本啟動配線(圖) * 燒錄配線 * 官方韌體組成 * SDK * AT Command 介紹 * 功能 * 基本指令 * **第一個練習(Arduino IDE) 20m** * 使用 Arduino 與其通訊 * 練習 AT 指令 * 觀察韌體版本 * 切換模式,改基地台 SSID & password * 從手機連進去 * 連到 ap * 更新韌體 * Ethernet & Web 25m  * 網路 * SSID * 802.11 b,g,n * Web * HTTP Protocol GET、POST * HTML * RESTful * Server [](https://github.com/marcoschwartz/aREST)[https://github.com/marcoschwartz/aREST](https://github.com/marcoschwartz/aREST) * Client [](https://github.com/tuanpmt/espduino)[https://github.com/tuanpmt/espduino](https://github.com/tuanpmt/espduino) * NAT 網路環境 * [esp Arduino Library](https://github.com/itead/ITEADLIB_Arduino_ESP8266 ) 10m * 用途 * 範例 * **第二個練習 使用 ITEADLIB 40m** * 建立 Web Client * get json weather data * 建立 Web Server * aREST 控制 LED 明滅 * 讀取土壤感測器 Digita * 介紹 IoT Service 15m * 應具備的功能 * thingspeak [](http://thingspeak.com/)http://[t](http://hingspeak.com/)hingspeak.com/ * iot-playground [](http://iot-playground.com/)[http://iot-playground.com/](http://iot-playground.com/) * **第三個練習 修改 Web Client 改成 POST 把感測器資料送到 thingspeak 20m** * 土壤感測器 analog adc 說明 * ESP8266 Arduino Project 20m * 透過 Board Manager 安裝 * Serial to TTL (有 3.3v 的,建議 CP2102) * 燒錄模式,正常模式 * 燒錄軟體介紹 * esptool  * nodemcu flasher [](https://github.com/nodemcu/nodemcu-flasher)https://github.com/nodemcu/nodemcu-flasher (Windows) * smart.js Flasher(MAC) * **第四個練習 獨立使用 ESP8266(需安裝 cp2102 驅動) 15m** * 一樣用 aREST Server 控制 LED 明滅 * **非官方韌體比較與生態 10m** * NodeMCU [](http://www.nodemcu.com/index_cn.html)http://www.nodemcu.com/index_cn.html * Smart.js [](https://github.com/cesanta/smart.js)https://github.com/cesanta/smart.js * OLIMEX [](https://github.com/OLIMEX/ESP8266/tree/master/IoT%20Firmware)https://github.com/OLIMEX/ESP8266/tree/master/IoT%20Firmware * frankenstein [](https://github.com/nekromant/esp8266-frankenstein)https://github.com/nekromant/esp8266-frankenstein * ESP8266 進階功能 10m * Deep Sleep (GPIO16 => RST) * 觀察睡眠電流(USB 電流表、三用電表) * spiffs * 用 web server 讀寫檔案 * i2c lcd * SDA、SCL 腳位 * **練習五,應用 40m** * LCD 留言板 * nodemcu 試玩 * esplorer [](http://esp8266.ru/esplorer/)http://esp8266.ru/esplorer/ 需先安裝 JAVA SE 7 * 開發流程 serial shell  * init.lua 與 api 介紹,開發環境 * modules * wifi * fs * net * ... * lua web framework * log   * smart.js 試玩 * 想自己的練習,分享 **可補充題材**ㄎ === * Sming 5M * Smart.js 用 JS 寫 Arduino  20m * v7 JavaScript Engine * API [](https://docs.cesanta.com/Smart.js.shtml)https://[docs.cesanta.com/Smart.js.shtml](https://www.cesanta.com/docs/smart) * NodeMCU 用 Lua 寫 Arudino  * [](https://github.com/nodemcu/nodemcu-firmware)https://github.com/nodemcu/nodemcu-firmware * 用 Lua 或 JavaScript 完成練習三或四的功能 * 如何使用 esp-open-sdk 在 Linux 下建構韌體編譯環境 10m * VirtualBox + Ubuntu * MQTT 10m![](https://i.imgur.com/jVuwCBN.jpg) * MyMQTT [](https://play.google.com/store/apps/details?id=at.tripwire.mqtt.client)https://play.google.com/store/apps/details?id=at.tripwire.mqtt.client * HIVEMQ