2024年4月2日火曜日

ESP WROOM-02(ESP8266) うごいたよ(Lチカ)(2)

さきほど部品箱から発掘したWROOM-02というESP8266の電波moduleを動かしました.
LEDチカですけど.

秋月で買ったものです.

moduleに外付けた回路はこれです.
IO15,IO2,IO0がBOOT制御をするピン.
IO0をGNDに落とすと、UART経由の焼きモードになる.
IO0をHIGHに吊ると、FLASH起動になる.
IO0をGNDにしてresetすると、UART焼きをwaitしつづける.

ENピンはHIGHにしないとpower saveになってしまうみたいよ.

RST SWをつけるかどうかは好き好きですが、焼く時にresetが必要でしょう.

moduleの電源は3.3Vです.
FT232内蔵のLDOで足りるかなと思ったのですが、ダメみたい.
moduleの最大消費が170mAあるとdatasheetに書いてありますが、FT232の3.3Vはmax 50mAなので足りません.残念です.

IDEはArduinoIDEを使えますが、ArduinoIDEにES8266用の設定をしないといけません.
 http://arduino.esp8266.com/stable/package_esp8266com_index.json
のところをやる必要があります.
その後にBoardを「generic ESP8266 module」にしてやればあとは通常の使い方です.

LEDチカのsourceです.GPIO04にLEDをつけます.
#define LED 4

void setup() {
  pinMode(LED, OUTPUT);
  digitalWrite(LED, HIGH);

  Serial.begin( 115200 );
  Serial.print( "\nWROOM-02 LED blink\n");
}

void loop() {
  digitalWrite(LED, LOW);
  delay(500);
  digitalWrite(LED, HIGH);
  delay(500);
}

このmoduleは起動時にSerialに何らかのバイナリを撃つようで、文字化けして読めません.
でもバイナリ化けを通過すると”WROOM-02 LED blink”の文字が表示されるようになります.
バイナリではなくて、74880bpsという風変わりなbaud rateで起動messageを出すのが真相でした.

