Slide 1

Slide 1 text

幫 #4&7+01 加上翅膀 '52

Slide 2

Slide 2 text

mlwmlw Software Engineer Full Stack Web Developer mlwmlw.org github.com/mlwmlw

Slide 3

Slide 3 text

⼀一篇⽂文章 http://mlwmlw.org/2015/07/%E6%B7%B1%E5%85%A5%E6%B7%BA %E5%87%BA-wifi-%E6%99%B6%E7%89%87-esp8266-with-arduino/

Slide 4

Slide 4 text

⼤大綱 • 為什麼 ESP8266 • 硬體 • 韌體 • 社群 • 開發環境 • ⾮非官⽅方韌體 • 結論

Slide 5

Slide 5 text

契⼦子

Slide 6

Slide 6 text

ARDUINO 要怎麼傳送資料?

Slide 7

Slide 7 text

ARDUINO INTERNET • Wire • Ethernet shield > $300 • Wireless • Arduino YUN > $2000 • Wi-Fi shield CC3000 > $1000

Slide 8

Slide 8 text

OR ESP8266 EEPROM Antenna ESP8266 Chip

Slide 9

Slide 9 text

EXPRESSIF ESP8266 SOC http://espressif.com/ Tensilica Xtensa LX106 (RISC CPU 32bit 80MHz) IEEE 802.11 b/g/n Wi-Fi 16 GPIO pins SPI,I²C,、UART、ADC PWM、low power

Slide 10

Slide 10 text

ESP8266EX PINS • GPIO x 11 • LNA 天線 • TOUT(ADC) • CHIP_EN • XPD_DCDC(Wake Up) • SDIO(SD Card) • UART(TX RX) • EXT_RSTB(RESET) • VDD • GND https://github.com/esp8266/esp8266-wiki/wiki/Pin-definition

Slide 11

Slide 11 text

ESP8266 WI-FI • ESP8266 = Wi-Fi AP + Wi-Fi Client • 韌體內含 lwip - A Lightweight TCP/IP stack • 預設 SDK 不⽀支援 Forwarding X X

Slide 12

Slide 12 text

警告!接下來的內容..

Slide 13

Slide 13 text

¥9.00 ¥9.90 ¥8.00 ¥8.00 ¥8.50

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

+ = 1 + 1 = 50 組合不適⽤用於歡樂送

Slide 17

Slide 17 text

封裝

Slide 18

Slide 18 text

AI-THINKER 安信可 http://www.ai-thinker.com/ ⽣生產 ESP-01 .. ESP-12 系列的公司

Slide 19

Slide 19 text

其他廠商⽣生產 • OLIMEX ESP8266 • NodeMCU • Adafruit HUZZAH ESP8266 • UNU-WF8266 • …

Slide 20

Slide 20 text

ESP-201 & TEST BOARD 推薦⼊入⾨門 ESP8266 引出很多很多針腳、最少焊接

Slide 21

Slide 21 text

ESP8266 社群

Slide 22

Slide 22 text

bbs.espressif.com 定期釋出官⽅方 SDK ⺫⽬目前已到 1.4.0 ~ 不 穩(爽) 可 以 ⾃自 ⼰己 寫 O[]O ?! Bug Bounty (RTOS Bug Bounty Now US$500!) 還能賺錢

Slide 23

Slide 23 text

www.ai-thinker.com 中⽂文社群、安信可會釋出其出廠預載的韌體 可以更新看看..有⽤用嗎

Slide 24

Slide 24 text

ESP8266.com 最活耀的 ESP8266 社群 產出 Arduino x ESP8266 包含各⼤大平台討論

Slide 25

Slide 25 text

esp8266.ru 戰⾾鬥⺠民族也搞 ESP8266! esplorer 重要兵器產地!

Slide 26

Slide 26 text

聽起來不錯! 那我要怎麼⽤用勒 韌體選擇 1, 2, 3, 4, 5, 6…

Slide 27

Slide 27 text

官⽅方韌體 SDK + AT Command

Slide 28

Slide 28 text

AT Command Reference AT COMMAND 海斯命令集(Hayes command set;AT command set) 原本是為了海斯智慧300數據機所開發 的⼀一種命令語⾔言

Slide 29

Slide 29 text

AT COMMAND • 指令為 AT+ 開頭 • AT+CMD? 查詢 • AT+CMD=XXX 設定 • AT+CMD 執⾏行指令 CMD

