2015-09-20 (日)
趣味でマイコン使った工作するときは,マイコンに載ってる数K~数十KBのSRAMで頑張ること多いけど,メモリたくさん欲しいこともある.DRAMを半田付けするの敷居高いので,DRAMにSPIインターフェイス付けたモジュールどこかが出してくれないかなあ.
* ESP-WROOM-02 でHTTPd
サンプルがあるのでArduino IDEでビルドして書き込むだけ.「ファイル」→「スケッチの例」→「ESP8266WebServer」
ESP-WROOM-02のFlash上にプログラムがある状態なら,リセットから5秒以内にWiFi繋がってHTTP接続可能になるので,動作確認もストレスが少ない.
試しにこの前のカメラをつないで,HTTP経由でブラウザから写真撮れるようにしてみた.
ESP8266WebServerでメモリに載らないレスポンスの返し方よくわからなかったけど,ソース読む限りは,
server.setContentLength(data_size); server.send(200, "image/jpeg", "");
こんな感じで空のレスポンスを返しつつ,server.sendContent()でbodyを書き込めば良さそう.sendContent()は小分けして呼び出しても大丈夫に見えるけど,帰り値がvoidなのでコネクション切れたら中断とかはできない.あと,引数がStringなのが少し不便.
ちゃんとやるなら,client()で,WiFiClientが取得できるので,それ使うのが良さそう.
データの転送速度が遅い気がするので,そのへんは後で調べたい.
PC無しで単体で動作するWebカメラとかが簡単に作れるの良いな.WiFi経由で定期的に写真アップロードとかもできそう.
* ESP-WROOM-02のATコマンドでPINGとHTTP
シリアルモニタだけでも色々できるっぽいので試しておく.
AT+CIPSTA? +CIPSTA:ip:"192.168.0.16" +CIPSTA:gateway:"192.168.0.1" +CIPSTA:netmask:"255.255.255.0" OK
電源入れたら繋がっていた.SSIDとパスワードはFlashに記録されるっぽい.
AT+PING="www.google.co.jp" +4 OK
TCPで接続してHTTP GETしてみる.
AT+CIPSTART="TCP","www.binzume.net",80 CONNECT OK AT+CIPSEND=41 OK >GET / HTTP/1.1 Host: www.binzume.net Recv 41 bytes SEND OK +IPD,1414:HTTP/1.1 200 OK ... ..... CLOSED