さくらのIoTモジュール「オトーチャソインジケーター」作成 ハード編
Home > IoT > さくらのIoTプラットフォームα版 >
今週 わたくし お父ちゃんは海外に出張なので現地での居場所を家族に示すべく”オトーチャソインジケーター”を作りました。
さくらのIoTモジュールを用い Webページのボタンを押すとインジケータが動いて居場所を指し示します。Web通信周りはお母ちゃんに全部やってもらいました♪詳細は以下。
目次
動作と仕様
まずは動きを見てください!
さくらのIoTモジュールをシールドを介してArduinoに載せてサーボモータで矢印を動かしてます。
サーボモータはSG-90を使用しました。
Webページ
ラジオボタンで居場所を選択して”送信”をクリックするとそれぞれに対応した整数1~4がモジュールに送られます。
Arduino用プログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
#include "SakuraAlpha.h" #include <Servo.h> Servo myservo; SakuraAlphaI2C sakura; int RxData = 0; uint32_t Data32 = 0; void setup() { Serial.begin(9600); myservo.attach(9); // attaches the servo on pin 9 to the servo object Serial.print("connecting..."); for ( ; ; ) { if (sakura.getNetworkStatus() == 1) { Serial.println("ok."); break; } Serial.print("] waiting..."); delay(2000); } } void loop() { char type; uint8_t data[8]; sakura.readChannel(0, &type, data); Data32 = 0xFF & data[0]; sakura.writeChannel(1,Data32); if(RxData != data[0]){ Serial.print("Data: "); Serial.println(data[0]); RxData = data[0]; switch (data[0]) { case 1: myservo.write(155); break; case 2: myservo.write(118); break; case 3: myservo.write(75); break; case 4: myservo.write(36); break; } } delay(1000); } |
モジュール- Arduino間の通信にはI2Cを用いてチャンネル0でWebからの整数値(1~4)を受け取り、矢印を付けたサーボをそれそれの角度に動かしています。
Webページ切替時に前回ステートを保持するためにチャンネル1で受信した値をWeb側に送っております。
送受信は1秒おきに実施!
終わりに
これで出張も安心して行ける!時差もあるから いつ電話していいかとか分かると便利だもんね。
これに関してはワザワザ3Gモジュール使う必要があるかどうかは考えないことにしてます。。。えへへ