部品実験:Processor 元に戻る

ESP-8266MOD miniの注意事項 2024/7/16

本文目次

本文以外目次
0.使えない!技適取得していなかった!
1.ピン番号が違う(プログラムが動作しない)
2.電源を入れる時I/Oが動作
3.プログラム書込み中のI/Oの動き
4.端子に出ていないI/OとD4端子
1.ArduinoIDEでESP12Fを使う準備
2.ArduinoIDEをインストールする。
3.Arduino日本語リファレンス。


本   文
0.使えない!技適取得していなかった!

 今取り組んでいる遠隔監視装置に使用できない! どうすれば良いのか??トホホ
  取り組んでいる
   取遠隔監視システムは ここをクリック
   RaspberryPiの実験は ここをクリック

(1)購入から今まで技適を取得している12Fを購入したと思っていた!
 購入のサイトの画像

 ・商品販売文字にはESP-12Fと記載が有った。
  ★12Fも開発出来ると言う意味で記載されているのを誤解した。
  ★実際はESP8266MODだった。(販売の写真をよく見ると12Fではない!)
 ・技適と思ってしまった技適によく似たマークがついていた!  
技適について調べて見るとマークが違う。
なお電波法が改正され、2019年11月20日より技適マークがない機器でも実験的に国内で利用することができるようになったようですが・・手続きをしてまで使用するのか?
技適取得済みのWROOM-32のマークと比較すると違っている。
12FでなくESP8266MOD WROOM-32

 遠隔監視装置の構成変更が必要!
 とほほ・・・


1.ピン番号が違う(プログラムが動作しない)
 開発用ボードをパソコンと接続してPinNoを入れてプログラムしたところ動作しない なぜ??????
 例えばI2Cのプロトコルをプログラムで初期化するための関数Wire.begin(x,y)だが、このx、yはSDA、SCLのピン番号を指定するのだが
 SDA を D4Pin に接続 > プログラム指定No = 4
 SCL を D5Pin に接続 > プログラム指定No = 5
と思って下記の様に記入した。
 Wire.begin(4,5); //PinNo=SDA,SCL
 これが動作しなかった。
 D番号との関係を調べてみると下記の様に D1≠1 で
 D4Pinは2、D5Pinは14で書き方は Wire.begin(2,14); でした。

 最初にプログラムで書いたWire.begin(4,5); は D2Pin,D1Pin なので動作しないのはあたりまえでした!

 プリント基板に記載のPinNoとプログラムのPin番号対応表
PinNo プログラムPinNo 備  考
D1 5 D1  
D2 4 D2  
D3 0 D3  
D4 2 D4 LED (Hi=消灯 Lo=点灯) ※4.・・D4端子参照
D0 16 D0  
D5 14 D5  
D6 12 D6  
D7 13 D7  
D8 15 D8  
[目次に戻る]


2.電源を入れる時I/Oが動作
電源入れたときに入力設定のI/Oから電圧が出たので、調査してみた。
[5V]以外の全端子にロジックアナライザの端子を接続した。
予め下記のプログラムを入れて、電源を入れた。
    写真はテスト状況です。
    
   a.D1,D2以外は電源を入れてから200ms以内ではあるが不必要な信号を出している。
 b.D3については約900ms後に異常信号が出ている。
 c,D3,D4は電源を入れた後異常なHi出力されている。

 異常信号を発生する端子には異常な動作をしないように対策する必要がある。
 例えばその端子にリレーを接続し、家電の電源を入り切りした場合には、ESP-8266の電源を入れると瞬間入る又は切れる事になる。その時間が約200msであり、誘導性の負荷(モータ)の場合には異常電圧を発生し寿命の低下をまねくと思われ、なにかしらの対応が必要と思う。
 特にD3とD4については入力設定の場合電圧が継続して発生するため、入力端子として使用できないと思われる。

ではD3、D4端子の対応を考えるため、次に全端子を出力端子にした場合を確認する。

(2)全端子を出力端子に設定した場合に電源を入れるとどうなるか確認した。

