上野家のホームページ
ナーマル,マリン,ココ
[
新規
|
一覧
|
検索
|
最新
|
ヘルプ
]
開発/WeMos D1
をテンプレートにして作成
資料室
開発/WeMos D1 をテンプレートにして作成
[
差分
|
バックアップ
|
リロード
]
[ ]
開始行:
* WeMos D1
WeMos D1((改良版はWeMos D1 R2))は,[[中国WEMOS社>https://...
このWeMos D1の互換ボードの[[HiLetgo OTA WeMos D1 CH340 Wi...
&ref(HiLetgo_D1.png,,50%);~
SoCに[[Espressif Systems社>https://www.espressif.com/]]の...
#ref(esp8266.png,,30%)
ホストPCとはUSBで接続して仮想シリアルポートとして機能する...
以下のような特徴がある。~
- CPUチップにWifi機能を統合~
- 動作温度が広い~
ー40°C~+125°Cに対応。
- 160MHzのシステムクロックで高速動作~
- 4MB Flash Memoryの搭載~
- 11個のデジタル入出力ピン~
すべてのピンは,割り込み/PWM/I2C/1線式シリアルをサポート...
- 10bit ADC x 1~
- WDT内蔵~
- MicroUSBコネクタ~
- 電源入力ジャック DC9-24V~
- Arduino互換
- nodemcu互換
WeMos D1クローンボードの[[HiLetgo OTA WeMos D1>http://www...
AI-Thinker製ESP-12Fは技術基準適合しているようなので,HiLe...
* スペック
|CPU |ESP-8266EX(Cadence Tensilica L106 32...
|CPU Module |AI-Thinker ESP-12F|
|クロックスピード |80MHz/160MHz|
|WLAN |IEEE 802.11 b/g/n, RTOS/Wifi stack内蔵|
|命令/データ |64KB SRAM/96KB DRAM|
|Flash Memory |4MB|
|ボード動作電圧 |DC 3.3V|
|デジタルI/O |11(SPI, I2C, I2S)|
|アナログ入力 |1 (10bit)|
|電源 |Jack 9-24VDC/USB MicroB|
|サイズ |68.6mm x 53.4mm(Arduino Unoと同サイ...
|重量 |25g|
#lsx
* コネクタ
WeMos D1ボードのコネクタ。~
|BGCOLOR(Gray):DIGITAL1 headerピン|BGCOLOR(Gray):ファンク...
|RX |RXD, IO |GPIO3/RXD |
|TX |TXD, IO |GPIO1/TXD |
|D2 |IO(no interrupt/no PWM), WAKE|GPIO16 |
|D3 |IO, SCL |GPIO5 |
|D4 |IO, SDA |GPIO4 |
|D5 |IO, SCK, ONB_LED |GPIO14 |
|D6 |IO, MISO |GPIO12 |
|D7 |IO, MOSI |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, SS |GPIO15 |
|D11 |IO, MOSI |GPIO13 |
|D12 |IO, MISO |GPIO12 |
|D13 |IO, SCK, ONB_LED |GPIO14 |
|GND |GND |GND |
|- |- |- |
|D14 |IO, SDA |GPIO4 |
|D15 |IO, SCL |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~
- オンボードLEDはD5(GPIO14)に接続されている~
- SoCモジュールのオンボードLEDは,D9=2に接続されている。~
- D8(GPIO0),D9(GPIO2)は10Kでプルアップされている~
- D10(GPIO15)は10Kでプルダウンされている~
- アナログ入力:入力範囲0〜1V(220Kと100Kで分圧し100K側で...
- いくつかのコネクタピンは別のピンと接続されている(Ardui...
* ソフトウェア
このボードのソフトウェア開発にはいくつかの環境が利用でき...
- Arduino IDE~
Ardduino Unoなどで使用するArduino IDEが開発環境に使用でき...
ボードマネージャーでハードウェアパッケージをインストール...
- ESP8266_RTOS_SDK~
SoCメーカーのEspressif Systems社からリリースされている開...
ビルドするためのToolChainも用意されている。~
- MicroPython~
MicroPythonはPython 3互換とランタイム環境。~
[[MicroPythonのダウンロードページ>http://micropython.org/...
昔のBasicマシンのような使い勝手。
//- NodeMCU~
//Lua(Node.jsに似ている)ベースとそのランタイム環境。~
これ以外にも多くの開発環境がある。
** 仮想COMドライバーのインストール
中華製CH340のデバイスドライバーのインストールが必要。Wind...
Windows 7や標準ドライバーが入っていない場合は,この&ref(c...
** Arduino IDE
Arduino IDEは,[[こちらのページ>/開発/AVR/Arduino]]のよう...
*** ハードウェアパッケージのインストール
ハードウェアパッケージをインストールする方法は2通りある。~
gitを使う方法と Arduino IDEのマネージャーを使用する方法。
- gitを使用する場合~
> cd <arduino IDEインストール>\hardware
> md esp8266com
> cd esp8266com
> git clone https://github.com/esp8266/Arduino.git esp8266
https://github.com/wemos/Arduino_D1.git が消滅しているの...
~
これで,以下のようなディレクトリ構成になる。
─┬ 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を再起動する。~
- Arduino IDEのボードマネージャーを使用する場合
Arduino IDEを起動し,ファイル>環境設定>追加のボードマネー...
http://arduino.esp8266.com/stable/package_esp8266com_ind...
を,追加する。~
~
ツール>ボード>ボードマネージャーから,「esp8266 by ESP826...
~
インストールが終了したら,Arduino IDEを再起動する。~
*** ボードの設定
ハードウェアパッケージがインストールできたら,Wemos D1ボ...
- ボード~
WeMos D1 R1を選択する。~
- CPU周波数~
80MHzまたは160MHz(どちらでもOK)~
- Flashサイズ~
4M(FS:2MB OTA:~1019KB)を選択する。~
4M(FS:3MB OTA:~512KB)にすると,プログラムエリアを3MBに出...
- アップロードスピード~
921600bpsを選択する。(うまくいかない場合は,115200bpsに...
- LWIP Variant~
V1.4 Higher Bandwidhを選択する。~
- シリアルポート~
接続されたCOMxを選択する。~
** ESP8266_RTOS_SDK
SoCメーカーの[[Espressif Systems社>https://www.espressif....
ダウンロードは,上記のGitHubからダウンロードできる。
また,このESP8266_RTOS_SDKをビルドするには,[[Windows用の...
> cd ~/esp
> git clone https://github.com/espressif/ESP8266_RTOS_SD...
環境変数を設定する。~
IDF_PATH=<HOME>\esp\ESP8266_RTOS_SDK
** MicroPython
MicroPythonは,マイクロコントローラーで動作するPython 3互...
マイクロコントローラーをリセット後すぐにPythonが動作する...
MicroPythonはESP8266チップをサポートしているので,MicroPy...
ダウンロードは,[[こちら>https://micropython.org/download...
ボードにMicroPythonを書き込むためにesptoolが必要なのでPC...
> pip install esptool
MicroPythonをボードに書き込む。~
> esptool.py --port COMx erase_flash
> esptool.py --port COMx write_flash --flash_size=detect...
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){{
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のスケッチの例
//スケッチの冒頭に一行入れます。小文字のESP8266Ifttt.hだ...
#include <ESP8266IFTTT.h>
/*IFTTT_WEBHOOK_NAMEのところにIFTTT Webhook's nameを、IF...
IFTTT Webhook api keyはIFTTT>My Applets>Web Hooks>Web...
//もしトリガーだけなら・・・
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://...
このWeMos D1の互換ボードの[[HiLetgo OTA WeMos D1 CH340 Wi...
&ref(HiLetgo_D1.png,,50%);~
SoCに[[Espressif Systems社>https://www.espressif.com/]]の...
#ref(esp8266.png,,30%)
ホストPCとはUSBで接続して仮想シリアルポートとして機能する...
以下のような特徴がある。~
- CPUチップにWifi機能を統合~
- 動作温度が広い~
ー40°C~+125°Cに対応。
- 160MHzのシステムクロックで高速動作~
- 4MB Flash Memoryの搭載~
- 11個のデジタル入出力ピン~
すべてのピンは,割り込み/PWM/I2C/1線式シリアルをサポート...
- 10bit ADC x 1~
- WDT内蔵~
- MicroUSBコネクタ~
- 電源入力ジャック DC9-24V~
- Arduino互換
- nodemcu互換
WeMos D1クローンボードの[[HiLetgo OTA WeMos D1>http://www...
AI-Thinker製ESP-12Fは技術基準適合しているようなので,HiLe...
* スペック
|CPU |ESP-8266EX(Cadence Tensilica L106 32...
|CPU Module |AI-Thinker ESP-12F|
|クロックスピード |80MHz/160MHz|
|WLAN |IEEE 802.11 b/g/n, RTOS/Wifi stack内蔵|
|命令/データ |64KB SRAM/96KB DRAM|
|Flash Memory |4MB|
|ボード動作電圧 |DC 3.3V|
|デジタルI/O |11(SPI, I2C, I2S)|
|アナログ入力 |1 (10bit)|
|電源 |Jack 9-24VDC/USB MicroB|
|サイズ |68.6mm x 53.4mm(Arduino Unoと同サイ...
|重量 |25g|
#lsx
* コネクタ
WeMos D1ボードのコネクタ。~
|BGCOLOR(Gray):DIGITAL1 headerピン|BGCOLOR(Gray):ファンク...
|RX |RXD, IO |GPIO3/RXD |
|TX |TXD, IO |GPIO1/TXD |
|D2 |IO(no interrupt/no PWM), WAKE|GPIO16 |
|D3 |IO, SCL |GPIO5 |
|D4 |IO, SDA |GPIO4 |
|D5 |IO, SCK, ONB_LED |GPIO14 |
|D6 |IO, MISO |GPIO12 |
|D7 |IO, MOSI |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, SS |GPIO15 |
|D11 |IO, MOSI |GPIO13 |
|D12 |IO, MISO |GPIO12 |
|D13 |IO, SCK, ONB_LED |GPIO14 |
|GND |GND |GND |
|- |- |- |
|D14 |IO, SDA |GPIO4 |
|D15 |IO, SCL |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~
- オンボードLEDはD5(GPIO14)に接続されている~
- SoCモジュールのオンボードLEDは,D9=2に接続されている。~
- D8(GPIO0),D9(GPIO2)は10Kでプルアップされている~
- D10(GPIO15)は10Kでプルダウンされている~
- アナログ入力:入力範囲0〜1V(220Kと100Kで分圧し100K側で...
- いくつかのコネクタピンは別のピンと接続されている(Ardui...
* ソフトウェア
このボードのソフトウェア開発にはいくつかの環境が利用でき...
- Arduino IDE~
Ardduino Unoなどで使用するArduino IDEが開発環境に使用でき...
ボードマネージャーでハードウェアパッケージをインストール...
- ESP8266_RTOS_SDK~
SoCメーカーのEspressif Systems社からリリースされている開...
ビルドするためのToolChainも用意されている。~
- MicroPython~
MicroPythonはPython 3互換とランタイム環境。~
[[MicroPythonのダウンロードページ>http://micropython.org/...
昔のBasicマシンのような使い勝手。
//- NodeMCU~
//Lua(Node.jsに似ている)ベースとそのランタイム環境。~
これ以外にも多くの開発環境がある。
** 仮想COMドライバーのインストール
中華製CH340のデバイスドライバーのインストールが必要。Wind...
Windows 7や標準ドライバーが入っていない場合は,この&ref(c...
** Arduino IDE
Arduino IDEは,[[こちらのページ>/開発/AVR/Arduino]]のよう...
*** ハードウェアパッケージのインストール
ハードウェアパッケージをインストールする方法は2通りある。~
gitを使う方法と Arduino IDEのマネージャーを使用する方法。
- gitを使用する場合~
> cd <arduino IDEインストール>\hardware
> md esp8266com
> cd esp8266com
> git clone https://github.com/esp8266/Arduino.git esp8266
https://github.com/wemos/Arduino_D1.git が消滅しているの...
~
これで,以下のようなディレクトリ構成になる。
─┬ 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を再起動する。~
- Arduino IDEのボードマネージャーを使用する場合
Arduino IDEを起動し,ファイル>環境設定>追加のボードマネー...
http://arduino.esp8266.com/stable/package_esp8266com_ind...
を,追加する。~
~
ツール>ボード>ボードマネージャーから,「esp8266 by ESP826...
~
インストールが終了したら,Arduino IDEを再起動する。~
*** ボードの設定
ハードウェアパッケージがインストールできたら,Wemos D1ボ...
- ボード~
WeMos D1 R1を選択する。~
- CPU周波数~
80MHzまたは160MHz(どちらでもOK)~
- Flashサイズ~
4M(FS:2MB OTA:~1019KB)を選択する。~
4M(FS:3MB OTA:~512KB)にすると,プログラムエリアを3MBに出...
- アップロードスピード~
921600bpsを選択する。(うまくいかない場合は,115200bpsに...
- LWIP Variant~
V1.4 Higher Bandwidhを選択する。~
- シリアルポート~
接続されたCOMxを選択する。~
** ESP8266_RTOS_SDK
SoCメーカーの[[Espressif Systems社>https://www.espressif....
ダウンロードは,上記のGitHubからダウンロードできる。
また,このESP8266_RTOS_SDKをビルドするには,[[Windows用の...
> cd ~/esp
> git clone https://github.com/espressif/ESP8266_RTOS_SD...
環境変数を設定する。~
IDF_PATH=<HOME>\esp\ESP8266_RTOS_SDK
** MicroPython
MicroPythonは,マイクロコントローラーで動作するPython 3互...
マイクロコントローラーをリセット後すぐにPythonが動作する...
MicroPythonはESP8266チップをサポートしているので,MicroPy...
ダウンロードは,[[こちら>https://micropython.org/download...
ボードにMicroPythonを書き込むためにesptoolが必要なのでPC...
> pip install esptool
MicroPythonをボードに書き込む。~
> esptool.py --port COMx erase_flash
> esptool.py --port COMx write_flash --flash_size=detect...
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){{
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のスケッチの例
//スケッチの冒頭に一行入れます。小文字のESP8266Ifttt.hだ...
#include <ESP8266IFTTT.h>
/*IFTTT_WEBHOOK_NAMEのところにIFTTT Webhook's nameを、IF...
IFTTT Webhook api keyはIFTTT>My Applets>Web Hooks>Web...
//もしトリガーだけなら・・・
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
資料室
最新ページ一覧
全ページ一覧
ヘルプ
フォーラム
お問い合わせ