Slide 30

Slide 30 text

官⽅方提供的韌體,SDK 的功能實踐, 曾經以開源⽅方式釋出 功能分類 • Wi-Fi 組態 • 取得網路狀態 • TCP/IP 指令 AT COMMAND

Slide 31

Slide 31 text

Arduino 與其 UART 連 接,讓 Arduino 透過 AT Command 控制 Wi-Fi 也可使⽤用包裝好的 API library WEEESP8266 AT COMMAND

Slide 32

Slide 32 text

AT 不太穩定?點解!

Slide 33

Slide 33 text

版本問題?通訊問題? 怎麼解決?

Slide 34

Slide 34 text

韌體與開發環境⼤大抉擇

Slide 35

Slide 35 text

esp8266/Arduino 以 Arduino IDE 開發 ESP8266 韌體

Slide 36

Slide 36 text

Arduino/ESP8266 獨樹⼀一格的 Arduino 發展迅速、社群活躍 涵蓋 ESP 的社群 活耀的函式庫擴充(SPIFFS)..

Slide 37

Slide 37 text

直接在 ARDUINO IDE 安裝

Slide 38

Slide 38 text

直接在 ARDUINO IDE 安裝

Slide 39

Slide 39 text

⾺馬上擁有 $60 的 arduino + Wi-Fi shield

Slide 40

Slide 40 text

Sming Sming - Open Source framework for high efficiency native ESP8266 development

Slide 41

Slide 41 text

ESP8266 韌體框架,純 C++ 開發 整合豐富的第三⽅方函式庫 每⼀一個範例都是來真的 Sming

Slide 42

Slide 42 text

NODEMCU 近似 Nodejs 的 API 韌體 + 硬體 ⼤大陸中⽂文社群 Lua 開發快速 API ⽂文件完整

Slide 43

Slide 43 text

bbs.nodemcu.com nodemcu 官⽅方中⽂文社群

Slide 44

Slide 44 text

smart.js & espruino JavaScript - Web ⼯工程師的⼩小理想 但都...不夠成熟

Slide 45

Slide 45 text

SMART.JS Cesanta 公司發展(商業⽀支援) v7 embedded JavaScript Engine Open Source 還在 alpha .. 冷冷的

Slide 46

Slide 46 text

SMART.JS

Slide 47

Slide 47 text

@gfwilliams 開源專案 作為 JavaScript 嵌⼊入式韌體 ⾮非專攻 ESP8266 較 smartjs 成熟 有提供棒棒的 IDE

Slide 48

Slide 48 text

webduino 台灣製造,特製韌體,雲端開發環境 專為 Web Developer 設計

Slide 49

Slide 49 text

ESP8266 於 WEBDUINO

Slide 50

Slide 50 text

ESP8266 於 WEBDUINO

Slide 51

Slide 51 text

webduino 透過雲端主機,使⽤用 Web Component + JavaScript 經由 ESP8266 控制 arduino

Slide 52

Slide 52 text

蛤?所以到底是 要⾃自⼰己寫韌體?

Slide 53

Slide 53 text

開發環境⽐比⼀一⽐比 Expressif SDK C++ 空蕩蕩的房間 Arduino/ESP8266 C++ 無痛上⼿手 Sming C++ 嵌⼊入式硬漢 NodeMCU Lua 軟體開發者 Smart.js JavaScript 想清楚 espruino JavaScript 玩玩看 webduino JavaScript 快速製造⼩小玩具

Slide 54

Slide 54 text

其他 OPEN SOURCE 韌體 • OLIMEX • ESP8266 examples and toolchain setup • frankenstein • 像 AT ⼀一樣透過指令控制 • ESP8266 FreeRTOS • 樂鑫推出的 FreeRTOS Porting

Slide 55

Slide 55 text

開發環境介紹 Toolchain、Flasher、SDK、IDE

Slide 56

Slide 56 text

TOOLCHAIN ESP-OPEN-SDK Xtensa lx106 architecture toolchain • crosstool-NG: toolchain generator • gcc-xtensa: xtensa compiler • newlib-xtensa: newlib • lx106-hal: Hardware Abstraction Library

Slide 57

Slide 57 text

FLASHER

Slide 58

Slide 58 text

ESPTOOL https://github.com/themadinventor/esptool ESP8266 ROM Bootloader utility 燒錄韌體⼯工具 Python Command Line Tool

