ESP8266とは
昨年から話題になっている、技適マークを取得しているWifiモジュール。
詳しくは以下の記事が詳しい。
技適済み格安高性能Wi-FiモジュールESP8266をArduinoIDEを使ってIoT開発する為の環境準備を10分でやる方法
自分の環境については、ホストマシンはMac Book Pro。Mac OS X El Capitanである。
用意するもの
秋月電子で手に入れる。
以下は千石電商で。
あとは、ハンダゴテとハンダが必要。
ESP8266をブレッドボードで使えるようにする
DIPの部分をハンダ付けする
ATコマンドを発行する動作チェック
ESP8266や抵抗を繋いでいく
以下の記事を参考に抵抗とESP8266、及びUSBシリアル変換アダプターを繋いでみた。
ESP 8266(ESP WROOM 02)のピン | 接続先 |
---|---|
3V3 | 3.3V |
EN | 3.3V(10kΩ抵抗を挟む) |
IO15 | GND(10kΩ抵抗を挟む) |
IO2 | 3.3V(10kΩ抵抗を挟む) |
IO0 | 3.3V(10kΩ抵抗を挟む) |
RST | 3.3V(10kΩ抵抗を挟む) |
TXD | RX(USBシリアル変換アダプター) |
RXD | TX(USBシリアル変換アダプター) |
GND | GND(USBシリアル変換アダプター |
USBシリアル変換アダプターのドライバインストール
スイッチサイエンスさんが示しているオフィシャルサイトよりドライバを落とす。
ドライバダウンロード後、ダウンロードしたパッケージをインストールする。
Arduino IDEよりホストからESP8266に対しシリアル接続を試す
Arduino IDEを立ち上げる。マシンにインストールしていないひとは以下よりインストールする。
動作確認したArduino IDEのバージョンは1.6.7。
Toolsからポートを選択し、接続したESP8266(USBシリアル変換アダプタ)を選択する。
その後、IDEの右上にあるアイコンを押して、シリアルモニタを表示する。
シリアルモニタから、ATコマンドを実行する。
通った。ATコマンドではWifiの設定などが行える。
ESP8266をUSB-TTLシリアル変換してWi-Fiを確認するから。
nodemcuを試す
nodemcuを入れて遊んでいる社員が居て、興味もったので入れてみる。
luaでロジックを書けるようになる。
firmwareをビルドする。
README.mdの手順にある中で、docker containerを利用したファームウェアのビルド方法が書かれていたのでやってみた。
Docker toolboxをダウンロード
する。自分の環境はMac OS Xである。
Docker Quick Start Terminalを立ち上げる
Docker machine (default)を立ち上げる
> docker-machine start default
docker daemonとの接続を可能にするため、以下のコマンドを実行する
自分は$SHELLにfish shellを利用しているので、以下のコマンドを実行する
> eval (docker-machine env default)
bashとかなら以下。
> eval "$(docker-machine env default)"
nodemcu-firmwareのリポジトリをclone
する。
> mkdir ~/Sandbox
> cd ~/Sandbox
> git clone https://github.com/nodemcu/nodemcu-firmware.git
Docker containerを利用してビルドする
README.mdにリンクが貼られているコンテナページに記載されているコマンドを実行してビルドを行う。
> cd ~/Sandbox/nodemcu-firmware
> docker run --rm -ti -v (pwd):/opt/nodemcu-firmware marcelstoer/nodemcu-build
ビルドされたバイナリをESP 8266へ
ブレッドボード上の一部配線を変更する。
ESP 8266(ESP WROOM 02)のピン | 接続先 |
---|---|
3V3 | 3.3V |
EN | 3.3V(10kΩ抵抗を挟む) |
IO15 | GND(10kΩ抵抗を挟む) |
IO2 | 3.3V(10kΩ抵抗を挟む) |
IO0 | GND |
RST | 3.3V(10kΩ抵抗を挟む) |
TXD | RX(USBシリアル変換アダプター) |
RXD | TX(USBシリアル変換アダプター) |
GND | GND(USBシリアル変換アダプター |
esptoolをインストールする
esptoolを利用し、USBシリアル変換アダプタ経由でESP 8266のFlashにバイナリを転送する。
pyenvを利用し、pythonの環境を構築するところから。
> brew install pyenv
> pyenv install 2.7.11
> pyenv rehash
> pyenv global 2.7.11
> cd ~/Sandbox
> git clone https://github.com/themadinventor/esptool.git
> cd esptool
> python setup.py install
> pyenv rehash
esptoolを利用し、ビルドしたバイナリをFlashに書き込む。
Getting Started on OSXを参考にした。
ttyとして設定するUSBシリアル変換アダプタは環境によって異なる(はず)。
> cd ~/Sandbox/nodemcu-firmware/bin
> sudo esptool.py --port=/dev/tty.usbserial-AI02RJQZ write_flash 0x00000 nodemcu_float_master_20160115-1942.bin
Connecting...
Erasing flash...
Took 2.44s to erase flash block
Wrote 530432 bytes at 0x00000000 in 57.8 seconds (73.4 kbit/s)...
Leaving...
nodemcuを試す
ブレッドボードの接続状態を切り替え、
Flashに書き込んだnodemcuを立ち上げる状態にする
ESP 8266(ESP WROOM 02)のピン | 接続先 |
---|---|
3V3 | 3.3V |
EN | 3.3V(10kΩ抵抗を挟む) |
IO15 | GND(10kΩ抵抗を挟む) |
IO2 | 3.3V(10kΩ抵抗を挟む) |
IO0 | 3.3V(10kΩ抵抗を挟む) |
RST | 3.3V(10kΩ抵抗を挟む) |
TXD | RX(USBシリアル変換アダプター) |
RXD | TX(USBシリアル変換アダプター) |
GND | GND(USBシリアル変換アダプター |
変更後、screenでシリアル接続する。
> screen /dev/tty.usbserial-AI02RJQZ 9600
NodeMCU 1.4.0 build 20151006 powered by Lua 5.1.4 on SDK 1.4.0
lua: cannot open init.lua
>
起動した!起動しないままの場合は、RSTをGNDに接続して、リセットしてあげると良い。
luaコマンドを実行する
> print("hello world")
hello world
> print(wifi.sta.getmac())
XX:XX:XX:XX:XX:XX
> wifi.setmode(wifi.STATION)
> wifi.sta.config("SSID", "pass")
> ip = wifi.sta.getip()
> print(ip)
192.168.10.16
インターネッツにも繋がる。
ファームについてMQTTのモジュールなどもある。
今後そっちもいじっていく。