簡易IoTシステム(type02)の開発 1

これまで開発してきた簡易IoTシステム(第1弾)は、装置の表示灯の点灯状況を、Webページで確認するシステムでしたが、そろそろ第2弾を検討開始しようと思います。

以前から考えていたのですが、第2弾(type02)では、製造装置で作った製品の個数をカウントして、Webページで確認するシステムを作ろうと思います。

以下のようなものを作ろうと思います。

  • 装置の駆動部分を観測することを想定し、スイッチのON/OFF、または光センサーの明るさの変化で、製造個数をカウントする。
  • IoTデバイスでは、数分毎に製造個数(スイッチのON/OFF回数)を集計して、Webサーバにデータを送信する。
  • Webサーバ側では、受信した情報を蓄積し、グラフ表示などを行う。

IoTデバイスの条件として、スイッチと光センサーのどちらでも、ハードウエアやソフトウエアは全く同じもので動作するようにしたいと思います(どちらを使う場合でも、センサーを付け替えるだけで良いようにしておく)。

スイッチだけなら、ON/OFFをデジタルで判定できるので簡単ですが、光センサーでも使えるようにしようと思うと、アナログ値を採取する必要があります。また、明/暗を判定するためのしきい値も必要になります。

type01では、しきい値を後から調節できるようにするために可変抵抗を用い、そのアナログ値もマイコンに取り込んでいました。type02でも同じ方法を使おうと思いますが、そうするとアナログ値をふたつマイコンに取り込むことになります。
ESPr Developerにはアナログ入力端子がひとつしかないので、type01と同じようにADコンバータを使わなければなりません。

結局、ハードウエア構成はtyoe01とほぼ同じになってしまいます。
なので、いっそのこと、ハードウエアはtype01と全く同じにしようと思います。そうすれば基板も共用できます。センサーが減る分(type01は3個→type02は1個)は、GNDにショートさせることにします。

次に、ソフトウエアについて。

処理する必要があるアナログ信号は1chだけですが、ハードウエアには3ch分が用意されています。
そのため、残り2chをどうするか考えました。実際の使用状況を想像する限り、ひとつの装置でふたつの駆動部分を観測することは考えづらいですが、実験段階では、ふたつのセンサーを同時に使用する可能性があります(同じ箇所にスイッチと光センサーの両方を取り付けて、どちらが正確かを調べる、等)。
ソフトウエアに未使用chの分まで処理を追加しておいても、特にバチは当たらないので、一応3chともに処理できるようにします。

また、IoTデバイスは、一定時間毎にデータをWebサーバに送信しますが、送信中は製造個数をカウントできません。これは、今考えている仕組みでは、どうにも仕方がないので、大まかな個数しか分からないということであきらめようと思います。
なお、実際にどのくらいの時間、カウントが止まってしまうのかは、実験で確認しようと思います。

これらの条件で、実験しました。

ハードウエアは、type01と全く同じものをブレッドボードで作りました。ソフトウエアも、type01のものから最低限の変更で作りました。


観測値がしきい値を超えた時にカウンタを +1 する仕組みですが、チャタリング(?)対策で、しきい値を超えた瞬間としきい値を下回った瞬間に、それぞれ「delay(50)」を入れました。
よって、スイッチが0.1秒よりも高速にON/OFFを繰り返すような用途では、正しくカウントできません。

このようにして準備した環境で、実験を行いました。

光センサーについては、カウント数が若干ずれていました。しきい値の調節で、もう少し精度が上がるかもしれません。
Webサーバにデータを送信する時間は1回あたり約5.1秒で、やはりその間はカウントできませんでした。

今後は、Webサーバ側で、受け取った情報をグラフ化するPHPプログラムを作ろうと思います。

One thought on “簡易IoTシステム(type02)の開発 1

  1. Pingback: 簡易IoTシステム(type02)の開発 2 – MSR合同会社