IchigoJam BASIC x sakura.io ではじめるIoT(準備の電子工作&データ発信編)
月額61円で使える4G通信モジュール「sakura.io」が、共立電子、Amazonに加え、秋月電子でも買えるようになりました!
sakura.ioとIchigoJamを使ったIoTづくりを解説します。(工作時間30分ほど)
スマホやPC、WebサーバーなどとIchigoJam、相互にお手軽IoT通信!
準備するもの
1. IchigoJam 1500円〜 (バージョン1.2.2)
2. sakura.io 通信モジュール 8,640円
3. sakura.io ブレイクアウトボード 2,700円
4. I2C電圧変換 PCA9306 150円
5. ジャンパーコード 220円
はんだごて、ニッパー、はんだ少々
モジュールづくり
IchigoJamと通信モジュールをつなぐボードをブレイクアウトボードを使って、電子工作します。
ブレイクアウトボード左 J1 | ブレイクアウトボード右 J2 | ||||||
---|---|---|---|---|---|---|---|
1 | I RESET H:通常, L:リセット | - | 20 | P VIN 電源(3V-5.5V) | 5V(IchigoJam) | ||
2 | P GND | - | 19 | P GND | GND(PCA9306/IchigoJam) | ||
3 | I MODE_IN H:SPI(def), L:GPIO | - | 18 | IO I2C_SCL | SDA2(PCA9306) | ||
4 | O LED_OUT status LED | - | 17 | IO I2C_SDA | SCL2(PCA9306) | ||
5 | O WAKE_OUT H:データあり | IN1(IchigoJam) 未接続でもOK | 16 | I SPI_CS | - | ||
6 | I WAKE_IN H:RUN/SLEEP, L:DEEPSLEEP | OUT1(IchigoJam) | 15 | I SPI_SCK (or GPIO) | - | ||
7 | IA ADC_IN2 | - | 14 | O SPI_MISO (or GPIO) | - | ||
8 | IA ADC_IN1 | - | 13 | I SPI_MOSI (or GPIO) | - | ||
9 | O LDO_OUT(1.8V) | VREF2(PCA9306) | 12 | I UART_RX | - | ||
10 | P 3.9V | - | 11 | O UART_TX | - |
* SCLとSDAを逆に使用
ブレイクアウトボード右側、電圧変換PCA9306を上下逆にするとGND/SCL/SDAが対応していて都合がいい。
PCA9306のピンヘッダーを2ピンだけに分割し、SCL/SDAにはんだづけ。
GNDはブレイクアウトボードとPCA9306両方にはんだづけ。
VREF2はブレイクアウトボードの16ピンに触れないようはんだづけ。
ブレイクアウトボード左側、 PCA9306のVREF2から9番ピンをジャンパーでつなぎはんだづけ。
スリープ制御用のWAKE_INに白、データ取得検知用のWAKE_OUTにオレンジの長めのジャンパーをはんだづけ。
ブレイクアウトボード左上20番ピンに黄色のジャンパーをはんだづけ。
PC9306AのVREF1に赤、SCL1に青、SDA1に緑のジャンパーをはんだづけして、できあがり!
WAKE_IN / WAKE_OUTが必要ない場合は、WAKE_INをLDO_OUT(1.8V)にプルアップ(10kΩ)だけしておきましょう。
IchigoJamに接続する
CN5
黄:5V *ACアダプターや充電式モバイルバッテリーなど電流が多めに流せること
青:SDA (or IN3)
緑:SCL (or EX1)
赤:3.3V
黒:GND
CN4
オレンジ:IN1 (受信状態検知、未接続でもOK)
白:OUT1 (モジュール省電力制御、使わない場合VCCへ)
モジュールとサービスの登録
sakura.ioの開発者向けから登録、ログイン
プロジェクト追加(名前、test)
モジュール登録
通信モジュールのシール下に書かれた(IDとPASS)を転記。QRコードを読み取ってコピペもできます!
プロジェクトのサービス「WebSocket」を追加(名前、test)し、WebSocketサービスを開いておきます。
IchigoJamからデータ送信
通信モジュールを動かす
OUT1,1
通信モジュールの点滅がはじまり、1分ほど待つと、1回点滅になります(3回は回線接続中、2回はサービス接続中)
次のプログラムを書いて、データを送信!
N=15 OK POKE#800,#21,10,1,76,N,N>>8,0,0,0,0,0,0,N>>8^N^102,36,0,36:?I2CR(79,#800,13,#820,3) 0
WebSocketの画面でデータが到着する様子がリアルタイムに見られます!
これでアナログセンサーに温度計や水位計、距離計などをつないで、モニターするデバイスが創れますね。
GPSと接続すれば、リアルタイムに位置情報を送ることも可能です。
データ受信編をお楽しみに!
(待てない方は、β版解説や公式資料など参照の上、チャレンジ!)
links
- sakura.io β版時点での解説
- 応用例、バスIIoT 送受信方法解説
- 応用例、めがね会館ビルチカ
- IchigoJam meets GPS receiver 'u-blox NEO-7M'