JavaScriptマイコンボードTesselで温湿度をツィートするBotの作成

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のシールドとは違い、逆に挿すこともできてしまうため、ピンに○がついている位置が合うように挿します。

f:id:mia_0032:20141018161142j:plain

Climateモジュールは2つバージョンがあるようで、それぞれ使うパッケージが異なります。 今回使ったのはsi7020が載ったタイプなので、以下のコマンドでパッケージをインストールします。

$ npm install climate-si7020

サンプルコードのsi7005si7020に書き換えて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!と返ってこれば成功です。

こんな感じでツィートできています。

4. Climateモジュールから取得した温湿度をツィートする

上の2つを組み合わせて、起動しておけば定期的に温度と湿度を計測してツィートするデバイスを試しに作ってみました。

GitHub - mia-0032/tessel-hygrothermograph-tweetbot: Hygrothermograph tweet bot using Tessel.

Tesselに書き込んでしばらく待つと以下のようなツィートが投稿されます。

自分の環境だとTwitterに投稿する部分で1〜2分くらい動作が止まるのが謎です・・・。何でだろう。

4. まとめ

Tesselは簡単にWiFiにつながるのでネットワークにつなげるデバイスを非常に作りやすい感じがあります。

もうちょっといじってみようと思います。

関連エントリ

©2023 みや All rights reserved.