目的
離れた駐輪場に置いたバイクのバッテリー電圧を監視して、バッテリーあがりを回避します。
現状
入力電圧14Vから10Vの範囲において、0.1Vの誤差範囲で電圧を計測できました。
部屋の中で無線LoRaを使い、2台のPico間で相互に電圧を送受信できました。
それぞれのPicoは単独作動していて、パソコンなどホストマシンは接続していません。
今後、1台のPicoをバイク置き場におき、もう1台は家において試してみる計画です。
機能
- 無線技術LoRaで通信
- アナログ入力で電圧を計測
- リアルタイム・クロック(RTC)用ハードウェアを使い時刻を取得
- 液晶やePaperに情報を表示
- 1つのソフトを異なる2つのハードウェアで共有 (デジタル入力で切替)
ハードウェア (2台のPico)
- 1台目(左側)はLCD、2台目(右側)はePaperと異なる表示機器を使っています。
- 1台目はテスト用の電圧変換基板がついています。(写真左下の緑色の基板)
- 2台ともにLoRaの基板、 RTC、LED、スライドスイッチがついています。
部品の一覧
品名 | 個数 | 価格(税込) | 補足 |
---|---|---|---|
Waveshare RP2040-LCD-0.96 | 1 | 1,903円 | スイッチサイエンス, ラズパイ ピコ互換品 |
Raspberry Pi Pico | 1 | 748円 | スイッチサイエンス (RPI-PICO) |
連結ピンソケット 2×20(40P) ラズパイ用スタッキングコネクタ | 2 | 150円/個 | 秋月電子通商 【C-10702】 |
同期整流式昇降圧型スイッチング電源モジュールキット | 1 | 1,380円 | 秋月電子通商 【K-11212】 入出力2.5V~15V 最大1.5A |
ブレッドボード EIC-801 | 2 | 370円/個 | 秋月電子通商 【P-00315】 |
リアルタイムクロック (2個入り) | 1セット | 1195円 | アマゾン VKLSVAN 2個 DS3231 AT24C32 RTCモジュール |
Raspberry Pi Zero用LoRa HAT (*) | 2 | 3,080円/個 | スイッチサイエンス (CLEALINK-DTH-RPZLR-LA) |
その他 | 一式 | 200円程度 | 赤色LED, 抵抗・コネクタ |
*: Pi Zero用を、Picoで使っています。技適マーク付きで良い製品なのですが、現在スイッチサイエンスで扱っていないようなので、次回は LoRa通信モジュール(E220-900T22S)用評価ボードを購入しようと思っています。安いし。
2台のPicoのIO map
# | 用途 0.96LCD | 用途 Pico inky | LCDとinkyの差 |
---|---|---|---|
1 | UART0 TX (GP0) - LoRa TX | 左と同じ | |
2 | UART0 RX (GP1) - LoRa RX | 左と同じ | |
3 | GND | 左と同じ | |
4 | GP2 デバイス認識 | 左と同じ | 0: 0.96LCD, 1: inky |
5 | GP3 デバイス認識(予約) | 左と同じ | |
6 | (GP4) I2C0 SDA - RTC | 左と同じ | |
7 | (GP5) I2C0 SCL - RTC | 左と同じ | |
8 | GND | 左と同じ | |
9 | GP6 (未使用) | (未使用) | |
10 | GP7 - LoRa M0 | (未使用) | 差分あり |
11 | GP8 - LCD DC | GP8 - Diag LED | 差分あり |
12 | GP9 - LCD CS | GP9 - Diag switch | 差分あり |
13 | GND | 左と同じ | |
14 | GP10 - LCD CLK | GP10 - LoRa AUX | 差分あり |
15 | GP11 - LCD DIN | GP11 - LoRa M0 | 差分あり |
16 | GP12 - LCD RST | inky switch A | 差分あり |
17 | GP13 - LoRa AUX | inky switch B | 差分あり |
18 | GND | 左と同じ | |
19 | GP14 (未使用) | inky switch C | 差分あり |
20 | GP15 - LoRa M1 | 左と同じ | 差分あり |
21 | GP16 - Diag LED | inky MISO | 差分あり |
22 | GP17 - Diag switch | inky CS | 差分あり |
23 | GND | 左と同じ | |
24 | GP18 (未使用) | inky SCLK | 差分あり |
25 | GP19 (未使用) | inky MOSI | 差分あり |
26 | GP20 (未使用) | inky D/C | 差分あり |
27 | GP21 (未使用) | INKY RST | 差分あり |
28 | GND | 左と同じ | |
29 | GP22 (未使用) | (未使用) | |
30 | RUN/RESET | 左と同じ | |
31 | ADC0 (GP26) - Volt | inky BUSY | 差分あり |
32 | GP27 (未使用) | ADC1 (GP27) - Volt | 差分あり |
33 | GND | 左と同じ | |
34 | GP28 (未使用) | (未使用) | |
35 | ADC Vref (未使用) | 左と同じ | |
36 | 3V3 | 左と同じ | |
37 | 3V3 EN | 左と同じ | |
38 | GND | 左と同じ | |
39 | VSYS | 左と同じ | |
40 | VBUS | 左と同じ | |
xx | GP25 - LCD BL | (未使用) | 差分あり |
太字はハードウェアの制約(Picoへ直接ピンが接続される)のため、移動できないピンを表します。
おわりに
長期間通信する予定なので、通信にお金のかからないLoRaは魅力的です。コンクリに囲まれた駐輪場まで合計100mぐらい距離があります。しかし、それなりに大きいLoRa用アンテナを付けたところ、通信できました。たまたまかもしれませんが。このへんは、次の投稿にまとめたいと思っています。
動作する機器を作ることを優先しているため、Git管理しているソースコード(Python)は整理中で、まだ公開していません。
「コードを早く投稿しろ!」「どういう通信環境なの?」など、コメントいただけたら幸いです。喜んでコメントを優先して投稿をまとめます。
この記事は、次の記事の続きです。