趣味の電子工作などの記録。時にLinuxへ行ったり、ガジェットに浮気したりするので、なかなかまとまらない。
RSS icon
  • EMW3165モジュール

    投稿日 2015年 7月 14日 コメントはありません

    Hack a Dayの記事からですが、EMW3165というIoTモジュールが登場しているようです。記事のタイトルでは、「NEW PART DAY: THE ESP8266 KILLER」となっています。

    データシートによれば、

    • 100MHz動作のCortex-M4コア
    • 2MBのSPIフラッシュと512KBのオンチップフラッシュ
    • 128KBのRAM
    • GPIOが22ピン

    というのが概要です。STM32F4とSDIO接続のWiFiチップ、SPIフラッシュ2MBの組み合わせのようですので、いつぞやのEMW3162モジュールと大差ありませんが、今回特筆すべきは価格かもしれません。Seeed studioに出ている価格では$7.95なので、ESP-WROOM-02では容量が足りない、という場合には選択肢に上がってくるかもしれません。(もっとも、FCCとCEマーキングしかないので、日本では使えません)

    ただ、本質的な部品点数ではESP8266の方が少なくなる(当たり前ですが・・)ので、「ESP8266 KILLER」というにはちょっと役不足な感じがします。


  • 技適マーク付きESP8266モジュール入手

    投稿日 2015年 7月 12日 コメントはありません

    早く技適マーク付きESP8266モジュール欲しいな〜、と思ってググっていたら、スイッチサイエンスESP-WROOM-02の技適マーク付きの扱いがあることを発見。さっそくポチってしまいました。7/10に注文して、今日7/11には入手。速くて便利。

    いま改めて気づいたのですが、スイッチサイエンスのプレスリリースが出たのも7/10だったんですねぇ。そちらにはピッチ変換済みモジュールに関する記載もありました。
    モジュールは1.5mmピッチのSMD実装前提の形状ですので、慣れてない人はピッチ変換済みモジュールのほうがお手軽でしょう。

    ESP-WROOM-02

    よくみると、ESP-WROOM-02って、ESP-12にあった青色LEDがなくなってます。まあ、消費電力追い込む場合にはLEDも邪魔ですから、それはそれで良しかと思いますが、デバッグ中は不便そうです。

    一方で、CerevoからもESP-WROOM-02とピッチ変換基板が発売されています。Cerevoって聞き覚えあるけど何だっけ、と一瞬考えてしまいましたが、ustreamなどの機器で結構名前が出ていた会社です。Cerevoの中の人もきっとESP8266の可能性が気になっちゃったんでしょうねぇ。ブログの記事にまでなっちゃってます。

    話をESP-WROOM-02に戻します。さて、こいつならシールド環境などという面倒くさいことを言わずにあれこれできます。これからいろんな人が懐に暖めていたアイデアが花咲くことと思います。自分もアイデアだけはある(あ、部品もある)んですが、なかなか時間が・・・というのと、体調崩してしまっているのでどうなることでしょう。


  • ESP-8266用ArduinoIDEでサンプルを動かす

    投稿日 2015年 7月 11日 1つのコメント

    環境構築とサンプルを動かす話を一つの記事にしたら長くて読みにくくなってしまったので、2つに分割します。この記事は環境構築の続きです。

    ESP8266自身で動かすWebサーバーサンプルのテストと、ESP8266をNTPクライアントにするサンプルのテストです。

    サンプルのコンパイルと書き込み

    以下の手順でサンプルの動作を確認しました。

    1. 「ファイル」⇒「スケッチの例」⇒「ESP8266mDNS」⇒「mDNS_Web_Server」を選択してみます。
    2. 23行目にSSIDを、24行目にパスワードを設定する箇所がありますので、そこにそれぞれの環境に応じた設定をします。
    3. 「ファイル」⇒「名前をつけて保存」で適当なディレクトリを作って保存します。
      (あたり前といえばあたり前ですが、保存しないとうまく動作しません)
    4. ESP8266ボード側はブートローダの起動状態にしておきます。(GPIO0をGNDに落とした状態でリセットをかけて、リセット解除しておきます。リセット解除後はGPIO0はGNDに落ちていても落ちていなくても構いません。なお、ESP8266のファームウェアバージョンはv0.9.5のものを使用しています。)
    5. 「ツール」⇒「シリアルモニタ」でシリアルモニタを起動しておきます。速度は115200bpsです。
    6. 「スケッチ」⇒「マイコンボードに書き込む」でコンパイルと書き込みを行います。
    7. 書き込みが終わると自動的に実行されます。
      screen8
    8. シリアルモニタ側にIPアドレスなどの情報が表示されます。
    9. ブラウザからそのIPアドレスにアクセスすると、ESP8266上で動作するWebサーバからのメッセージ(「Hello from ESP8266 at 192.168.xxx.xxx」)が取得できます。
      下記はAndroid上のブラウザからIPアドレス指定でアクセスした後のシリアルコンソールの表示内容です。
      screen9

    同様にNTPClientなども動作しました。

    Windowsだけではなく、Linuxでもこれだけお手軽に動かせるようになってきています。かなりお手軽にESP8266を動かす環境が整ってきていることを感じますね。

    ※上記の動作確認は接続先のアクセスポイントを含め、シールドルーム内で実施しています。早く技適対応済みのモジュールが入手できるようになって欲しいものです。


  • Linux版ESP-8266用ArduinoIDEのインストール

    投稿日 2015年 7月 10日 1つのコメント

    Linux版のESP8266対応のArduinoIDEのインストールが簡単になっていましたので、その方法でLinux32bit環境(LinuxMint17環境)にインストールしてみました。
    ArduinoIDEの1.6.4からボードマネージャ(Boards Manager)を使ってサードパーティのプラットフォームパッケージのインストールができるようになったようです。そこで、ESP8266用のプラットフォームパッケージが準備された、ということみたいです。
    このプラットフォームパッケージを使うと、超簡単にArduinoIDEからESP8266を使うことができます。現時点ではWindows,MacOS、Linux(32bit/64bit)のパッケージが準備されているようです。

    (7/15に64bit版Linuxでもサンプルのコンパイルまで確認してみました。手順は概ね同じですが、若干の記載漏れを加筆しました。また、64bit版ではファイル名などで32になっているところが64になったりします。)

    このプラットフォームパッケージの特筆すべき点は「AVRマイコンなど他のマイコンを必要とせず、ESP8266モジュール単体でArduinoとして動作しつつ無線LANでの通信ができる」ということです。

    大事なこと(すごいこと)なのでもう一度書きます。Arduinoとして動作させるのに、(書き込み時は別として)ESP8266モジュールと電源以外の部品は必要ありません

    たぶん、ArduinoIDE自体で依存するモジュールがあると思います。build-essentialやdefault-jdkなどは事前にインストールしておくほうが良いかと思います。

    ArduinoIDEのインストール

    arduino.ccからLinux32bit版のArudino IDEをダウンロードしてきます。ダウンロードが完了したら、アーカイブを展開します。

    端末(コンソール)を開いて、ホームディレクトリから

    $ xzcat ダウンロード/arduino-1.6.5-linux32.tar.xz | tar -xv
    $ ./arduino-1.6.5/arduino

    として、開発環境を起動します。
    (ダウンロード場所はディストリビューションなどに応じた場所を指定してください。上記ではホームディレクトリ直下にarduino-1.6.5というディレクトリができて、そこに展開します。)

    screen1

    「ファイル」⇒「環境設定」にて、環境設定の画面を開きます。開いたら、「Additional Boards Managers URLs:」に「http://arduino.esp8266.com/package_esp8266com_index.json」と入力し、OKを押します。

    ※追伸:安定版と開発版のバージョンができているようです。
    安定版は「http://arduino.esp8266.com/stable/package_esp8266com_index.json」、開発版は「http://arduino.esp8266.com/staging/package_esp8266com_index.json」を入力してください。
    どちらを選べばいいかわからない場合は当然安定版の方を選びましょう。

    「ツール」⇒「ボード」⇒「Board Manager …」を選択します。

    screen3

    一番下に、「esp8266 by ESP8266 Community」というのがありますので、ここをクリック(選択)すると、右下に「Install」ボタンが現れますので、「Install」ボタンを押します。

    screen4

    すると、40MBくらいダウンロードした後、Installedになります。

    screen6

    確認したら、「閉じる」でインストールは完了です。
    ESP-8266が使えるかどうかを「ツール」⇒「ボード」で確認します。

    screen7

    メニューに「Generic ESP8266 Module」「Olimex MOD-WIFI-ESP8266(-DEV)」「NodeMCU(ESP8266 ESP-12 Module)」が増えているのが確認できました。

    今回は「Generic ESP8266 Module」で動作させてみます。
    選択すると、「ツール」の下に「CPU Frequency」「Flash Size」「Upload Speed」「ポート」などの設定ができるようになっていました。今回はそれぞれ「80MHz」「512K(64K SPIFFS)」「115200」「/dev/ttyUSB0」としています。

    サンプルの動作確認は次の記事です。


  • ESP8266のファームウェア更新

    投稿日 2015年 7月 10日 コメントはありません

    さらにESP8266のファームウェア更新をしてみました。

    1.接続

    接続は先に紹介した以下の配線でOKです。

    IMG_0413s

    2.書き換えツールのダウンロード

    Pythonで動作するesptool.pyを使います。

    $ mkdir ESP8266UPDATE
    $ cd ESP8266UPDATE
    $ git clone https://github.com/themadinventor/esptool/

    3.更新ファームウェアのダウンロード

    更新ファームウェア(v0.9.5)をダウンロードします。

    $ wget --content-disposition "http://bbs.espressif.com/download/file.php?id=189"

    これより新しいバージョンのファームウェアもリリースされていますが、新しいバージョンのものはどうやらボード上のフラッシュメモリのサイズが1MB(8Mbit)必要なようです。ESP-01〜ESP-12として出回っているモジュールはほとんど512KB(4Mbit)のようなので、ATコマンドで使う場合にはこれでダウンロードされる v0.9.5 が最新ということになるのだと思います。それ以降のファームウェアを使う場合には、ESP-WROOM-02などの(おそらく)1MBのフラッシュメモリが搭載されたものが必要になるのでしょう。

    4.ファームウェアの書き換え

    タクトスイッチ(これでGPIO0をGNDに落とす)を押した状態でUSBケーブルを挿入し、挿入後タクトスイッチを離す(押したままでもOK)。これで書き換えモードになりますので、この状態でesptool.pyを使ってファームウェアの書き換えを行います。

    $ cd esp_iot_sdk_v0.9.5/bin/
    $ ../../esptool/esptool.py write_flash 0x00000 boot_v1.2.bin 0x01000 at/user1.512.new.bin 0x3e000 blank.bin 0x7e000 blank.bin
    Connecting...
    Erasing flash...
    Writing at 0x00000400... (100 %)
    Erasing flash...
    Writing at 0x00034800... (100 %)
    Erasing flash...
    Writing at 0x0003ec00... (100 %)
    Erasing flash...
    Writing at 0x0007ec00... (100 %)
    Leaving...
    $

    これでUSBケーブルを挿し直すと(直さなくてもいけるのかも?)動き出します。

    GtkTermで見てみると、最初文字化けします。バージョンアップすると、ATコマンド通信時の速度が9600bpsから115200bpsに変わるようですので、設定をしなおして見てみると、

    AT+GMR
    AT version:0.21.0.0
    SDK version:0.9.5
    OK

    となっていました。

    ちなみに更新前は、

    AT+RST
    
    OK
    c_��RS��FjS�fJ[��
    [Vendor:www.ai-thinker.com Version:0.9.2.4]
    ready
    AT+GMR
    0018000902-AI03
    OK

    で 0.9.2.4 でした。

    ※作業はAPを含めてシールドルーム内で行っています。


  • ESP8266を操作してみる

    投稿日 2015年 7月 10日 コメントはありません

    秋月のAE-UM232Rと三端子レギュレータを接続してブレッドボード上でESP8266を動かしてみました。使用したモジュールは手持ちのESP-12でプリント基板パターンアンテナを使用したFCC認証済みのモデルです。

    IMG_0413s

    接続回路図はHack a Dayの記事のままです。真ん中下がピッチ変換基板に載せたESP-12モジュール、左上がAE-UM232R、右上に3.3Vを生成する三端子レギュレータを配置しています。真ん中には電解コンデンサとフィルムコンデンサが付いているのですが、これは後述のとおりなかなか動作しなかったので、電源系の不安定さを疑って追加したものです。その右側にはF/W書き込みのためのスイッチもつけてあります。USBで接続する先のPCはLinuxMint17.1 MATE edition 64bit版です。

    USBケーブルを接続すると、ESP-12に搭載されている青いLEDが一瞬点滅します。購入直後であればこの状態でスマートフォンなどにWiFiの状態をみるツールを入れてやるとアクセスポイントとして見えます。

    次にPC側でターミナルプログラムとしてGtkTermを起動して、シリアルポートに/dev/ttyUSB0を選択し、通信速度を9600bpsに設定すると、入力した文字がエコーバックされるのがわかります。
    この状態ではATコマンドを受け付けるはずなので、

    AT[Enter]

    と入力してやると「OK」と返ってくるはずなのですが、返って来ません。
    グーグル先生に聞いてみると、電源不安定だと起きるのではないかとか、そんな話が見つかります。それで電解コンやらフィルムコンやら追加したりしたのですが、状況が変わる気配はありません。

    さらに調べてみると、「改行コードは”\r\n”でないと動作しない」という情報が出てきました。そこで、[Enter]の代わりにCTRL+M、CTRL+Jと入力したのですが動作しません。代わりに日本語入力モードになってしまいました。

    そこで、一時的にIBus+Anthyの動作を止めてやりATの後にCTRL+M、CTRL+Jと入力してやると無事にOKが返ってきました。同様にいくつかコマンドを打ってみました。

    AT+RST
    
    
    OK
    c_��RS��FjS�fJ[��
    [Vendor:www.ai-thinker.com Version:0.9.2.4]
    
    ready
    AT+GMR
    
    0018000902-AI03
    
    OK
    AT+CWLAP
    
    +CWLAP:(4,"aterm-xxxxxx-gw",-54,"xx:xx:xx:xx:xx:xx",10)
    +CWLAP:(4,"aterm-xxxxxx-g",-55,"xx:xx:xx:xx:xx:xx",10)
    
    OK

    というような感じで無事にアクセスができました。上記の例を見てもわかるとおり、アクセスポイントの検出もできていました。

    ※上記の動作確認は接続先のアクセスポイントを含め、シールドルーム内で実施しています。早く技適対応済みのモジュールが入手できるようになって欲しいものです。


  • (祝)ESP8266モジュールの技適証明

    投稿日 2015年 6月 2日 6個のコメント

    最近、忙しくてESP-8266関連(だけじゃなくてプライベート一般も)に手を出せていないのですが、ESP-8266モジュールで技的マークが写ってる写真が出てたよ、というご報告をTDRKさんからいただきましたので紹介します。

    ESP-8266はリンクを維持したまま消費電力を1mA以下にできるよ、というツイートとともに写真が写っています。

    画像なしで引用しているのですが、下記の技適マーク入りのモジュールの写真が付いています。(直リンクしてますので、見えなくなるかも)

    結局、シールドケースにWiFiのマークやCEマーキング、FCCのID、Espressifのロゴと共に技適の番号が直接入るようですね。

    TDRKさんに教えていただいたこちらのリンクでは、ESP-WROOM-02というモジュール名称が記載されています。FCC、CEに加え、はっきりTELECと書いてあります。(中国のSRRCも記載があります)
    このモジュールに関してはFCCやCEなども初出なのでしょうか、先のTwitterにはすでにFCCに関する質問のTweetも出ています。

    AliExpressやTaobaoで手に入るようなことが書いてありますが、今の時点ではAliExpressではすべてEspressifのロゴのみのシールドケースの写真になってます。価格は数量によりますが$4~5位。ショップが掲示している写真は更新されるのでしょうかね。更新すれば日本からの注文が増えるとなれば、中国人は(良くも悪くも)商売上手なので更新すると思いますが・・・。
    中身は変わらないんでしょうが、マークの有り無しは電波法上重要ですから。

    さて、マーク入りのモジュールが手に入るようになれば、あんなことやこんなことができるようになりそうです。
    ・・・が、まずは時間が欲しいところ・・・。


  • 2月前半の技適証明の公示

    投稿日 2015年 3月 30日 9個のコメント

    ESP8266の開発がArduino IDEでできるようになったというすごいビッグニュースがでたところで気になるのが、日本でESP8266を使うためには避けて通れない技適の行方です。

    この記事で書いたように、2月13日にEspressifの中の人が「#ESP8266 has passed the Japanese TELEC certification!」とツイートしています。

    ・・・で、時々総務省のWebサイトにある技術適合証明等の公示をみていたのですが、さっき見てみたら、2月前半分の公示がでていました(なんで週末に出るんだろ?)。で、テレコムエンジニアリングセンター(TELEC)の2月前半分を見てみると、ずらずらっとたくさん技適認証を受けた機器が並んでいます。この中で電波形式G1D(多分合ってると思うんだけど)で検索して、周波数が2400MHz帯しか出さないものを見ていくと、

    • 三菱電機 AR-0HT6-PANEL2-2 001WWDB3008282~
      3008331 2/12
    • 株式会社日放電子 F400470091 001WWCA3018338~
      3018349 2/9
    • LG Electronics Inc. LG-W100 001-A03356  2/4
    • パナソニック株式会社 CN-GP757VD  001-A05291  2/13

    しかありません。(技術基準適合証明を受けた者の氏名又は名称、特定無線設備の型式又は名称、技術基準適合証明番号、技術基準適合証明をした年月日の順です)

    三菱電機やLGやパナソニックが他社のモジュールの認証を取るということは考えにくいので、この中で怪しいのは2番目の日放電子さんかな、と思います。ちょうど技適の証明番号も12個ということで、ESP-01〜ESP-12のモジュールの種類の数とも一致しています。そこで、総務省の技術基準適合証明等を受けた機器の検索のページで検索してみました・・・が、特に追加の情報はありませんでした。

    さて、実際どうなることやら・・・。技適の問題がクリアになってくれればヒットまちがいなしなんですけどねぇ・・・。あるいは、この日放電子さんというところから日本向けは販売されるんでしょうか・・・?(最悪なのは、他3社のどこかが自家組込み用にTELEC取りました〜、というパターンですが・・・)

    ヤキモキさせてくれますね・・。

    #ESP-01ってシールドケースが無いから技適が通らない気もするけど・・・シールドケースで密閉されてなくてもワンチップだからハードウェア改造で何かできる気もしないし、どうなんだろ?


  • 【すごい】ESP8266がArduino IDEでサポートされる

    投稿日 2015年 3月 30日 4個のコメント

    いつものように、Hack a Dayの記事から。

    タイトル(「ARDUINO IDE SUPPORT FOR THE ESP8266」)だけ見ると、ESP8266をEthernet Shieldとして使えるようになったのかな、と思ってしまうところですが、そんな当たり前の話じゃありません

    『ArduinoでESP8266がサポートされた』のではなく、『Arduino IDEでESP8266がサポートされた』のです。言い換えると、ESP8266単体で動かすIoTアプリケーションの開発がArduino IDEでできるようになったということなのです。(github上のサンプルプログラムにはIoTのプロトコルであるMQTTのサンプルも載っています)

    ESP8266の内部のXtensaプロセッサをArduino IDEがサポートするようになり、ESP8266モジュールだけでArduinoのpinMode(),digitalRead(),digitalWrite(),analogRead()が使える上に、WiFi機能をEthernet Shieldと同様に使えるようです。一方で、PWMはESP8266自体がハードウェアリソースを1chしか持っていないので制約があり、SPIとI2Cはまだ動作しないようです。

    すでに github から Linux(64bit)、Windows、OS X用のArduinoコンパチのIDEがダウンロードできるようになっていて、サポートしている機能の範囲も同じところに書かれています。(Linux版をダウンロードしてみたら70MB以上ありました・・・)

    ESP8266の書き換えは、Hack a Dayのこちらの記事にあるような簡単な回路でできるようです。

    IDEの安定性次第のところはあるかもしれませんが、安定して使えるようになればこれは間違いなく大ブレイクすると思います。これで無線や電子工作に詳しくない人でもArduinoでマイコン制御機器を作ってみるのと大して変わらない感覚で、ESP8266を使ったIoT機器を作ってみるということが可能になるのですから。

    おそらく、Espressif社はWiFiを使ったIoT機器用のチップとしては数量でNo.1になっていくのではないでしょうか。(ちょうど、BluetoothでCSR社が占めているような立ち位置になるんじゃないかと予想します)


  • ESP8266モジュールに技適マークが付くかも!?

    投稿日 2015年 2月 23日 コメントはありません

    以前書いたこの記事にikeyasuさんからコメントを頂きました。

    Espressif Systemの中の人(かな?)のツイートによるとTELEC認証を通ったらしい、というコメントです。

    となると、日本でももうすぐESP8266が乗った技適マーク付きモジュールが使えるようになることが期待できそうです。

    気になるのが日本での技適マーク付きモジュールの入手経路です。
    日本のどこかの会社が代理店になってしまうと、とんでもない値付けをして、流行るものも流行らなくなってしまうので心配です。できればAliExpressあたりで売ってるモジュールにも技適マークが入ってくれれば嬉しいのですが、一般向けにはちょっと敷居が高いかもしれないので、秋月やAitendo、千石あたりで扱われると嬉しいかも。(自分はAliExpressで買えれば問題ないですが・・・)

    ESP8266はArduinoなどでお手軽にATコマンド叩いて使うもよし、内部のXtensaプロセッサ使って小さくまとめるもよし、使い道の広いデバイスです。すごく楽しみです。

    ikeyasuさん、素晴らしい情報ありがとうございます!!