More Related Content
Similar to ESP8266をはじめよう (20)
ESP8266をはじめよう
- 4. ESP8266とは?
上海のファブレス半導体メーカー Espressif Systems が
製造しているWi-Fiモジュールのチップセット及びそのシリーズ
ESP8266EX chipset
• TCP/IPプロトコルスタック搭載32bit MCU
• アーキテクチャ : RISC (Diamond Standard 106Micro Core)
• クロック : 80MHz
• RAM : 64KB(命令用), 96KB(データ)
• Wi-Fi STA, AP, STA+AP
• IEEE 802.11b/g/n, WPA/WPA2
• 10-bit ADC with HSPI, SDIO, UART, PWM, I2C, and I2S
- 7. 他の似たものと比較
Arduino UNO mbed (LPC1768) Raspberry Pi ESP-WROOM-02
値段 3000円くらい 6000円くらい
A+ ~ 2B
3000円~6000円
Breakout Board
600~2500円
I/O (GPIO) 20 26 17 11
機能
UART/I2C/SPI/
PWM
+シールドで拡張
UART/I2C/SPI/
PWM/CAN/LAN/
USBなど
UART/I2C/SPI/
PWM/LAN/USB
ソフトで色々
UART/I2C/I2S/
SPI/SDIO/PWM/
IR/Wi-Fi
ポテンシャル
(大雑把に)
ふつう ちょっとつよい 超つよい つよい
難しい? かんたん ちょっと難しい ふつう わりとかんたん
夢広がる? お勉強用+α 使いこなせたら 広がりまくり
えっ、この値段…
いろいろな物に
組み込んでネット
に繋ぎたくなる!
※個人の感想です
- 8. どこで買えるの?
秋月電子通商
•Wi-Fiモジュール ESP-WROOM-02 DIP化キット … 650円(税込)
http://akizukidenshi.com/catalog/g/gK-09758/
スイッチサイエンス
•ESP-WROOM-02ピッチ変換済みモジュール … 909円(税込)
https://www.switch-science.com/catalog/2347/
•ESP-WROOM-02開発ボード … 2160円(税込)
https://www.switch-science.com/catalog/2500/
などなど… 別途 USBシリアル変換やモード
切り替え用の抵抗(後述)が不要
- 13. ESP8266 core for Arduino
Arduino IDEにESP8266 core for Arduinoを導入する (1)
1. Preferences(環境設定)を開く
2. 追加のボードマネージャのURL の一番右のボタンをクリック
3. http://arduino.esp8266.com/stable/package_esp8266com_index.json をコピペ
4. OKをクリック
5. OKをクリックで環境設定を閉じる
2
3
4
5
これでボードマネージャで
インストール可能になった
次へ続く
1
- 14. ESP8266 core for Arduino
Arduino IDEにESP8266 core for Arduinoを導入する (2)
1. ツール → マイコンボード : “…”
2. ボードマネージャ...
3. 一番下の esp8266 by ESP8266 Community を インストール
3
1 2
- 15. ESP8266 core for Arduino
Arduino IDEにESP8266 core for Arduinoを導入する (3)
1. ツール → マイコンボード : “…”
2. Generic ESP8266 Module
3. Flash Mode : QIO, Flash Size : 4M (3M SPIFFS) にする (以下のように)
3
1
2
- 34. void loop() {
server.handleClient();
if(led_sw) {
digitalWrite(LED, HIGH);
delay(500); //500ミリ秒点灯
digitalWrite(LED, LOW);
delay(500); //500ミリ秒消灯
}
}
勘所2:タイマー
delay()は全ての処理を止めてしまう
void handleControl() {
if (server.method() == HTTP_GET) {
if (server.arg("c") == "on") {
led_sw = true;
}
else if (server.arg("c") == "off") {
led_sw = false;
}
String s = "<html>…</html>";
server.send(200, "text/html", s);
}
}
LEDの1点滅中は
サーバが応答しない!
注:解説用なので色々と大幅に省いています
例:スマホからLEDの点滅をON/OFFできるものを作りたい
- 35. void loop() {
server.handleClient();
if (led_sw_on) {
led_blink_arm(500);
led_sw_on = false;
}
if (led_sw_off) {
led_blink_disarm();
led_sw_off = false;
}
if (led_flag) { digitalWrite(LED, HIGH); }
else { digitalWrite(LED, LOW); }
yield();
}
勘所2:タイマー
void change_led_flag(void *pArg) {
if (led_flag) { led_flag = false; }
else { led_flag = true; }
}
void led_blink_arm(int ms) {
os_timer_setfn(&blink_timer, change_led_flag, NULL);
os_timer_arm(&blink_timer, ms, true);
}
void led_blink_disarm() {
os_timer_disarm(&blink_timer);
}
注:解説用なので色々と大幅に省いています
#ifdef ESP8266
extern "C" {
#include "user_interface.h"
}
#endif
os_timer_t blink_timer;
点滅ONになった時にタイマー設定、OFFで解除するように
handleではhttpリクエストに応じて
led_sw_on = true / led_sw_off = true
とするようなコードを書く
(現在のON/OFF状況も別途保持必要)
- 45. プログラムを書く&書き込む
1. 無線LAN接続する
2. サーバ起動
3. リクエストを受ける
4. 赤外線送信
ESP8266 core for Arduino
https://github.com/esp8266/Arduino
ESP-WROOM-02を単体で
Arduinoのように使える
IRremote ESP8266
https://github.com/markszabo/IRremoteESP8266
38kHzで変調して赤外線LEDを
点滅させるライブラリ
トータル
150行くらい
- 53. プリント基板製造サービス比較
条件:50mm*50mm / 両面(2層)基板 / 1oz, 35μm銅箔
1.6mm厚 / はんだレベラー / レジスト色 : 緑
国内P社 国内S社 海外F社 海外E社
10枚作る 約2万5千円 約1400円 9.99ドル
100枚作る 約4万円 約1万円 約75ドル 99.9ドル
レジストを
黒色に
+1000~
3000円
+約3000円 +20ドル +0ドル
送料 込み 1080円
約5~20ドル
(重さと配送方法で異なる)
サポート 日本語 日本語 英語