Slide 59

Slide 59 text

NODEMCU FLASHER https://github.com/nodemcu/nodemcu-flasher Windows 視窗化燒錄⼯工具

Slide 60

Slide 60 text

SMART.JS FLASHNCHIPS https://github.com/cesanta/smart.js/releases smart.js 的燒錄⼯工具,有 Mac & Win 版 除了 smart.js 適合以外其實不太⽅方便-_-

Slide 61

Slide 61 text

IDE

Slide 62

Slide 62 text

ESPLORER IDE For ESP8266 需安裝 Java ⽀支援 NodeMCU AT Command Serial Console http://esp8266.ru/esplorer/

Slide 63

Slide 63 text

ESPLORER NODEMCU 也可開發 NodeMCU 喔

Slide 64

Slide 64 text

NODEMCU STUDIO nodemcu lua 檔案上傳⼯工具 For Windows

Slide 65

Slide 65 text

ESPRUINO IDE chrome extension espruino ⽤用的 IDE espruino 最有⽤用的部份-_-

Slide 66

Slide 66 text

ESP8266 STYLE esp8266 的⼩小特⾊色 deep sleep、spiffs、protocol

Slide 67

Slide 67 text

電源模式 Mode Typical Units 802.11n, MCS7, POUT =+14dBm 135 mA 802.11b, packet size of 1024 bytes, -80dBm 60 mA Standby 0.9 uA Deep sleep 10 mA Shutdown 0.5 uA

Slide 68

Slide 68 text

耗電測試 CP2102 supply current ~20mA CP2102 + ESP8266 = 95mA

Slide 69

Slide 69 text

deep sleep 22.7m - CP2102 ~= 1mA

Slide 70

Slide 70 text

SPIFFS Wear-leveled SPI flash file system for embedded devices 把 EEPROM 變成磁碟 可⽤用於儲存 config or log or code NodeMCU、ESP8266/Arduino、sming 都有 動態語⾔言的環境都是把程式放在檔案系統

Slide 71

Slide 71 text

INTERNET PROTOCOL MQTT、CoAP、HTTP、JSON 套裝 IoT 協定解決⽅方案

Slide 72

Slide 72 text

應⽤用與⼩小結 誰需要 ESP8266,有什麼應⽤用

Slide 73

Slide 73 text

感測器資料分析

Slide 74

Slide 74 text

線上資料顯⽰示 https://www.zeczec.com/projects/likeeper

Slide 75

Slide 75 text

機器⼈人控制 來⾃自 webduino demo

Slide 76

Slide 76 text

機器⿃鳥..控制 來⾃自 webduino demo

Slide 77

Slide 77 text

在開發時可以取代 Ardunio (除GPIO少) 相容 Arduino IDE + Wi-Fi 提供⼊入⾨門者更多可能

Slide 78

Slide 78 text

GOOGLE TREND 成⻑⾧長的社群帶來資源 站在巨⼈人肩膀上

Slide 79

Slide 79 text

⾜足夠便宜 可做初步產品雛型

Slide 80

Slide 80 text

可作為 LWIP 與 RTOS 網路與 OS 研究與開發環境

Slide 81

Slide 81 text

降低軟體⼯工程師的進⼊入⾨門檻 Lua、JavaScript 環境

Slide 82

Slide 82 text

剛泡好咖啡。 對著 Arduino,路上無⾞車無⼈人,夜深無聲。 沉默太久,傷害也太重,我想該是和⼤大家清 楚說幾句話.. 趕快買⼀一⽚片回家玩玩看吧!

Slide 83

Slide 83 text

BTW NodeMCU IDE ⼩小計畫 https://github.com/mlwmlw/esp-editor

Slide 84

Slide 84 text

參考連結 • Webdunio 部份投影⽚片 • webduino.io • 引⽤用來源 www.slideshare.net/webduino-io/2015-jsdc-build- anything-with-javascript • 我的部落格⽂文章(相關教學與投影⽚片) • ESP8266 + Arduino http://mlwmlw.org/ 2015/07/%E6%B7%B1%E5%85%A5%E6%B7%BA%E5%87%BA- wifi-%E6%99%B6%E7%89%87-esp8266-with-arduino/ #more-2618 • ESP8266 Workshop http://mlwmlw.org/2015/09/esp8266- workshop/