見出し画像

IoTで気象観測(その4) - Raspberry Pi編

今回は、Raspberry Piの実装などについて記載する。今回もソースコードは紹介せず、システム構成を中心に紹介する。下記がRaspberry Piの構成図だ。

画像1

ESP8266で取得したセンサーのデータは、HTTPでRaspberry Piへ送信される。

Raspberry PiではNginx + PHP + SQLiteでHTTPサーバーを構築しているおり、受信したセンサーデータをPHPからPythonを実行してAmbientへ送信している。さらに、PHPからSQLiteへデータを保存している。

わざわざPHPからPythonを実行しているのは、AmbientがPythonのライブラリーを提供しているからである。直接NginxからPythonを実行することも可能かもしれないが、今回は自身の知識的なこともあり、PHP→Pythonという実装にした(構築当時、Pythonについて知識が乏しく、PHPは少しだけ知っていたから)。今後、改善していきたい部分でもある。

また、Raspberry Piには有機ELディスプレイ(OLED)を2つ、I²Cバスに接続しており、観測データを表示している(下記写真: 残念ながら右側のOLEDは既に劣化して表示が薄いが、最近点灯しなくなった)。この表示にもPythonのプログラムを使っている。

画像2

また、2つのOLEDは同じI²Cバスに接続されており、そのままでは2つのOLEDは同じスレーブアドレスを持つため、一方のOLEDは裏の抵抗を付け替えることでスレーブアドレスを変更している。下記に接続図を示す。

画像3

以前も説明したが、ESP8266から直接Ambientへ送信することもできるが、ソフトウェアの書き換えに手間がかかることなどから、また、冗長性を持たせる観点からも一旦Raspberry Piでセンサーデータを受け取って処理し、Ambientにデータを送信している。

Raspberry Piにおける実装では、PHPの部分のプログラム以外はほとんどが公開されているライブラリーを使用している。このように、ESP8266同様、Raspberry Pi側もネットで取得可能なライブラリーを使用することで、比較的簡単に実装可能だ。

ここまでは、ハードウェア、ソフトウェアの技術的な概要を説明してきたが、次回は実測したデータの説明をしたいと思う。

よろしければ、サポートをお願いします。 より多くの方に役立つnoteを書けるよう頑張ります!!