上野家のホームページ
ナーマル,マリン,ココ
[
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
開発/WeMos D1
をテンプレートにして作成
資料室
開発/WeMos D1 をテンプレートにして作成
[
差分
|
バックアップ
|
リロード
]
[ ]
開始行:
* WeMos D1
WeMos D1((改良版はWeMos D1 R2))は,[[中国WEMOS>https://ww...
このWeMos D1の互換ボードの[[HiLetgo OTA WeMos D1 CH340 Wi...
&ref(HiLetgo_D1.png,,50%);~
ボードには中国[[Espressif Systems社>https://www.espressif...
#ref(esp8266.png,,60%)
ホストPCとはUSBで接続して仮想シリアルポートとして機能する...
以下のような特徴がある。~
- CPUチップにWifi機能を統合~
- 動作温度が広い~
-40°C~+125°Cに対応。
- 80MHzのシステムクロックで動作~
O.C.160MHzでも動作する場合もあるようだ。~
- 16個のレジスタ~
- 4MB Flash Memoryの搭載~
AI-Thinker製ESP-12Fのシールド内部に,SPI接続されているFla...
ただし,CPUのMemory Map上には最大1MBまでしかマッピングで...
製品によっては2MBのFlash ROMが実装されているのもあるよう...
- Boot ROMの搭載~
書き換え不可ではあるが64KBのBoot ROMがチップ内に内蔵され...
このためボードが文鎮化することはないようだ。~
- 11個のデジタル入出力ピン~
すべてのピンは,割り込み/PWM/I2C/1線式シリアルをサポート...
入出力電圧は3.3V系となる。~
- 10bit ADC x 1~
- WDT内蔵~
- MicroUSBコネクタ~
- 電源入力ジャック DC9-24V~
- [[Arduino Uno>https://store.arduino.cc/products/arduino...
Boot ROMに搭載されているbootloader機能は,Arduinoボードと...
- [[NodeMcu>https://www.nodemcu.com/index_en.html]]互換機...
WeMos D1クローンボードの[[HiLetgo OTA WeMos D1>http://www...
Ai-Thinker製ESP-12Fは技術基準適合しているようなので,HiLe...
[[WeMos D1 mini>https://www.wemos.cc/en/latest/d1/d1_mini...
この小さなボードも安価だったので後で購入してみた。~
* スペック
WeMos D1互換ボードのスペック。~
|CPU |ESP-8266EX(Cadence Tensilica Xtensa L...
|CPU Module |Ai-Thinker ESP-12F(シールド)|
|クロックスピード |80MHz(O.C.160MHz)|
|WLAN |IEEE 802.11 b/g/n, Wifi stack内蔵 AT...
|RAM |命令 64KB SRAM / データ 96KB DRAM|
|Boot ROM |内蔵 64KB|
|Flash Memory |4MB [[FM25Q32:https://www.fm-chips.co...
|デジタルI/O |11(SPI, I2C, I2S)|
|アナログ入力 |1(10bit)|
|RTC |1(7.45hでオーバーフローする)|
|WatchDog |内蔵(timer=3s) |
|ボード動作電圧 |DC 3.3V|
|電源 |Jack 9-24VDC/USB MicroB|
|サイズ |68.6mm x 53.4mm(Arduino Unoと同サイ...
|重量 |25g|
- [[WeMos D1 R2(WeMos D1の改良版)とD1 miniの回路図>./回...
- [[ESP8266 Datasheet>./ESP-8266]]~
** ブートオプション
ESP8266EXには書き換え不可の64KBのBoot ROM(メモリアドレス...
このBoot ROMはFlash ROM上のユーザープログラムを起動するモ...
|GPIO15|GPIO0|GPIO2|Boot Mode |説明 ...
|L |H |H |通常モード |Flash ROM上のユ...
|L |L |H |bootloaderモード |シリアルポートか...
//|H |x |x |SDカードモード |SDカードからブ...
Arduino IDEではプログラムをFlash ROMに書き込む場合,USB-S...
また,esptoolを使う場合も同様にReset時に自動的にbootloade...
ESP8266ボードをbootloaderモードで起動させるには,GPIO0(D8...
詳しくは[[Boot ROMのリバース解析>https://github.com/trebi...
Boot ROMは書き換えできないので意味はないがdumpできた :) ~
> esptool -p COMx dump_mem 0x40000000 65536 esp8266bootr...
** コネクタ
WeMos D1ボードのコネクタ。([[WeMos D1 miniのコネクタ>./E...
|BGCOLOR(Gray):DIGITAL1 headerピン |BGCOLOR(Gray):ファ...
|RX |RX0, IO |GPIO3/RXD |
|TX |TX0, IO |GPIO1/TXD |
|D2 |IO(no interrupt/no PWM), WAKE |GPIO16 |
|D3 |IO, SCL, IRRx |GPIO5 |
|D4 |IO, SDA, PWM3 |GPIO4 |
|D5 |IO, HSPICLK, ONB_LED, PWM2 |GPIO14 |
|D6 |IO, HSPIMISO |GPIO12 |
|D7 |IO, HSPIMOSI, CTS0 |GPIO13 |
|BGCOLOR(Gray):DIGITAL2 header ピン |BGCOLOR(Gray):ファ...
|D8 |IO, 10k Pull-up |GPIO0 |
|D9 |IO, 10k Pull-up, TX1, ONB_LED2|GPIO2 |
|D10 |IO, 10k Pull-down, HSPICS. RTS0, PWM1|GPIO15 ...
|D11 |IO, MOSI |GPIO13 ...
|D12 |IO, MISO, PWM0 |GPIO12 ...
|D13 |IO, SCK, ONB_LED, IR Tx |GPIO14 ...
|GND |GND |GND ...
|- |- |- ...
|D14 |IO, SDA |GPIO4 ...
|D15 |IO, SCL, IRRx |GPIO5 ...
|BGCOLOR(Gray):ANALOG header ピン |BGCOLOR(Gray):ファ...
|A0 |Analog input, max 3.3V, TOUT |ADC0 |
|- |- |- |
|- |- |- |
|- |- |- |
|- |- |- |
|- |- |- |
|BGCOLOR(Gray):Power header ピン|BGCOLOR(Gray):ファンクシ...
|- |- |- |
|5V |5V |- |
|RESET|RESET |RST |
|3V3 |3.3V |3.3V |
|5V |5V |- |
|GND |GND |GND |
|GND |GND |GND |
|VIN |External Power |- |
''J1 USB Micro B''~
|1|VBUS |
|2|D- |
|3|D+ |
|4|ID |
|5|GND |
|Shell|Shield|
''J2 Power Jack''~
|1|GND|
|2|PWRIN|
|3|GND|
- 全IOピン:割り込み/PWM/I2C/1-wireシリアル対応(D2除く)~
- 全IOピン:''3.3V系''~
- ドライブ電流(ソース・シンク):''12mA''~
ドライブ能力が小さいので注意する。~
- 内臓のプルアップ/プルダウン機能~
GPIOにはCPU内臓のプルアップ/プルダウン機能がある。~
- オンボードLEDはD5(GPIO14)に接続されている~
- CPU Moduleに実装されているLEDはD9(GPIO2)に接続されている~
- D8(GPIO0),D9(GPIO2)は10Kでプルアップされている(ブート...
- D10(GPIO15)は10Kでプルダウンされている(ブートモード選...
- アナログ入力:入力範囲''0〜1V''(220Kと100Kで分圧し100K...
- いくつかのコネクタピンは別のピンと接続されている(Ardui...
** Flash ROMのMemory空間へのマッピング
購入したWeMos D1互換ボード(ESP8266ボード)には,SPIイン...
OTA機能を使う場合はOTA処理時に一時的に受信したプログラム...
Flash ROMの2nd Bootloaderとプログラム領域,パラメーター領...
Espressif社のATコマンドのfirmwareでは,プログラム領域とし...
** 出荷時のfirmware
WeMos D1互換ボード/D1 miniボードというかESP8266が実装され...
PCとWeMos D1互換ボード/D1 miniボードをUSBで接続して,仮想...
この時,シリアルポートのbaudrateは''74880''と変な値になっ...
ets Jan 8 2013,rst cause:2, boot mode:(3,6)
load 0x40100000, len 2592, room 16
tail 0
chksum 0xf3
load 0x3ffe8000, len 764, room 8
tail 4
chksum 0x92
load 0x3ffe82fc, len 676, room 4
tail 0
chksum 0x22
csum 0x22
2nd boot version : 1.7(5d6f877)
SPI Speed : 40MHz
SPI Mode : DIO
SPI Flash Size & Map: 32Mbit(1024KB+1024KB)
jump to run user1 @ 1000
flash_id=0x164068
ret=2147483647
V2
Mo
rf cal sector: 1019
freq trace enable 0
rf[112] : 00
rf[113] : 00
rf[114] : 01
SDK ver: 3.0.6-dev(072755c) compiled @ Apr 6 2023 03:06...
phy ver: 1156_0, pp ver: 10.2
@J剏
''boot mode:(3,6)''と表示される場合の''3''は,通常モード...
bootloaderモードだと''boot mode:(1,6)''と表示され,''1''...
これはブートオプションのbit構成そのまま。~
6はおそらくSPI Flash ROMが32Mbit=4MBだと''6''になるのだと...
その後,''2nd boot version : 1.7(5d6f877)''と表示されるの...
2nd Bootプログラムが,Flash ROMに書き込んだuser1.4096.new...
これで,baudrateが''115200''に変更されて,ATコマンド待ち...
ATコマンドで確認してみる。改行コードはCRLF。~
AT
OK
AT+GMR
AT version:1.7.6.0(Jan 24 2022 08:56:02)
SDK version:3.0.6-dev(072755c)
compile time:May 17 2025 10:10:06
Bin version(Wroom 02):1.7.6
OK
注意することとして,プログラムを作成してオブジェクトをボ...
なので,WeMos D1(ESP8266ボード)を購入したら,firmwareの...
WeMos D1互換ボード購入時にこんなことは知らなかったので,f...
最新バージョンのATコマンドfirmwareに下記のようにしてFlash...
//WiFi通信が出来るか確認してみる。~
//PCで[[NetCat>https://www.google.co.jp/search?q=NetCat+f...
// nc.exe -L -p 1000
// port1000を使った。~
// ESP8266ボードのコンソールでATコマンドを使う。~
// AT+CIPSTART="TCP","192.168.24.201",1000
// CONNECT
// OK
// AT+CIPMODE=1
//
// OK
// AT+CIPSEND
//
// OK
// >
//プロンプト>が表示される。~
//送信してみる。~
// Hello, Yuji!
//NetCatコンソールで受信出来た。~
// Hello, Yuji!
// +++で通信を終了する。~
// +++
*** Flash ROMを読み書きするツール
[[esptool.py>https://github.com/espressif/esptool]]は,ES...
Pythonが使える環境であれば,pipコマンドでインストール出来...
> pip install esptool
インストールできたか確認してみる。~
> esptool
esptool.py v4.8.1
usage: esptool [-h]
[--chip {auto,esp8266,esp32,esp32s2,esp32...
[--port PORT] [--baud BAUD] [--port-filte...
[--before {default_reset,usb_reset,no_res...
[--after {hard_reset,soft_reset,no_reset,...
[--override-vddsdio [{1.8V,1.9V,OFF}]] [-...
{load_ram,dump_mem,read_mem,write_mem,wri...
...
esptool.py v4.8.1 - Espressif chips ROM Bootloader Utility
:
:
と表示されればインストールできている。~
esptoolでボードの情報を確認する。~
> esptool flash_id
搭載しているFlash ROMのサイズなんかが確認出来る。~
ヘルプ表示されないオプションとして以下がある。~
: --flash_freq(-ff) |
SPI Flash frequency: 40m, 26m, 20m, 80m
: --flash_size(-fs) |
SPI Flash size:1MB, 2MB, 4MB, 8MB, 16MB, 256KB, 512KB, 2...
: --flash_mode(-fm) |
SPI Flash mode:qio, qout, dio, dout
*** firmwareをバックアップする
Flash ROMが4MB(32Mbit)の場合は,以下のようにしてバック...
> esptool -c esp8266 -p COMx -b 115200 read_flash 0x0000...
もし,バックアップしたfirmwareに戻したいときは以下のよう...
> esptool -c esp8266 -p COMx -b 115200 write_flash 0x000...
*** バックアップしていない場合でfirmwareを戻す
firmwareを前もってバックアップしていなかった場合,AI-Thin...
Espressif社のfirmwareは,[[ここのGitHub>https://github.co...
ダウンロードしたファイルを任意のディレクトリに解凍する。~
bin\atディレクトリに2種類のMemory Map(512+512,1024+1024...
v2.2.1: SDK version:2.2.1, AT version:1.6.2.0
v3.0.6: SDK version:3.0.6, AT version:1.7.6.0
購入したWeMos D1互換/D1 miniボードだと,SDK v2.2.1の512+5...
SDK v3.0以降のバージョンも提供されているが,WeMos D1互換/...
しょうがないので自分で4MB用にビルドし直して&ref(esp8266_n...
以下のようにして書き込んだ。~
v2.2.1 4MB(512KB+512KB)~
> esptool -c esp8266 -p COMx -b 115200 write_flash -fs 4...
v2.2.1 4MB-c1(1024KB+1024KB)~
> esptool -c esp8266 -p COMx -b 115200 write_flash -fs 4...
v3.0.6 4MB-c1(1024KB+1024KB) 自前ビルド~
> esptool -c esp8266 -p COMx -b 115200 write_flash -fs 4...
esp_init_data_default_v08.binには,WLANのSTA/APモードそれ...
本来これらの設定はボード事に設定しなくてはいけないので,...
Ai-Thinker社からリリースされているfirmwareは&ref(AiThinke...
SDK version:1.5.4, AT version:1.1.0
とEspressif社のものより古いバージョンみたいだ。~
> esptool -c esp8266 -p COMx -b 115200 write_flash -fs 4...
* ソフトウェア開発環境
このWeMos D1互換ボード/D1 miniボードのソフトウェア開発環...
ボード自体にPythonやLuaなどのインタープリター言語のランタ...
- [[MicroPython>https://micropython.org]]~
MicroPythonはPython 3互換のランタイム環境。~
[[MicroPythonのダウンロードページ>http://micropython.org/...
電源OnするとすぐPythonが使用でき,昔のBasicマシンのような...
- [[NodeMCU>https://www.nodemcu.com/index_en.html]]~
NodeMCUは,[[Lua>https://ja.wikipedia.org/wiki/Lua]]ベー...
これを書き込んで出荷している製品に,[[NodeMCU Development...
WeMos D1の小型版ボードの[[WeMos D1 mini>https://www.wemos...
[[ESPlorer>https://github.com/4refr0nt/ESPlorer]]という統...
電源Onするとすぐ使用でき,昔のBasicマシンのような使い勝手...
- [[Arduino IDE>https://www.arduino.cc/en/software/]]~
Ardduino Unoなどで使用するArduino IDEがESP8266ボードのプ...
ボードマネージャーでハードウェアパッケージをインストール...
Arduinoボードでプログラム開発するのと同じ手順で,ESP8266...
- [[PlatformIO IDE>https://platformio.org/platformio-ide]]~
platform IDEはESP8266のプログラムを開発する時に無料で使用...
フレームワークとしてArduino Frameworkが使用できるみたいで...
Arduino IDEでプログラム開発するのと同じ感覚で,ESP8266の...
- [[ESP8266_RTOS_SDK>https://github.com/espressif/ESP8266...
WeMos D1に使われているSoCのメーカー[[Espressif Systems>ht...
ESP8266ボードでRTOSを動かし,その環境下で動作するプログラ...
プログラムをビルドするための[[ToolChain>https://docs.espr...
これ以外の開発環境もあるようだ。~
** 仮想COMドライバーのインストール
WeMOs D1互換ボードは,中華製CH340がUSB-Serialコンバーター...
このCH340用のデバイスドライバーのインストールが必要。~
Windows10以降ではPlug&Playで自動的にインストールされるよ...
なので,Windows 7やPlug&Playでデバイスドライバーがインス...
** Arduino IDE
Arduino IDEは[[こちらのページ>/開発/AVR/Arduino#l10a36d2]...
*** ハードウェアパッケージのインストール
ハードウェアパッケージをインストールする方法は,Arduino I...
- Arduino IDEのボードマネージャーを使用する場合~
Arduino IDEを起動し,ファイル>環境設定>追加のボードマネー...
http://arduino.esp8266.com/stable/package_esp8266com_ind...
を追加する。~
~
ツール>ボード>ボードマネージャーから''esp8266 by ESP8266 ...
~
インストールが終了したら,Arduino IDEを再起動する。~
- パッケージをダウンロードしてインストールする場合~
https://github.com/wemos/Arduino_D1.gitが消滅?しているの...
> cd <arduino IDEインストール>\hardware
> md esp8266com
> cd esp8266com
> git clone https://github.com/esp8266/Arduino.git esp8266
~
これで,以下のようなディレクトリ構成になる。
─┬ Arduino
└─┬ hardware
└─┬ esp8266com
└─┬ esp8266
├── bootloaders
├── cores
├── doc
├── libraries
├── package
├── tests
├── tools
├── variants
├── platform.txt
├── programmers.txt
├── README.md
├── boards.txt
├── LICENSE
バイナリツールをダウンロード(要Python2.7)~
> cd esp8266/tools
> python get.py
Arduino IDEを再起動する。~
*** ボードの設定
上記のようにしてハードウェアパッケージがインストールでき...
- ボード~
WeMos D1 R2&miniを選択した。~
- CPU周波数~
80MHzが標準クロックだが,O.C.で160MHzでも動作する場合があ...
80MHzを選択した。~
- Flashサイズ~
4M(FS:2MB OTA:~1019KB)を選択してみた。~
この設定の場合,プログラムなどに使えるFlash ROMのサイズは...
4M(FS:3MB OTA:~512KB)を選択すると,プログラム用に512KBに...
- アップロードスピード~
921600bpsを選択する。うまくいかない場合は,115200bpsにす...
- LWIP Variant~
Networkスタックの機能を選択する。~
TCPのMSSを設定できるようだ。Higher Bandwidh(MSS=1460, IPv...
Lower Memoryに設定するとMSS=536, IPv6=offになる。~
no featuresにすると以下の設定(RAM使用がセーブできる)に...
-- IP Forwarding/NATを使わない。~
-- AutoIP(192.254.x.x)を使わない。~
-- IPフラグメンテーションと再構成なし。~
-- Selective ACKなし。~
-- listen backlogなし。~
- シリアルポート~
PCに認識されたCOMxポートを選択する。~
他の設定はそのまま。
*** ArduinoOTA
Arduino IDEを使ってESP8266のボード用のプログラムを作成し...
プログラム作成時はこれで問題無いが,機器として設置した後...
こんな時,ESP8266ボードの無線LANを使ってPCと接続しプログ...
このような機能をOTA(Over The Air)と呼んでいるようで,市...
Arduino IDEでボードマネージャーを使ってESP8266ボードを使...
ArduinoOTAは以下の手順でプログラムを更新する。~
- ESP8266ボードのユーザープログラムのOTA機能で,無線LANに...
- Arduino IDEから無線LANを使ってプログラムを送信する。~
- ボードで無線LANを使ってプログラムを受信して,Flash ROM...
このためOTA対応にすると,プログラムサイズの2倍のFlash ROM...
空きエリアに書き込んだOTA対応プログラムを起動するようにRe...
- ボードをResetする。
- OTA対応プログラムが,プログラムをFlash ROMの先頭に移動...
- ボードをResetする。~
- ユーザープログラムが再度起動する。~
このような仕組みなので,更新するプログラムは常にOTA対応コ...
また,更新プログラムをダウンロードして一時保存するためのF...
ArduinoOTAの機能設定は以下のようになっている。~
- Port番号の設定~
デフォルトのPortは8266番。~
- アップロードする時のESP8266ボードのホスト名の設定~
デフォルトは,ESP8266のチップIDになる。~
- アップロード時のパスワード設定~
- アップロード開始・終了・アップロード中・エラー時のコー...
''OTA対応のLED点滅プログラムの例''~
おなじみのLED点滅プログラムをOTA対応にしてみた。~
#code(c,,nonumber,Blink.ino)
Arduino IDEを再起動すると,ボードのシリアルポートの設定に...
これで,プログラムを変更してプログラムの更新をする時に,...
*** WatchDog Timerの注意
ESP8266のボードには内蔵WDT(WatchDog Timer)がある。~
これは,プログラムが暴走した時などに強制的にResetをかける...
Arduino IDEを使う場合,frameworkの以下のタイミングでWDTの...
- loop()の終了・再呼出時~
- delay()の実行時~
- yield()の実行時~
WDTが''6秒''に相当するカウント値を超えてしまうとCPUを強制...
ただし,delayMicroseconds()ではWDTを叩かないので,この目...
WDTはハードウェアで実装されているのだが,動作しないように...
I/Oアドレス0x60000900を0にすると,WDTの動作を停止すること...
//void hw_wdt_disable(){
// *((volatile uint32_t*) 0x60000900) &= ~(1); ...
//}
//
//void hw_wdt_enable(){
// *((volatile uint32_t*) 0x60000900) |= 1; ...
//}
** Platform IDE
[[PlatformIO IDE>https://platformio.org/]]は,ATMEL AVRや...
各CPU用のフレームワークに対応していて,ESP82666の場合Ardu...
またフレームワークは,Arduino IDEとほぼ同じ物が使われてい...
Microsoft製のテキストエディターVisual Studio Codeの拡張機...
またデバッグ機能が搭載されていて,CPUによってはデバッグす...
また,PlatformIO CoreというCLIツールをEclipseやCodeBlocks...
[[こちらのページ>/開発/AVR/開発環境/PlatformIO]]のように...
** ESP8266_RTOS_SDK/ESP8266_NONOS_SDK
SoCメーカーの[[Espressif Systems社>https://www.espressif....
スタンドアローンのプログラム開発の場合は,ESP8266_NONOS_S...
上記のGitHubからダウンロードできる。
> md esp8266
> cd ~/esp8266
> git clone https://github.com/espressif/ESP8266_NONOS_S...
//環境変数を設定する。~
// IDF_PATH=<HOME>\esp8266\ESP8266_RTOS_SDK
また,ESP8266_NONOS_SDKを使ってプログラムをビルドするには...
Espressif社が提供している[[toolchain>https://docs.espress...
C:\espgcc\esp8266
実行PATHに,C:\espgcc\esp8266\xtensa-lx106-elf\binを追加...
[[SysPPROGS>https://sysprogs.com/]]が提供している[[toolch...
こちらを使う場合は,''esp8266-gcc8.4.0.exe''をダウンロー...
** MicroPython
MicroPythonは,マイクロコントローラーで動作するPython 3互...
マイクロコントローラーをリセット後すぐにPythonが動作する...
MicroPythonはESP8266チップをサポートしているので,MicroPy...
ダウンロードは,[[こちら>https://micropython.org/download...
ボードにMicroPythonを書き込むためにesptoolが必要なのでPC...
> pip install esptool
MicroPythonをボードに書き込む。~
> esptool -p COMx erase_flash
> esptool -p COMx write_flash --flash_size=detect 0x0000...
PCとボードをUSBケーブルで接続しPuTTY等で接続する。~
- baudrateは115200~
- 改行はCR~
ボードをResetする。そうすると,対話型Pythonで操作できる。~
MicroPython v1.19.1 on 2022-06-18; ESP module with ESP8266
Type "help()" for more information.
>>> print("Hello Yuji Ueno")
Hello Yuji Ueno
>>>
となれば動作している。
*** 無線LANを使って接続する
WebREPLを使用すると無線LANで通信できる。~
作成したプログラムをボードにアップロードしたりダウンロー...
上記のシリアルポートで接続して,~
>>> import webrepl_setup
とする。いくつか質問されるので,''E''と任意のPassを設定し...
一度ボードをResetして,さらに
>>> import network
>>> sta = network.WLAN(network.STA_IF)
>>> sta.active(True)
>>> sta.scan()
>>> sta.connect('<SSID>', '<PASS>')
>>> while not sta.isconnected() :
time.sleep(0.1)
>>> conf = sta.ifconfig()
>>> print(conf)
これでボードのIP Addressがわかる。
PCに[[WebREPLコンソール>https://github.com/micropython/we...
> git clone https://github.com/micropython/webrepl.git
webreplディレクトリにあるwebrepl.htmlをダブルクリックする...
これで無線LANで接続して,操作することが出来る。~
ボードがResetした後に自動的にWLAN接続できるように''boot.p...
#code(python,,nonumber){{
import network
import webrepl
import utime
sta = network.WLAN(network.STA_IF)
sta.active(True)
sta.connect('<SSID>', '<PASS>')
start_time = utime.time()
while utime.time() - start_time < 10:
if sta.isconnected():
print("connect")
webrepl.start()
break
else:
print("Timeout")
sta.active(False)
ap = network.WLAN(network.AP_IF)
ap.active(True)
webrepl.start()
}}
WebREPLコンソールの右にあるsend a fileでboot.pyを指定して...
これで,最初からWLAN接続できるようになった。~
* スマートスピーカーと連携させる
** Google home mini
スケッチ>Include Library>Manage Libraries...で空欄にgoog...
esp8266-google-home-notifier 1.0.6とesp8266-google-home-t...
これでWeMos D1ボードからGoogle home miniにしゃべらせるこ...
** Amazon Alexa
https://github.com/witnessmenow/esp8266-alexa-wemo-emulat...
スケッチ>Include Library>Add ZIP Libraries...>esp8266-al...
これでWeMos D1ボードから,IFTTTを使わなくても家の電気をつ...
** IFTTTと連携
WeMos D1ボードとIFTTTとの連動は,[[ESP8266IFTTT>https://g...
zipファイルをダウンロードする。
スケッチ>Include Library>Add ZIP Libraries...>ESP8266IFTT...
ESP8266IFTTTのスケッチの例
// ヘッダー
#include <ESP8266IFTTT.h>
// IFTTT_WEBHOOK_NAMEのところにIFTTT Webhook's name,IFT...
// IFTTT Webhook api keyは,IFTTT>My Applets>Web Hooks>W...
// もしトリガーだけなら・・・
IFTTT.trigger(IFTTT_WEBHOOK_NAME, IFTTT_KEY);
// もしvalueがあれば・・・(但しvalueは文字列に限る。)
IFTTT.trigger(IFTTT_WEBHOOK_NAME, IFTTT_KEY, value1, val...
これで準備完了。~
ファイル>スケッチの例 から,いろいろ試すことが出来る。
Google home miniやAlexaから,IFTTTを使って家の電気をつけ...
終了行:
* WeMos D1
WeMos D1((改良版はWeMos D1 R2))は,[[中国WEMOS>https://ww...
このWeMos D1の互換ボードの[[HiLetgo OTA WeMos D1 CH340 Wi...
&ref(HiLetgo_D1.png,,50%);~
ボードには中国[[Espressif Systems社>https://www.espressif...
#ref(esp8266.png,,60%)
ホストPCとはUSBで接続して仮想シリアルポートとして機能する...
以下のような特徴がある。~
- CPUチップにWifi機能を統合~
- 動作温度が広い~
-40°C~+125°Cに対応。
- 80MHzのシステムクロックで動作~
O.C.160MHzでも動作する場合もあるようだ。~
- 16個のレジスタ~
- 4MB Flash Memoryの搭載~
AI-Thinker製ESP-12Fのシールド内部に,SPI接続されているFla...
ただし,CPUのMemory Map上には最大1MBまでしかマッピングで...
製品によっては2MBのFlash ROMが実装されているのもあるよう...
- Boot ROMの搭載~
書き換え不可ではあるが64KBのBoot ROMがチップ内に内蔵され...
このためボードが文鎮化することはないようだ。~
- 11個のデジタル入出力ピン~
すべてのピンは,割り込み/PWM/I2C/1線式シリアルをサポート...
入出力電圧は3.3V系となる。~
- 10bit ADC x 1~
- WDT内蔵~
- MicroUSBコネクタ~
- 電源入力ジャック DC9-24V~
- [[Arduino Uno>https://store.arduino.cc/products/arduino...
Boot ROMに搭載されているbootloader機能は,Arduinoボードと...
- [[NodeMcu>https://www.nodemcu.com/index_en.html]]互換機...
WeMos D1クローンボードの[[HiLetgo OTA WeMos D1>http://www...
Ai-Thinker製ESP-12Fは技術基準適合しているようなので,HiLe...
[[WeMos D1 mini>https://www.wemos.cc/en/latest/d1/d1_mini...
この小さなボードも安価だったので後で購入してみた。~
* スペック
WeMos D1互換ボードのスペック。~
|CPU |ESP-8266EX(Cadence Tensilica Xtensa L...
|CPU Module |Ai-Thinker ESP-12F(シールド)|
|クロックスピード |80MHz(O.C.160MHz)|
|WLAN |IEEE 802.11 b/g/n, Wifi stack内蔵 AT...
|RAM |命令 64KB SRAM / データ 96KB DRAM|
|Boot ROM |内蔵 64KB|
|Flash Memory |4MB [[FM25Q32:https://www.fm-chips.co...
|デジタルI/O |11(SPI, I2C, I2S)|
|アナログ入力 |1(10bit)|
|RTC |1(7.45hでオーバーフローする)|
|WatchDog |内蔵(timer=3s) |
|ボード動作電圧 |DC 3.3V|
|電源 |Jack 9-24VDC/USB MicroB|
|サイズ |68.6mm x 53.4mm(Arduino Unoと同サイ...
|重量 |25g|
- [[WeMos D1 R2(WeMos D1の改良版)とD1 miniの回路図>./回...
- [[ESP8266 Datasheet>./ESP-8266]]~
** ブートオプション
ESP8266EXには書き換え不可の64KBのBoot ROM(メモリアドレス...
このBoot ROMはFlash ROM上のユーザープログラムを起動するモ...
|GPIO15|GPIO0|GPIO2|Boot Mode |説明 ...
|L |H |H |通常モード |Flash ROM上のユ...
|L |L |H |bootloaderモード |シリアルポートか...
//|H |x |x |SDカードモード |SDカードからブ...
Arduino IDEではプログラムをFlash ROMに書き込む場合,USB-S...
また,esptoolを使う場合も同様にReset時に自動的にbootloade...
ESP8266ボードをbootloaderモードで起動させるには,GPIO0(D8...
詳しくは[[Boot ROMのリバース解析>https://github.com/trebi...
Boot ROMは書き換えできないので意味はないがdumpできた :) ~
> esptool -p COMx dump_mem 0x40000000 65536 esp8266bootr...
** コネクタ
WeMos D1ボードのコネクタ。([[WeMos D1 miniのコネクタ>./E...
|BGCOLOR(Gray):DIGITAL1 headerピン |BGCOLOR(Gray):ファ...
|RX |RX0, IO |GPIO3/RXD |
|TX |TX0, IO |GPIO1/TXD |
|D2 |IO(no interrupt/no PWM), WAKE |GPIO16 |
|D3 |IO, SCL, IRRx |GPIO5 |
|D4 |IO, SDA, PWM3 |GPIO4 |
|D5 |IO, HSPICLK, ONB_LED, PWM2 |GPIO14 |
|D6 |IO, HSPIMISO |GPIO12 |
|D7 |IO, HSPIMOSI, CTS0 |GPIO13 |
|BGCOLOR(Gray):DIGITAL2 header ピン |BGCOLOR(Gray):ファ...
|D8 |IO, 10k Pull-up |GPIO0 |
|D9 |IO, 10k Pull-up, TX1, ONB_LED2|GPIO2 |
|D10 |IO, 10k Pull-down, HSPICS. RTS0, PWM1|GPIO15 ...
|D11 |IO, MOSI |GPIO13 ...
|D12 |IO, MISO, PWM0 |GPIO12 ...
|D13 |IO, SCK, ONB_LED, IR Tx |GPIO14 ...
|GND |GND |GND ...
|- |- |- ...
|D14 |IO, SDA |GPIO4 ...
|D15 |IO, SCL, IRRx |GPIO5 ...
|BGCOLOR(Gray):ANALOG header ピン |BGCOLOR(Gray):ファ...
|A0 |Analog input, max 3.3V, TOUT |ADC0 |
|- |- |- |
|- |- |- |
|- |- |- |
|- |- |- |
|- |- |- |
|BGCOLOR(Gray):Power header ピン|BGCOLOR(Gray):ファンクシ...
|- |- |- |
|5V |5V |- |
|RESET|RESET |RST |
|3V3 |3.3V |3.3V |
|5V |5V |- |
|GND |GND |GND |
|GND |GND |GND |
|VIN |External Power |- |
''J1 USB Micro B''~
|1|VBUS |
|2|D- |
|3|D+ |
|4|ID |
|5|GND |
|Shell|Shield|
''J2 Power Jack''~
|1|GND|
|2|PWRIN|
|3|GND|
- 全IOピン:割り込み/PWM/I2C/1-wireシリアル対応(D2除く)~
- 全IOピン:''3.3V系''~
- ドライブ電流(ソース・シンク):''12mA''~
ドライブ能力が小さいので注意する。~
- 内臓のプルアップ/プルダウン機能~
GPIOにはCPU内臓のプルアップ/プルダウン機能がある。~
- オンボードLEDはD5(GPIO14)に接続されている~
- CPU Moduleに実装されているLEDはD9(GPIO2)に接続されている~
- D8(GPIO0),D9(GPIO2)は10Kでプルアップされている(ブート...
- D10(GPIO15)は10Kでプルダウンされている(ブートモード選...
- アナログ入力:入力範囲''0〜1V''(220Kと100Kで分圧し100K...
- いくつかのコネクタピンは別のピンと接続されている(Ardui...
** Flash ROMのMemory空間へのマッピング
購入したWeMos D1互換ボード(ESP8266ボード)には,SPIイン...
OTA機能を使う場合はOTA処理時に一時的に受信したプログラム...
Flash ROMの2nd Bootloaderとプログラム領域,パラメーター領...
Espressif社のATコマンドのfirmwareでは,プログラム領域とし...
** 出荷時のfirmware
WeMos D1互換ボード/D1 miniボードというかESP8266が実装され...
PCとWeMos D1互換ボード/D1 miniボードをUSBで接続して,仮想...
この時,シリアルポートのbaudrateは''74880''と変な値になっ...
ets Jan 8 2013,rst cause:2, boot mode:(3,6)
load 0x40100000, len 2592, room 16
tail 0
chksum 0xf3
load 0x3ffe8000, len 764, room 8
tail 4
chksum 0x92
load 0x3ffe82fc, len 676, room 4
tail 0
chksum 0x22
csum 0x22
2nd boot version : 1.7(5d6f877)
SPI Speed : 40MHz
SPI Mode : DIO
SPI Flash Size & Map: 32Mbit(1024KB+1024KB)
jump to run user1 @ 1000
flash_id=0x164068
ret=2147483647
V2
Mo
rf cal sector: 1019
freq trace enable 0
rf[112] : 00
rf[113] : 00
rf[114] : 01
SDK ver: 3.0.6-dev(072755c) compiled @ Apr 6 2023 03:06...
phy ver: 1156_0, pp ver: 10.2
@J剏
''boot mode:(3,6)''と表示される場合の''3''は,通常モード...
bootloaderモードだと''boot mode:(1,6)''と表示され,''1''...
これはブートオプションのbit構成そのまま。~
6はおそらくSPI Flash ROMが32Mbit=4MBだと''6''になるのだと...
その後,''2nd boot version : 1.7(5d6f877)''と表示されるの...
2nd Bootプログラムが,Flash ROMに書き込んだuser1.4096.new...
これで,baudrateが''115200''に変更されて,ATコマンド待ち...
ATコマンドで確認してみる。改行コードはCRLF。~
AT
OK
AT+GMR
AT version:1.7.6.0(Jan 24 2022 08:56:02)
SDK version:3.0.6-dev(072755c)
compile time:May 17 2025 10:10:06
Bin version(Wroom 02):1.7.6
OK
注意することとして,プログラムを作成してオブジェクトをボ...
なので,WeMos D1(ESP8266ボード)を購入したら,firmwareの...
WeMos D1互換ボード購入時にこんなことは知らなかったので,f...
最新バージョンのATコマンドfirmwareに下記のようにしてFlash...
//WiFi通信が出来るか確認してみる。~
//PCで[[NetCat>https://www.google.co.jp/search?q=NetCat+f...
// nc.exe -L -p 1000
// port1000を使った。~
// ESP8266ボードのコンソールでATコマンドを使う。~
// AT+CIPSTART="TCP","192.168.24.201",1000
// CONNECT
// OK
// AT+CIPMODE=1
//
// OK
// AT+CIPSEND
//
// OK
// >
//プロンプト>が表示される。~
//送信してみる。~
// Hello, Yuji!
//NetCatコンソールで受信出来た。~
// Hello, Yuji!
// +++で通信を終了する。~
// +++
*** Flash ROMを読み書きするツール
[[esptool.py>https://github.com/espressif/esptool]]は,ES...
Pythonが使える環境であれば,pipコマンドでインストール出来...
> pip install esptool
インストールできたか確認してみる。~
> esptool
esptool.py v4.8.1
usage: esptool [-h]
[--chip {auto,esp8266,esp32,esp32s2,esp32...
[--port PORT] [--baud BAUD] [--port-filte...
[--before {default_reset,usb_reset,no_res...
[--after {hard_reset,soft_reset,no_reset,...
[--override-vddsdio [{1.8V,1.9V,OFF}]] [-...
{load_ram,dump_mem,read_mem,write_mem,wri...
...
esptool.py v4.8.1 - Espressif chips ROM Bootloader Utility
:
:
と表示されればインストールできている。~
esptoolでボードの情報を確認する。~
> esptool flash_id
搭載しているFlash ROMのサイズなんかが確認出来る。~
ヘルプ表示されないオプションとして以下がある。~
: --flash_freq(-ff) |
SPI Flash frequency: 40m, 26m, 20m, 80m
: --flash_size(-fs) |
SPI Flash size:1MB, 2MB, 4MB, 8MB, 16MB, 256KB, 512KB, 2...
: --flash_mode(-fm) |
SPI Flash mode:qio, qout, dio, dout
*** firmwareをバックアップする
Flash ROMが4MB(32Mbit)の場合は,以下のようにしてバック...
> esptool -c esp8266 -p COMx -b 115200 read_flash 0x0000...
もし,バックアップしたfirmwareに戻したいときは以下のよう...
> esptool -c esp8266 -p COMx -b 115200 write_flash 0x000...
*** バックアップしていない場合でfirmwareを戻す
firmwareを前もってバックアップしていなかった場合,AI-Thin...
Espressif社のfirmwareは,[[ここのGitHub>https://github.co...
ダウンロードしたファイルを任意のディレクトリに解凍する。~
bin\atディレクトリに2種類のMemory Map(512+512,1024+1024...
v2.2.1: SDK version:2.2.1, AT version:1.6.2.0
v3.0.6: SDK version:3.0.6, AT version:1.7.6.0
購入したWeMos D1互換/D1 miniボードだと,SDK v2.2.1の512+5...
SDK v3.0以降のバージョンも提供されているが,WeMos D1互換/...
しょうがないので自分で4MB用にビルドし直して&ref(esp8266_n...
以下のようにして書き込んだ。~
v2.2.1 4MB(512KB+512KB)~
> esptool -c esp8266 -p COMx -b 115200 write_flash -fs 4...
v2.2.1 4MB-c1(1024KB+1024KB)~
> esptool -c esp8266 -p COMx -b 115200 write_flash -fs 4...
v3.0.6 4MB-c1(1024KB+1024KB) 自前ビルド~
> esptool -c esp8266 -p COMx -b 115200 write_flash -fs 4...
esp_init_data_default_v08.binには,WLANのSTA/APモードそれ...
本来これらの設定はボード事に設定しなくてはいけないので,...
Ai-Thinker社からリリースされているfirmwareは&ref(AiThinke...
SDK version:1.5.4, AT version:1.1.0
とEspressif社のものより古いバージョンみたいだ。~
> esptool -c esp8266 -p COMx -b 115200 write_flash -fs 4...
* ソフトウェア開発環境
このWeMos D1互換ボード/D1 miniボードのソフトウェア開発環...
ボード自体にPythonやLuaなどのインタープリター言語のランタ...
- [[MicroPython>https://micropython.org]]~
MicroPythonはPython 3互換のランタイム環境。~
[[MicroPythonのダウンロードページ>http://micropython.org/...
電源OnするとすぐPythonが使用でき,昔のBasicマシンのような...
- [[NodeMCU>https://www.nodemcu.com/index_en.html]]~
NodeMCUは,[[Lua>https://ja.wikipedia.org/wiki/Lua]]ベー...
これを書き込んで出荷している製品に,[[NodeMCU Development...
WeMos D1の小型版ボードの[[WeMos D1 mini>https://www.wemos...
[[ESPlorer>https://github.com/4refr0nt/ESPlorer]]という統...
電源Onするとすぐ使用でき,昔のBasicマシンのような使い勝手...
- [[Arduino IDE>https://www.arduino.cc/en/software/]]~
Ardduino Unoなどで使用するArduino IDEがESP8266ボードのプ...
ボードマネージャーでハードウェアパッケージをインストール...
Arduinoボードでプログラム開発するのと同じ手順で,ESP8266...
- [[PlatformIO IDE>https://platformio.org/platformio-ide]]~
platform IDEはESP8266のプログラムを開発する時に無料で使用...
フレームワークとしてArduino Frameworkが使用できるみたいで...
Arduino IDEでプログラム開発するのと同じ感覚で,ESP8266の...
- [[ESP8266_RTOS_SDK>https://github.com/espressif/ESP8266...
WeMos D1に使われているSoCのメーカー[[Espressif Systems>ht...
ESP8266ボードでRTOSを動かし,その環境下で動作するプログラ...
プログラムをビルドするための[[ToolChain>https://docs.espr...
これ以外の開発環境もあるようだ。~
** 仮想COMドライバーのインストール
WeMOs D1互換ボードは,中華製CH340がUSB-Serialコンバーター...
このCH340用のデバイスドライバーのインストールが必要。~
Windows10以降ではPlug&Playで自動的にインストールされるよ...
なので,Windows 7やPlug&Playでデバイスドライバーがインス...
** Arduino IDE
Arduino IDEは[[こちらのページ>/開発/AVR/Arduino#l10a36d2]...
*** ハードウェアパッケージのインストール
ハードウェアパッケージをインストールする方法は,Arduino I...
- Arduino IDEのボードマネージャーを使用する場合~
Arduino IDEを起動し,ファイル>環境設定>追加のボードマネー...
http://arduino.esp8266.com/stable/package_esp8266com_ind...
を追加する。~
~
ツール>ボード>ボードマネージャーから''esp8266 by ESP8266 ...
~
インストールが終了したら,Arduino IDEを再起動する。~
- パッケージをダウンロードしてインストールする場合~
https://github.com/wemos/Arduino_D1.gitが消滅?しているの...
> cd <arduino IDEインストール>\hardware
> md esp8266com
> cd esp8266com
> git clone https://github.com/esp8266/Arduino.git esp8266
~
これで,以下のようなディレクトリ構成になる。
─┬ Arduino
└─┬ hardware
└─┬ esp8266com
└─┬ esp8266
├── bootloaders
├── cores
├── doc
├── libraries
├── package
├── tests
├── tools
├── variants
├── platform.txt
├── programmers.txt
├── README.md
├── boards.txt
├── LICENSE
バイナリツールをダウンロード(要Python2.7)~
> cd esp8266/tools
> python get.py
Arduino IDEを再起動する。~
*** ボードの設定
上記のようにしてハードウェアパッケージがインストールでき...
- ボード~
WeMos D1 R2&miniを選択した。~
- CPU周波数~
80MHzが標準クロックだが,O.C.で160MHzでも動作する場合があ...
80MHzを選択した。~
- Flashサイズ~
4M(FS:2MB OTA:~1019KB)を選択してみた。~
この設定の場合,プログラムなどに使えるFlash ROMのサイズは...
4M(FS:3MB OTA:~512KB)を選択すると,プログラム用に512KBに...
- アップロードスピード~
921600bpsを選択する。うまくいかない場合は,115200bpsにす...
- LWIP Variant~
Networkスタックの機能を選択する。~
TCPのMSSを設定できるようだ。Higher Bandwidh(MSS=1460, IPv...
Lower Memoryに設定するとMSS=536, IPv6=offになる。~
no featuresにすると以下の設定(RAM使用がセーブできる)に...
-- IP Forwarding/NATを使わない。~
-- AutoIP(192.254.x.x)を使わない。~
-- IPフラグメンテーションと再構成なし。~
-- Selective ACKなし。~
-- listen backlogなし。~
- シリアルポート~
PCに認識されたCOMxポートを選択する。~
他の設定はそのまま。
*** ArduinoOTA
Arduino IDEを使ってESP8266のボード用のプログラムを作成し...
プログラム作成時はこれで問題無いが,機器として設置した後...
こんな時,ESP8266ボードの無線LANを使ってPCと接続しプログ...
このような機能をOTA(Over The Air)と呼んでいるようで,市...
Arduino IDEでボードマネージャーを使ってESP8266ボードを使...
ArduinoOTAは以下の手順でプログラムを更新する。~
- ESP8266ボードのユーザープログラムのOTA機能で,無線LANに...
- Arduino IDEから無線LANを使ってプログラムを送信する。~
- ボードで無線LANを使ってプログラムを受信して,Flash ROM...
このためOTA対応にすると,プログラムサイズの2倍のFlash ROM...
空きエリアに書き込んだOTA対応プログラムを起動するようにRe...
- ボードをResetする。
- OTA対応プログラムが,プログラムをFlash ROMの先頭に移動...
- ボードをResetする。~
- ユーザープログラムが再度起動する。~
このような仕組みなので,更新するプログラムは常にOTA対応コ...
また,更新プログラムをダウンロードして一時保存するためのF...
ArduinoOTAの機能設定は以下のようになっている。~
- Port番号の設定~
デフォルトのPortは8266番。~
- アップロードする時のESP8266ボードのホスト名の設定~
デフォルトは,ESP8266のチップIDになる。~
- アップロード時のパスワード設定~
- アップロード開始・終了・アップロード中・エラー時のコー...
''OTA対応のLED点滅プログラムの例''~
おなじみのLED点滅プログラムをOTA対応にしてみた。~
#code(c,,nonumber,Blink.ino)
Arduino IDEを再起動すると,ボードのシリアルポートの設定に...
これで,プログラムを変更してプログラムの更新をする時に,...
*** WatchDog Timerの注意
ESP8266のボードには内蔵WDT(WatchDog Timer)がある。~
これは,プログラムが暴走した時などに強制的にResetをかける...
Arduino IDEを使う場合,frameworkの以下のタイミングでWDTの...
- loop()の終了・再呼出時~
- delay()の実行時~
- yield()の実行時~
WDTが''6秒''に相当するカウント値を超えてしまうとCPUを強制...
ただし,delayMicroseconds()ではWDTを叩かないので,この目...
WDTはハードウェアで実装されているのだが,動作しないように...
I/Oアドレス0x60000900を0にすると,WDTの動作を停止すること...
//void hw_wdt_disable(){
// *((volatile uint32_t*) 0x60000900) &= ~(1); ...
//}
//
//void hw_wdt_enable(){
// *((volatile uint32_t*) 0x60000900) |= 1; ...
//}
** Platform IDE
[[PlatformIO IDE>https://platformio.org/]]は,ATMEL AVRや...
各CPU用のフレームワークに対応していて,ESP82666の場合Ardu...
またフレームワークは,Arduino IDEとほぼ同じ物が使われてい...
Microsoft製のテキストエディターVisual Studio Codeの拡張機...
またデバッグ機能が搭載されていて,CPUによってはデバッグす...
また,PlatformIO CoreというCLIツールをEclipseやCodeBlocks...
[[こちらのページ>/開発/AVR/開発環境/PlatformIO]]のように...
** ESP8266_RTOS_SDK/ESP8266_NONOS_SDK
SoCメーカーの[[Espressif Systems社>https://www.espressif....
スタンドアローンのプログラム開発の場合は,ESP8266_NONOS_S...
上記のGitHubからダウンロードできる。
> md esp8266
> cd ~/esp8266
> git clone https://github.com/espressif/ESP8266_NONOS_S...
//環境変数を設定する。~
// IDF_PATH=<HOME>\esp8266\ESP8266_RTOS_SDK
また,ESP8266_NONOS_SDKを使ってプログラムをビルドするには...
Espressif社が提供している[[toolchain>https://docs.espress...
C:\espgcc\esp8266
実行PATHに,C:\espgcc\esp8266\xtensa-lx106-elf\binを追加...
[[SysPPROGS>https://sysprogs.com/]]が提供している[[toolch...
こちらを使う場合は,''esp8266-gcc8.4.0.exe''をダウンロー...
** MicroPython
MicroPythonは,マイクロコントローラーで動作するPython 3互...
マイクロコントローラーをリセット後すぐにPythonが動作する...
MicroPythonはESP8266チップをサポートしているので,MicroPy...
ダウンロードは,[[こちら>https://micropython.org/download...
ボードにMicroPythonを書き込むためにesptoolが必要なのでPC...
> pip install esptool
MicroPythonをボードに書き込む。~
> esptool -p COMx erase_flash
> esptool -p COMx write_flash --flash_size=detect 0x0000...
PCとボードをUSBケーブルで接続しPuTTY等で接続する。~
- baudrateは115200~
- 改行はCR~
ボードをResetする。そうすると,対話型Pythonで操作できる。~
MicroPython v1.19.1 on 2022-06-18; ESP module with ESP8266
Type "help()" for more information.
>>> print("Hello Yuji Ueno")
Hello Yuji Ueno
>>>
となれば動作している。
*** 無線LANを使って接続する
WebREPLを使用すると無線LANで通信できる。~
作成したプログラムをボードにアップロードしたりダウンロー...
上記のシリアルポートで接続して,~
>>> import webrepl_setup
とする。いくつか質問されるので,''E''と任意のPassを設定し...
一度ボードをResetして,さらに
>>> import network
>>> sta = network.WLAN(network.STA_IF)
>>> sta.active(True)
>>> sta.scan()
>>> sta.connect('<SSID>', '<PASS>')
>>> while not sta.isconnected() :
time.sleep(0.1)
>>> conf = sta.ifconfig()
>>> print(conf)
これでボードのIP Addressがわかる。
PCに[[WebREPLコンソール>https://github.com/micropython/we...
> git clone https://github.com/micropython/webrepl.git
webreplディレクトリにあるwebrepl.htmlをダブルクリックする...
これで無線LANで接続して,操作することが出来る。~
ボードがResetした後に自動的にWLAN接続できるように''boot.p...
#code(python,,nonumber){{
import network
import webrepl
import utime
sta = network.WLAN(network.STA_IF)
sta.active(True)
sta.connect('<SSID>', '<PASS>')
start_time = utime.time()
while utime.time() - start_time < 10:
if sta.isconnected():
print("connect")
webrepl.start()
break
else:
print("Timeout")
sta.active(False)
ap = network.WLAN(network.AP_IF)
ap.active(True)
webrepl.start()
}}
WebREPLコンソールの右にあるsend a fileでboot.pyを指定して...
これで,最初からWLAN接続できるようになった。~
* スマートスピーカーと連携させる
** Google home mini
スケッチ>Include Library>Manage Libraries...で空欄にgoog...
esp8266-google-home-notifier 1.0.6とesp8266-google-home-t...
これでWeMos D1ボードからGoogle home miniにしゃべらせるこ...
** Amazon Alexa
https://github.com/witnessmenow/esp8266-alexa-wemo-emulat...
スケッチ>Include Library>Add ZIP Libraries...>esp8266-al...
これでWeMos D1ボードから,IFTTTを使わなくても家の電気をつ...
** IFTTTと連携
WeMos D1ボードとIFTTTとの連動は,[[ESP8266IFTTT>https://g...
zipファイルをダウンロードする。
スケッチ>Include Library>Add ZIP Libraries...>ESP8266IFTT...
ESP8266IFTTTのスケッチの例
// ヘッダー
#include <ESP8266IFTTT.h>
// IFTTT_WEBHOOK_NAMEのところにIFTTT Webhook's name,IFT...
// IFTTT Webhook api keyは,IFTTT>My Applets>Web Hooks>W...
// もしトリガーだけなら・・・
IFTTT.trigger(IFTTT_WEBHOOK_NAME, IFTTT_KEY);
// もしvalueがあれば・・・(但しvalueは文字列に限る。)
IFTTT.trigger(IFTTT_WEBHOOK_NAME, IFTTT_KEY, value1, val...
これで準備完了。~
ファイル>スケッチの例 から,いろいろ試すことが出来る。
Google home miniやAlexaから,IFTTTを使って家の電気をつけ...
ページ名:
Counter: 0, today: 0, yesterday: 0
Copyright©2008 Yuji Ueno All Rights Reserved.
ログイン
ユーザ名:
パスワード:
IDとパスワードを記憶
パスワード紛失
メインメニュー
ホーム
でぶlog
資料室
最新ページ一覧
全ページ一覧
ヘルプ
フォーラム
お問い合わせ