2015年11月14日

Arduino core for ESP8266でHTTPSが叩けるようになっていた件

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク
以前から使っている Arduino core for ESP8266 WiFi chip のStaging Version (ver. 1.6.5-1160-gef26c5f) でWiFiClientSecureが使えるようになっていました。

今まではWiFiClientではhttpしか叩けなかったのですが、これでhttpsなWebサーバにもアクセス可能です。
(以前の記事では、espconn_secure_connectを直接叩くことでhttpsなWebサーバにアクセスする方法を紹介していました)

多分、こんなコードでPOSTできるはず!
(現在やってるプロジェクトからhttpsPostの関数だけコピって持ってきたので、全体としては動作確認してませんが、関数自体は問題なく動くことを確認済み)

ちなみに、text=Hello ESP8266!とbat=現在のVCC電圧がPOSTされます。

もっとイケてるコードは examples/HTTPSRequest/HTTPSRequest.ino があるので、そちらを参考にしてください... (GitHubのAPIを叩いてJSONをパースしてる)
→ https://github.com/esp8266/Arduino/commit/2ff8aa08d478aceee39fe4147cb7fcc1eef263f1

以前の記事で、SSLライブラリを有効化して、直接ESP8266のAPIを叩くという方法でHTTPS通信した場合と同様、暗号種は以下の4種対応です。

  • TLS_RSA_WITH_AES_128_CBC_SHA
  • TLS_RSA_WITH_AES_256_CBC_SHA
  • TLS_RSA_WITH_RC4_128_SHA
  • TLS_RSA_WITH_RC4_128_MD5

WireSharkでパケット見た結果↓


ライブラリはlibsslではなく、axTLSという組み込み向けのSSLライブラリを使っています。

axTLS Embedded SSL

これに気づいたのも、おニュー環境のMacにArduino IDEとArduino core for ESP8266のStaging Versionを入れて、以前の記事の通りにplatform.txtの27行目に -lsslを追記しようとしていたら...


axTLSがリンクされていたので、まさか... と思いGitHubのIssuesを遡ってたら、WiFiClientSecureを追加したよ!みたいな会話があったという。

まだステージングなので色々変わるかもしれませんが、とりあえずこれでサクッとhttps使えますね。

2015年11月1日

3Dプリンターがやってきた

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

3Dプリンターも値段がこなれてきた(と自分は思った)ので、試しに1台導入してみました。
XYZプリンティングのダヴィンチ Jr 1.0という機種。
Amazonでクーポン配ってたので、それを使って4万4300円でした。


段ボールから取り出して梱包材を外したら、特にネジを回したり何かを取り付けたりすることなく、上記くらいのものは出力できたので、ソフトウェア的にもこなれてきた感。
5年くらい前に20〜30万円くらいしてた3Dプリンターよりも精度が良くて、取り扱いが簡単なものが5万円以下で手に入るなら十分。


最初はちょっと固かったけどボルトとナットも綺麗に噛み合いました。

早速、何か作ろうということで、先日スイッチサイエンスPCBで発注した基板が収まるケースをFusion 360で設計して出力してみました。


3D CAD使うのは7年くらい前に高専ロボコン用のロボット設計でSolidWorksを触って以来なので、まだまだ慣れてないけどぼちぼちやっていく予定...