こんにちは電子工作をやりたくなってきたid:Windymeltです.ところでみんな,勤怠システムがあったら次にすること,みんなは分かるかな?(声: 結月ゆかり)
そうだね,自動化だね!
と言いつつ当然の事ながら完全自動化はやりすぎです.タイムカード打刻マシンめいたIoTデバイスを作成することにします.ボタンを押すと勤怠してくれます.まあまあ便利で承認欲求を満たす,丁度良い落とし所だと言えます.
しかしそんな部品がどこにあると言うのでしょう?京都は寺町のマルツは閉店してしまったというのに?
どうして……(現場猫)
ワオ!ちょうど良いところに有機ELディスプレイやらESP-WROOM-02やらが落ちていたので,打刻マシンが作れますね.コードネームは勤怠マックスネオとします.
今回は基本設計について考えていこうと思います.(続くのかは不明)
マイコン
家にSWITCH SCIENCEのESPr Developerが落ちていました.ずっと昔に会社でIoTハンズオンをやったときに買ったやつですね.このテの端末にするなら性能は十分です.たいした計算や複雑なロジックもないしね.
GPIOの数もそこそこあるのでまあ……なんとかなるでしょ……(ちょっと嫌な予感がする)
ちなみに最新版はESP-WROOM-32を使っています.こっちのが性能が高いですね.ウチにあるのはESP-WROOM-02を使った,ちょっと古いやつです.
マイコンは3.3Vで駆動するけど,USB接続するとレギュレータで3.3Vが供給されるという仕様っぽい.開発時は便利そう.電子工作するとき,3.3Vと5Vとが混ざって困ったことしかない.今後は3.3Vが主流になってくのかな.
画面
シャウト失礼します!画面があったほうが楽しいじゃないですか.家に有機ELのディスプレイが落ちていたのでこれを使うことにします.有名すぎてデファクトスタンダードになってるLCD制御モジュールのHD44780とピンアサインがコンパチブルなので既存のライブラリをそのまま使えそう.
これはどこで買ったか完全に忘れていたけど,Strawberry Linuxで買ったやつだった.有機EL良いよね.使ったことないけど.
これも3.3Vで動作する.5Vでも動作するみたい.
ちなみに一般的な液晶インターフェイスはマイコンのGPIOを7本くらい占有します.デカい!
電源
もう完成したも同然なのだけれど,電源が必要.
間欠的とはいえWi-Fiに接続したりOELDを駆動するのでそこそこの電力を長時間供給してくれる電源が必要になり,今回は9V電池から3.3Vを供給してくれるおもしろガジェットを購入した.
5Vも3.3Vも供給できるのがカワイイですね.電流も十分です.
電子工作するとき,9V電池ってかなり優秀だと思うんですよね.5Vも3.3Vも生成できるし.アナログ回路組むとなっても上下4.5V取れるのはありがたい.
スイッチ
ユーザインタフェースが無いと勤怠できないので,スイッチを付けます.秋月で買っといたスイッチを使いましょう.
何の変哲も無いスイッチですね.
電源スイッチには別途スライドスイッチを用意することにします.
勤怠で2つと,汎用スイッチとで計3つくらい付けちゃいましょう.(GPIO足りるかな……)
こういうとき,AVRといったマイコンにはプルアップ抵抗が内蔵されていて,ピン→スイッチ→GNDとピン→Vccだけ用意すれば良いのですがESP-WROOM-02にはそういう贅沢なものは付いてなさそうなので抵抗器も用意する必要があります.
↑リンクにもある通り,WROOM-02のGPIOにはちょっとした制限があるのでじゃぶじゃぶ使うことができません.これ表示器の制御ピン足りるのかな……
まあ足りなかったら制御用マイコンを増やしてI2Cでつなげばいいか(脳死)
GPIOが足りなければ制御用マイコンを増やせばいいじゃない(この後処刑される)
— W i n d y m e l t (@windymelt) 2020年11月3日
ところでピンを節約する技として,各スイッチの抵抗値を素因数になるようにしてADコンバータにつなぐというワザを考えたのですがどうですか?ダメですか?止めときます!
基板
サンハヤトのブレッドボード風ボード(ICB-288GV)があったのでこれに実装してみます.
まとめ
がんばります