2.(1)a.項と同じD1,D2以外の端子は電源を入れてから約200ms間異常信号を出力している。
2.(1)のb.c.項の様な異常信号は出ていない。

この事からD3,D4端子を入力端子にする場合は一旦出力端子としてから入力に設定する必要がある事が判った。
[目次に戻る]


3.プログラム書込み中のI/Oの動き
(1)全てのデジタルI/OをOUTPUTにするプログラムの書込み中の動作
プログラムの書込みは2.(2)のpinModeを全てOUTPUTにする物を書き込みました。
以下の様にディジタルI/OについてはD1,D2以外なにがしかの電圧が発生するので、プログラムを書込み中でも外部インターフェースを接続したままにする場合はESP-8266のI/Oに電圧が発生しても支障無い様にする必要があります。


(2)全てのデジタルI/OをD4だけINPUTにするプログラムの書込み中の動作
先の(1)の状態からD4だけINPUTにするプログラムを書き込みました。
D4の動作はプログラムを書き終えた後Hi状態になっている。


(3)D4だけINPUTになっているもので電源を入りにした場合
  D4だけHiになっている。

[目次に戻る]


4.端子に出ていないI/OとD4端子
(1)D1 mini とESP-12Fの端子比較
D1 Mini ESP-12F
D1miniにはESP-8266のPinNo9~14が無い。

D1miniに出ていない端子が使用できるか確認したところGPIO10が使用できそうだ。
ただし電源を入れた時に瞬間ピンの電圧がLo→Hi→Loになる事が判った。
他のピンについても同様に電源を入れた時に異常な電圧が出ている。
2.電源を入れる時I/Oが動作」を参照

(2)12Fの内部回路調査
「2.電源を入れる時I/Oが動作」および「3.プログラム書込み中のI/Oの動き」で異常な信号を出すピンが有ったので、なぜそうなるか再び回路など調べてみた。
結果 12Fのデータシートに内部回路が有り、D4(GPIO02)にLEDの回路が入っていた。
D4ピンについてはピンモードを入力にするとHi信号が出る事が判った。
ただしD3回路についてはいまだ不明。
以上から「(3)D1miniピン一覧」についても見直しをした。

12Fの内部回路


(3)D1mini ピン一覧表
 12F内部回路が判ったので表を見直しした。
 項目[moniter_MOD_2のI/O]は遠隔監視装置のPin使用目的内容だったが、この項目もいずれは見直したい。
D1 mini 12F EXP8266EX PgNo moniter_MOD_2のI/O Function
RST RST ERXT_RSTB Reset Modul
D3 GPIO0 GPIO0- 0 I2C SCL GPIO0
D4 GPIO2 GPIO02-
VDD-LED1-R470-
2 I2C SDA GPIO2; UART1_TXD
D2 GPIO4 GPIO4- 4 DS18S20 GPIO4
D1 GPIO5 GPIO5- 5 J4 インバータ電圧有 GPIO5
D6 GPIO12 MTD1- 12 J1 KWS_AC301 TX GPIO12; HSPI_MISO
D7 GPIO13 MTCK- 13 J1 KWS_AC301 RX GPIO13; HSPI_MOSI; UART0_CTS
D5 GPIO14 MTMS- 14 Ry K210 GPIO14; HSPI_CLK
D8 GPIO15 MTDO- 15 J2 ATS_11KW 電源切替状況 GPIO15; MTD0; HSPICS; UART0_RTS
D0 GPIO16 XPD_DCDC- 16 Ry K200 GPIO16; can be used to wake up the chipset from deep sleep mode
TXD UTXD U0TXD- UART0_RXD; GPIO3
RXD URXD U0RXD- UART0_TXD; GPIO1
A0 ADC TOUT- J3 conversion result. Input voltage range 0~1V, value range: 0~1024

下記Pinについてはデータシートにjは Note: pins in red box are not available (赤枠内のピンは使用できません)と記載が有った。
SD_CM- DCS0
SD_D0- MISO
SD_DATA_2-
25Q32 nHOLD/IO3-
GPIO9
SD_DATA_3- GPIO10
SD_D1- MOSI
SD_CLK- SCLK
[目次に戻る]