JavaScriptで書けるマイコンボードTesselを使った工作の続きです。
前回の記事でLチカできるとこまでできました。
今回はWiFiに接続するところから、温湿度センサーモジュールを使って温湿度を定期的にツィートするデバイスの作成を行います。
1. WiFiへの接続
TesselボードはWiFiに接続するためのチップなどが標準で搭載されており、コマンド1つで接続設定ができるようになっています。
$ tessel wifi -n YOUR_WIFI_SSID -p YOUR_WIFI_PASSWORD
YOUR_WIFI_SSID
に接続するWiFiのSSID、YOUR_WIFI_PASSWORD
にパスワードを指定します。
-s
オプションで暗号化方式を指定できます。デフォルトでWPA2が指定されるので最近の無線LANルーターなら特に指定しなくてOKかと思います。
以下のような表示が出れば接続できています。たまに失敗するようなので、その時は再実行すればつながると思います。
INFO Disconnecting from current network... INFO Connecting to "YOUR_WIFI_SSID" with wpa2 security... INFO Acquiring IP address. . INFO Connected! IP 192.168.0.3 DNS 192.168.0.1 DHCP 192.168.0.1 Gateway 192.168.0.1
2. 温湿度(Climate)モジュールを使う
温湿度センサーの搭載されたモジュール(http://www.switch-science.com/catalog/1947/)を使って温湿度を取得できるようにします。
サンプルコードが公式ページに公開(http://start.tessel.io/modules/climate)されているので、その通りに動かしてみます。
Arduinoのシールドとは違い、逆に挿すこともできてしまうため、ピンに○がついている位置が合うように挿します。
Climateモジュールは2つバージョンがあるようで、それぞれ使うパッケージが異なります。 今回使ったのはsi7020が載ったタイプなので、以下のコマンドでパッケージをインストールします。
$ npm install climate-si7020
サンプルコードのsi7005
をsi7020
に書き換えてtessel run climate.js
とすると、以下のように温湿度がひたすら流れます。
Connected to si7020 Degrees: 79.3313F Humidity: 45.5633%RH Degrees: 79.3506F Humidity: 45.5480%RH Degrees: 79.3506F Humidity: 45.5327%RH Degrees: 79.3699F Humidity: 45.5480%RH
3. Tesselからツィートする
こちらもnpmパッケージを使ったサンプルが公式ページ(http://start.tessel.io/tweet)にあるので、それを動かします。
twitterHandle
, consumer_key
,consumer_secret
,access_token_key
,access_token_secret
の部分は使いたいアカウントのものに書き換えておきます。
$ tessel run tweet.js
すると結構長い時間反応なくなって心配になりますが、tweet successful!
と返ってこれば成功です。
こんな感じでツィートできています。
Hello @hygrothermo_bot. This is your #Tessel speaking.
— hygrothermograph_bot (@hygrothermo_bot) 2014, 10月 18
4. Climateモジュールから取得した温湿度をツィートする
上の2つを組み合わせて、起動しておけば定期的に温度と湿度を計測してツィートするデバイスを試しに作ってみました。
GitHub - mia-0032/tessel-hygrothermograph-tweetbot: Hygrothermograph tweet bot using Tessel.
Tesselに書き込んでしばらく待つと以下のようなツィートが投稿されます。
ただいまの気温は29.3196度で、湿度は37.5143%です。
— hygrothermograph_bot (@hygrothermo_bot) 2014, 10月 18
自分の環境だとTwitterに投稿する部分で1〜2分くらい動作が止まるのが謎です・・・。何でだろう。
4. まとめ
Tesselは簡単にWiFiにつながるのでネットワークにつなげるデバイスを非常に作りやすい感じがあります。
もうちょっといじってみようと思います。