ArduinoIDEから焼くときのmessageはこんなです.
esptool.py v3.0
Serial port COM5
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 18:fe:34:ee:84:85
Uploading stub...
Running stub...
Stub running...
Configuring flash size...
Auto-detected Flash size: 4MB
Flash params set to 0x0340
Compressed 270256 bytes to 198778...
Writing at 0x00000000... (7 %)
Writing at 0x00004000... (15 %)
Writing at 0x00008000... (23 %)
Writing at 0x0000c000... (30 %)
Writing at 0x00010000... (38 %)
Writing at 0x00014000... (46 %)
Writing at 0x00018000... (53 %)
Writing at 0x0001c000... (61 %)
Writing at 0x00020000... (69 %)
Writing at 0x00024000... (76 %)
Writing at 0x00028000... (84 %)
Writing at 0x0002c000... (92 %)
Writing at 0x00030000... (100 %)
Wrote 270256 bytes (198778 compressed) at 0x00000000 in 17.6 seconds (effective 122.5 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...

WiFiで接続する方法はまだわかりません.
なにか進展があったらレポします.

かしこ

20 件のコメント:

  1. >バイナリではなくて、74880bpsという風変わりなbaud rateで起動messageを出すのが真相でした
    今ソレを書こうと思ってたのですが・・・気づかれましたか。
    確か、「Boot OK」みたいなメッセージと、簡単なメモリマップを出してたハズ。
    (この辺は、ググれば出てきます。)

    返信削除
    返信
    1. 74880って初めて使いました.
      いままでみたことないボーレートでなんなのさ?

      削除
  2. >WiFiで接続する方法
    ArduinoIDE の、サンプルのところに、イロイロあったハズです。
    WebServer とか Client とか、「ブラウザ経由」で、Lチカ 制御、とかあったような。
    ※これだけで、「簡単なWeb Server」とか、出来ちゃうんだよな・・・
    ハマると面白いです。

    返信削除
    返信
    1. 遠隔地のログを採取したいです.WiFiClientでなんかやるのかしら.

      削除
    2. 遠隔地とはどれくらい?wifiは20mくらいですね
      特定小電力は100mくらい?
      ブルートウースは1m
      Qiは 5ミリ

      削除
    3. そのdipにするながーい変換基板 初めてみたのは アイテンドで 秋月に似たような品あるなーなんて思ってました

      削除
    4. 隣の部屋ぐらいでokです

      基板は変な形状です

      削除
  3. murasaki
    自分はWiFi全然知らないのですが、知り合いのプログラマさんが仕事でWiFi接続やったらしく、話を聞いたら下回りのプログラムは有線接続と全然違うらしいです。
    こわいので近寄らないことにしました。

    返信削除
    返信
    1. BTとWiFiは底の方では同じなのかな

      削除
    2. 物理層は電波なので、周波数帯が同じならBTとWiFiは混信してますよね。上位層からは安定性としてしか見えませんけど。ホッピングとかキャリア拡散すればいけるんじゃね?混信したってISMなら電監出てこねえしという乱暴な考えでやってる感。今のところ空間的周波数再利用でなんとかなってるんですかね。

      削除
    3. >混信したってISMなら電監出てこねえし
      「ISMバンド」とは、純粋に、
      ・周波数帯として、技術的に使い勝手が良い
      ために、「みんなが使いたがってる」周波数帯で、これを、例えば、
      ・特定の放送局とかに割り当てる(普通はそうやる)
      と、「産業振興のために良くない」ということで、
      ・みんなで使える
      ようにしてしまったものです。言ってしまえば、この場所は「公園」みたいなもので、
      ・ココは公共の場所です。滑り台は、みんなで仲良く使ってね!
      と、言ってるに等しい。そもそも、「ISM」って、
      ・Industrial Scientific and Medical Band
      (日本語訳:産業科学医療用バンド)
      で、単に、「想定される用途」(勿論、これ以外にもある)を並べただけです。
      ※ぶっちゃけ、「無法地帯」です。近傍には「電子レンジの周波数」まである始末。

      削除
    4. なので、最初から、
      ・他に誰が使ってるか分からない
      周波数帯なので、本質的には、
      ・チャンネル(Wifi とかで、よく聞く)
      で分けても、余り「混信対策」には意味がありません。
      実際、「どのチャンネル」も、常に誰かが使ってます。なので、まさに、
      ・空間的周波数再利用でなんとかなってる(いや、なってないけど・・・)
      としか言いようがありません。
      ※Bluetooth は、一応「周波数ホッピングSS方式」になってますが、ノートパソコンで使うと「Wifiと干渉しまくり」ます。(いわゆる「マウスポインタが飛ぶ」現象が多発する)なので、家では「有線LAN」との組み合わせでないと、使い物になりません・・・)
      Wifi も Wifi で、最初の 802.11b の頃こそ「DSSS(直接周波数拡散方式)」だったのですが、最近は「高速化のため?」なのか、いつの間にか、単なる「OFDM/QAM」に、成り下がってます・・・
      (だから、隣の家の Wifi と、干渉するのか・・・・ なので、家ではもっぱら「有線LAN」使ってます。)
      (家でWifi 使ってると、「特定の時間になる」と通信が切れたりして、「隣家がいつWifi使ってるのか」手に取るようにわかります(笑)これじゃぁ、プライバシーもへったくれもない罠。)

      削除
    5. ※Wifi の規格を決めてる「偉い人」は、多分、
      ・日本人ではない
      ので、少なくとも日本では、Wifi は「混信だらけ」で、
      ・事実上使い物になってない
      とか、ご存じないんだろうな・・・ 多分、US や EU は、日本と違って、
      ・住宅事情も良い(ウサギ小屋ではない・・・)
      ので、「混信なんかとは無縁」で、むしろ、
      ・速度の遅さが目立つ
      ので、「Wifi の、スピード競争に邁進」してるんだろうなー

      などと、妄想してしまいました。

      削除
    6. 誰か、
      ・DSSS の、高速 Wifi 規格
      を、策定してくれないかな・・・
      混信も無く、かつ、高速通信、という。

      削除
    7. そう言えば、アマチュア無線のバンドにも、
      ・2400MHz帯(2400~2450MHz)
      と言うのがあって、これはモロに、「Wifi と同じ周波数帯」です(笑)
      ※一応、決まりの上では、このバンドでは「アマチュア局は二次業務」ということになってる
      (要するに「先に使ってる人が居たら、そっちを優先させる」ということ)
      のですが、今や、
      ・無線LANを使ってないトコロ
      など、日本には存在しないので、事実上アマチュア無線では、この周波数帯は「使えない」に、等しい状態です(笑)
      ※人里離れた山奥、とかでやれって!?それじゃぁ相手が居ないじゃん。

      削除
    8. 2.4GHZって、H2Oの振動数なのでゴミ捨て場みたく扱われてみんなでおいちいおいちい言って使われてるイメージがありんす。

      レンジ使うとき、WiFi切れるかなと思うけど意外と平気だったりして。

      短波のゴミクソ混信を耳で知ってる身としては、2.4Gや5G帯もあんななのかと思うと心が折れそうです。
      レンジ使うとものすごいレベルの無変調キャリアがビーッと立つとか、こわー

      削除
  4. >遠隔地のログを採取したいです.
    単に通信したいだけなら、「ESPNOW」っていう、独自の仕組みがあります。
    (ふつーのWifiではなくて、ESP独自のプロトコルらしい。わたしはやったことないけど。)
    こんなの
    https://www.youtube.com/watch?v=4NlasMOZRV4
    「ESPNOW」で、ググれば、色々出てきます。

    返信削除
  5. >下回りのプログラムは有線接続と全然違う
    一応、「TCP/IP のプロトコルスタック」とかは同じなので、
    「全然違う」とかはありませんが・・・
    ※そもそも、「TCP/IPなどの、通信系プログラム」は、元々「共通API」とか無いので、
    プログラムは「各者各様」です。Windows と Linux とかでも違うし。
    (プロトコルが同じであれば「似たようなモノ」には成りますが「全く同じ」には成らないです。)

    返信削除
    返信
    1. 「ESPNOW」のコトを言っている?ならば、これは確かに
      ・全く別モノ(独自規格)
      ですが。TCP/IPですら無いし。

      削除
    2. espnowってアマチュア無線みたいな

      削除