カテゴリー
IchigoJam

IchigoSodaをケースへ組み込む。Ambientで乾電池駆動のIoTセンサ実験

IchigoSoda(さくらインターネット製)をプラスチック製のケースへ組み込み、乾電池駆動の実験を開始しましたので製作方法について説明します。
IchigoSoda=Softbankのモバイル通信4G LTE対応のIchigoJam互換機(さくらインターネット製)
Ambient=IoTセンサ用クラウドサービス(https://ambidata.io
モバイル通信を行うには2本のアンテナが必要ですが、実験のときは想定以上に邪魔になります。ケースへ組み込むことで、アンテナやアンテナケーブルの煩わしい存在を気にしなくて済むようになります。
秋月で販売されている蝶番開閉式のABS樹脂ケース112-TS(ABS)へIchigoSodaを組み込んだ。アンテナをケースに取り付けることで、実験のときのアンテナやアンテナケーブルの煩わしさから解放された。
モバイル通信機能を有効に活用したかったので、持ち出して使えるように電池ボックスを取り付けました。乾電池3本の直列接続では電源電圧が約4.5Vとなり、IchigoSodaの動作が不安定となるので、単4のアルカリ乾電池4本をIchigoSodaへ接続しました。
ケースには、IchigoSodaと、単4電池ボックス(4本・直列・6V仕様)、2本のアンテナを取り付けた。モバイルでの利用を想定。
なお、モバイル環境で、長期間の動作を行うには、省エネ動作が欠かせません。IchigoJam BASICには省エネ機能が標準搭載されているので、モバイルIoTセンサを簡単に製作することが出来ます。

IchigoSodaの裏面の電源入力用テストパッドへ電池を接続

IchigoSodaや電池ボックスはプラスチック製のビスでケースに固定します。本例ではM3(3ミリ)のネジを使用しました。電池ボックスは、多くの場合、皿ネジが必要です。また、M2.6の場合もあります。入手しにくいネジは、モノタロウ(通販)や西川電子部品(秋葉原)、ナニワねじ(大阪・日本橋)などで購入します。
IchigoSodaの基板背面にある5.0Vへ電池ボックスの赤色の電線を、GNDへ黒色の電線を接続する。IchigoSodaや電池ボックスはプラスチック製のビスでケースへ固定した。電池ボックスには皿ネジが必要。
ビスやコネクタ用の開口部のうち、丸穴加工はドリルで空けて、リーマで広げるだけなので、数分で綺麗に作成することが出来ます。
今回は、キーボード用USBコネクタの開口部に、四角形の角穴加工を行いました。ボクは角穴加工が苦手なのですが、1時間以上かけて、ヤスリで仕上げました。
苦手なうえに、時間がかかる角穴加工(右)をしてみた。自分なりに満足できる仕上がりだったので、紹介させていただいた。

乾電池を入れずに、マイクロUSB端子から電源を供給する(キーボード使用時)

新品のアルカリ乾電池の電圧は1本あたり約2V程度で、4本だと7~8Vになることがあります。IchigoSodaは、安定した動作が可能ですが、キーボードが故障する場合があります。キーボードを使用するときは、電池を取り外し、マイクロUSB端子からDC 5Vの電源を供給してください。
キーボードを接続するときは、必ず、乾電池を取り外し、マイクロUSB端子からDC 5Vを供給する。

IoT向けクラウドサービスAmbientへ電池電圧を送信する

製作した機器へ、単4アルカリ乾電池を取り付け、分圧した電池電圧をIchigoJamのIN2へ入力し、IN2の値をIoT向けクラウドサービスAmbientへ送信します。
単4アルカリ乾電池4本を取り付け、電池電圧をIchigoJamのIN2へ入力した。
IchigoSodaで省エネ動作を行うには、ハードウェアの改造が必要です。以下の改造を行うことで、より長期間の動作が可能になります(試算で1か月の動作が可能になる)。
より省エネ動作を行うためのIchigoSodaのハードウェア改造
  • WAKE信号の電圧変換回路部・プルアップ抵抗(R4・1kΩ)の取り外し
    取り外す理由:IchigoJamがSLEEPしたときにsakura.ioモジュールがONしてしまう(不具合)
    省エネ効果:17 mW (3.3mA×5V) + sakura.ioモジュールの消費電力
  • Power LED部の電流制限抵抗(R19・1kΩ)の取り外し
    取り外す理由:LED動作による消費電力の削減
    省エネ効果:8 mW (2mA×3.8V)
省エネ動作については、下記のブログ記事も参考になるでしょう。

IchigoSodaを乾電池で省エネ駆動させる方法(2018/9/1):
IchigoSoda基板上のWAKE信号設定スイッチは下の写真のように、上側を左(EN側)に、下側を右(DIS側)にスライドしておきます(上記のブログとは異なる)。
WAKE信号設定スイッチSW3(上側を左、下側を右に設定する)
また、多回転可変抵抗器を用い、電池電圧を分圧して、IchigoSodaのIN2端子へ入力します。可変抵抗器は、1VでAD変換値100が得られるように調整します。IN2端子に入力された電圧は、BASICプログラムで10回のサンプルの合計値を計算し、1Vあたり送信値1000となるようにして、sakura.ioのクラウドへ送信します。
sakura.ioのクラウドからAmbientへ転送する方法は、下記のブログを参照ください。
sakura.ioからAmbientへデータ転送(2018/5/19)
送信の様子を、いつでも確認できるように、クラウドサービスAmbientへ送信した。

IchigoJam BASICを使ったIoTセンサ用プログラム

使用した送信用のプログラムを以下に示します。行番号5のT=10は、送信間隔です。T=10は約10時間ごとに送信します。行番号110では、IN2端子に入力されたAD変換値を10回、取得し、変数Aにその総和が保持されます。また、行番号120では、前回送信したときの値との差を求め、200mV以上の変化があったときに送信を行います。
new
1 cls:?”SAKURA IoT TX ANA 44 3
2 ?”CC BY Wataru Kunino
3 ?”ボタン/センサ ニュウリョク BTN
4 S=1:?”ショウデンリョク S=”;S
5 T=10:?”ソウシン カンカク T=”;T;”ジカン”
10 ‘ショキカ
20 T=T*720:C=0
100 @MAIN
110 A=0:forI=1to10:A=A+ana(2):next
120 ?” A=”;A:if abs(B-A)>200 goto @ON
130 gsb @SLP:C=C+1:if C<T goto @MAIN
140 C=0:goto @ON
200 @ON
210 out 8,1
220 poke #880,1,0,1,0,0,0,0
230 I=!i2cr(#4F,#880,3,#884,3)
240 ?”Status I2C=”;I;
250 if I I=(peek(#886)=#80)
260 ?” LTE=”;I
270 if I goto @TX
280 gsb @SLP
290 goto @ON
300 @TX
310 X=A>>8:Y=A%256
320 poke #880,#21,#A,1,73,Y,X,0
330 poke #887,0,0,0,0,0,X^Y^#63
340 ?”LTE_Send= “;hex$(X);” “;hex$(Y);” “;
350 I=i2cw(#4F,#880,13)
360 if I ?”ERR” else B=A:?”OK”
370 gsb @SLP:out 8,0:gsb @SLP
380 goto @MAIN
500 @SLP
510 if inkey() cont
520 led 0:wait 300,!S:led 1
530 rtn
2018/10/29 修正
IchigoJam BASIC Ver. 1.2.3で動作確認済み

むすび

以上の製作およびプログラムでは、IN2端子へ分圧した電池電圧を入力することを想定していますが、温度センサや照度センサに変更することで、IoTセンサへの応用が可能です。
IchigoSodaのモバイル通信機能を使うことで、無線LANの届かない場所や、親族の家といった遠隔地や、車や外出時の鞄といったモバイル環境で利用可能なIoTセンサを簡単に実現することが出来そうです。
sakura.io製品:
IchigoSoda/IchigoJam for sakura.io (Amazonでの販売ページ)
sakura.io さくらの通信モジュール LTE (Amazonでの販売ページ)
by ボクにもわかるIchigoJam用マイコンボード
(アドレスが変わりました)
ボクにもわかる IchigoJam用 IchigoSoda / sakura.io の接続方法 (bokunimo.net)

IchigoSodaをケースへ組み込む。Ambientで乾電池駆動のIoTセンサ実験」への1件の返信

コメントは受け付けていません。

 - 
Chinese (Simplified)
 - 
zh-CN
Chinese (Traditional)
 - 
zh-TW
English
 - 
en
French
 - 
fr
German
 - 
de
Italian
 - 
it
Japanese
 - 
ja
Korean
 - 
ko
Russian
 - 
ru
Spanish
 - 
es