【ESP-WROOM-02】【電子工作】ATコマンドを使うまで
ESP-WROOM-02を買いまして。
使えるようにセットアップします。
1.そもそもESP-WROOM-02とは?
まぁ、こちらを御覧ください。
親指サイズでWiFi通信を実現し、クライアントとしてはもちろん、Webサーバとして動かすこともできる優れものとのこと。
例えば、人感センサと組み合わせて外に設置し、訪問者があればWiFi通信で部屋の中のサーバを介してツイートできる、とかいろいろできるようになります。
何よりの魅力は1000円以下で購入できるということです。
2.準備するもの
-
ブレッドボード
-
ジャンパーコード(オスーオス)
-
抵抗(10kΩ)
- ピンヘッダ
- ハンダごて
3.接続
※いつもどおりFritzingで作ろうと思ったものの、パーツが見つからず・・・。写真と文章で残します。
私が買ったものはスイッチサイエンスさんのESP-WROOM-02ピッチ変換済みモジュール《フル版》 でして、これにはまずピンがついていないため、ピンヘッダのハンダ付けが必要になります。(※初ハンダ付け)
ハンダ付けが問題なく終われば、次はブレッドボードによる接続です。
先人たちのものを参考にしたものの、ピン配置には苦戦しました。
それでもポイントとなるものがいくつか有りまして、
- ESP-WROOM-02にはファームウェアへの書き込みモード(UART Download Mode)と実行モード(Flash Boot Mode)がある。
- モード変更の鍵をにぎるのは「IO15」「IO2」「IO0」の3つ
- 2のそれぞれには10kΩの抵抗を挟み、Pull Up、Pull Down接続をさせなければならない
- 「EN」もPull Upで接続しなればならない(10kΩの抵抗を挟む)。
ピンアウトについては、ESP-WROOM-02を使ってみる : Eleclog.さんで図で整理されているため、こちらが参考になります。
というわけで、下手くそですが私が設定した配線は以下のとおりです。
なお、USBシリアル変換アダプタは3.3Vでジャンパピンを設定しておきましょう。
USBシリアル変換アダプタ <-- --> ESP-WROOM-02
---------------------------------------------------------------------------
VCC <-- --> 3.3V
VCC <-- 抵抗(10kΩ) --> EN
TX <-- --> RXD
RX <-- --> TXD
GND <-- 抵抗(10kΩ) --> IO15
VCC <-- 抵抗(10kΩ) --> IO2
VCC <-- 抵抗(10kΩ) --> IO0
※上記のIO0をVCCに繋げれば実行モード。GNDに繋げれば書き込みモードになります。写真はVCCに繋げているので実行モードで動きます。
なお、Arduinoマイコンとしても使える小型WifiモジュールESP-WROOM-02を使ってみる(準備編) | Device Plus - デバプラで紹介されているように、ジャンパピンで制御できる形のものが販売されていますので、その場合は配線が上記と異なります。
※USBシリアル変換アダプタは、何もしていないとUSBをWindowsに接続しても認識されないため、ドライバを入れる必要があります。以下を参照。
FTDIのUSBシリアル変換器のドライバのインストール法(1) - しなぷすのハード製作記
3.Arduino IDEの設定
こちらのサイトを参考に。
技適済み格安高性能Wi-FiモジュールESP8266をArduinoIDEを使ってIoT開発する為の環境準備を10分でやる方法 - Qiita
ボード設定は、「Generic ESP8266 Module」を選択していれば問題ないと思います(たぶん)。
4.Arduino IDEのシリアルモニタでATコマンドを実行してみる
シリアルモニタを起動してATコマンドを実行します。
なお、ATコマンドはピン設定が実行モード(Flash Boot Mode)になっていないと実行できません。
AT、AT+GMRとコマンドを打ってみます。
ただし、右下の改行設定とビットレートをそれぞれ「CRおよびLF」、「115200bps」にしないと正常に動きません。
配線が問題なければ、上記のように応答が返ってきます!
5.ファームウェアのアップデート
4の画像を見ればわかりますが、ATバージョンが0.25、SDKバージョンも1.1.1となっていることから、現行バージョンより若干古いです。
ので、アップデートをします。
アップデートの際には書き込みモード(UART Download Mode)に変更し忘れないように。
参考サイト:ねむいさんのぶろぐ | ESP-WROOM-02を使ってみる2 -外付けSPIフラッシュの書き換え-
以下のサイトから必要なモノを取得してきます。
FLASH_DOWNLOAD_TOOLS_v2.4_150924.rar:http://bbs.espressif.com/viewtopic.php?f=5&t=433
esp_iot_sdk_v1.4.0_15_09_18.zip:http://bbs.espressif.com/viewtopic.php?f=46&t=1124(ファイルは下の方)
FLASH_DOWNLOAD_TOOLSを実行すると以下の様な画面になるため、参考サイトを見ながら設定を行います。で、実行
bin\boot_v1.4(b1).bin:0x0
bin\at\1024+1024\user1.2048.new.5.bin:0x1000
bin\blank.bin:0xFE000
bin\esp_init_data_default.bin:0x3FC000
bin\blank.bin:0x3FE000
書き込み中はコンソールで以下のように表示されます。
Erasing flash...
head: 1 ;total: 1
erase size : 4096
Writing at 0x00000800... (0 %)
Leaving...
Erasing flash...
head: 15 ;total: 69
erase size : 221184
Writing at 0x00045000... (95 %)
Leaving...
Erasing flash...
head: 1 ;total: 1
erase size : 4096
Writing at 0x000fec00... (97 %)
Leaving...
Erasing flash...
head: 1 ;total: 1
erase size : 4096
Writing at 0x003fc000... (97 %)
Leaving...
Erasing flash...
head: 1 ;total: 1
erase size : 4096
Writing at 0x003fec00... (98 %)
Leaving...
com closed
正常に書き込みが完了すれば「Finish」と表示されます。
再度、ATコマンド実行のため、実行モード(Flash Boot Mode)にピンを変更し、シリアルモニタからコマンドを実行します。
AT、SDKともにバージョンがアップされました!
【Raspberry Pi】【電子工作】PIRモーションセンサ(人感センサ)の確認
PIRモーションセンサ(人感センサ)にて、人を検知してみます。
1.必要なもの
- ラズベリーパイ(1のB+)
- ブレッドボード(直接センサをラズパイに接続するならいらない)
- PIRモーションセンサ(https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4KSX)
- ジャンパーコード各種
2.配線図、回路図
こんな感じ!
PIRセンサは3.3Vあれば動作するため、VDDにラズパイの3.3Vに繋げる。センサで検知すればSIGから信号が送信されるため、適当なGPIOに接続しておく。
3.ソースコード
検知するだけであれば大して難しくは無いです。
問題はどうやって活用するか、ということ。
【Raspberry Pi】【電子工作】Lチカをやってみる
せっかくラズパイを買ったので、電子工作に挑戦します。
参考にするのは「ラズパイマガジン 2015年秋号」に記載されている内容です。
1.必要なもの
- ブレッドボード
- 抵抗:330Ω
- LED(こちらを購入→http://akizukidenshi.com/catalog/g/gI-09451/)
- ジャンパーコード各種
2.接続させる前に
ブレッドボードを介してLEDを光らせます。
光らせるには電流を通してあげないといけないわけで、抑えておかないと行けないポイントは以下のとおり。
- LEDの光らせろとかセンサから情報を取得しろ、というのは、ラズパイのGPIOピンを使う必要がある。
- LEDを光らせるときは過電流だとLEDが壊れるため、抵抗が必要になる。必要な電流量はオームの法則で求める。
という点でしょうか。
1については、以下の画像の通りで、GPIOと書かれているピンにジャンパーコードを指す必要がある。
出展:DESIGNSPARK - Raspberry Pi B+のご紹介(http://data.designspark.info/uploads/images/53bc258dc6c0425cb44870b50ab30621)
で、LEDを光らせるにはオームの法則を使って電流を計算する必要がある。
そんなわけで、はい、計算サイトです。
まず、使用するLEDの仕様として、
・連続最大電流:50mA
とのこと。要は50mA以上を流すと壊れるということ。
抵抗は330Ωを買っており、かつラズパイのGPIOピンは3.3V動作ピン、そしてLEDのVf(順電圧)の2.1Vを差し引く必要があるため、
(3.3V-2.1V)/330Ω=3.63mAになります。この電流量ならLEDが壊れることはなく、また、程よく光ります。
3.接続図と回路図
fritzingというCADアプリがあるため、これを用います。
2項の内容を踏まえると以下のとおりです。
4.プログラム
1秒間隔で点灯と消灯を繰り返します。
これでLEDが点きます!
【Raspberry Pi】DLNAサーバの構築
ちゃんと手順で残していなかったため、書きます。
なお、DLNAの対象になるのはラズパイに繋いだ外付けのHDDです。
外付けHDDの設定はこちら→http://engetu21.hatenablog.com/entry/2015/02/01/205818
1.minidlnaのインストール
Linuxにおいてはminidlnaというソフトを入れれば結構簡単に実現できます。
というわけでインストール
$ sudo apt-get install minidlna
2.minidlnaの設定内容変更
minidlnaの設定内容を変更します。
$ sudo vi /etc/minidlna.conf
media_dir=V,/mnt/hdd1/videos
media_dir=A,/mnt/hdd1/music
media_dir=P,/mnt/hdd1/pictures
V,A,Pはそれぞれvideo,audio,picturesを表す。まぁ、ファイル内にコメントで書いてあるんですが。
3.設定の反映と再起動
設定と反映をします。2番めのはやる必要ないかもしれないけど、一応。
$ sudo /etc/init.d/minidlna force-reload
[ ok ] Restarting DLNA/UPnP-AV media server: minidlna.
$ sudo /etc/init.d/minidlna restart
[ ok ] Restarting DLNA/UPnP-AV media server: minidlna.
あとは、AndroidでDLNAに対応したアプリでアクセスできるかを確認。
4.システム起動時に自動実行
以下のコマンドを実行しておく。
$ sudo update-rc.d minidlna defaults
【悲報】3.0TBのHDDが逝く
久しぶりの更新ですが、特にネタは無く。いや、無くはないけどモチベーションがなかなか。
そういったわけでHDDが逝きました。暑さもあったけど、直前で変なことしちゃったからなぁ・・・。今回死んだのはバックアップ側なので問題無いですが。
問題だったのは某バックアップソフトを使ったからだけど、自分で作って運用したほうがいいかもしれない・・・。
【Raspberry Pi】apt-get updateで失敗する
何故かupdateに失敗する。
結論から言えばDNS解決ができていなかっただけなんですが。
$ sudo apt-get update
エラー http://mirrordirector.raspbian.org wheezy Release.gpg
'mirrordirector.raspbian.org' を解決できませんでした(略)
W: いくつかのインデックスファイルのダウンロードに失敗しました。これらは無視され るか、古いものが代わりに使われます。
で、resolv.confを見ると
$ view /etc/resolv.conf
nameserver 8.8.8.8
確かにOS設定時のDSNサーバを(面倒なので)8.8.8.8にしていた・・・
というわけで、上記設定をプロバイダ提供のDNS解決が変更し、リロード。
$ sudo vi /etc/resolv.conf
nameserver xxx.xxx.xxx.xxx
$ sudo /etc/init.d/networking reload
[....] Reloading network interfaces configuration...ifup: interface lo already configured
Waiting for br0 to get ready (MAXWAIT is 10 seconds).
done.
再度updateで無事実施可能。
$ sudo apt-get update
ヒット http://repository.wolfram.com stable Release.gpg(略)