2つのArduino UnoをXBeeで通信してみる

センサーを買ってきて、Arduinoとか、Raspberry Piとかにセンサーを付けて計測するというのでも問題はないのですが、複数の場所に設置しないといけなくなると配線しないといけないとか、いろいろめんどくさいことが起きます。そういう時は無線化してしまうのが一番簡単な方法だと思います。無線化してしまえば、電源の確保をどうするかと、電波が届くかどうかを考えていればいいだけで、めんどくさいのはずいぶん無くなります。電波が届くのかどうかを調べる必要がありますけど。

 

ArduinoもRaspberry Piも小型なので無線化してセンサープローブとして利用するというのが便利な方法なのですが、Raspberry PiはあくまでPCなので、急な電源断とかを繰り返していると不具合が起きそうなのですが、Arduinoはマイコンでしかないので、その部分としてはArduinoの方は強いと思います。それにArduino UNOだとマイコンのチップを移植することが可能で、プローブをできる限り安く作ることもできるという利点があります。

 

ということで、ここでは2つのArduino Unoを使って無線通信でセンサーから読み取ったデータを転送するということを考えてみます。

 

では、どういう規格の無線を考えるかということになるのだけど、WiFiなり、3G(LTE)なりいろいろあるのですが、ここではZigBeeを使ってみることにします。比較的に安い(対で買うことを考えると決して安くない)のが理由です。Arduino UNOでZigBeeといえば、XBeeが有名なので、変なのを使ってドツボにはまることもないのでXbeeを使ってみることにします。今回は、値段も手頃なXBee ZBを購入してみた。

 

センサーですが、なんでもいいのですが、I2Cで使えるBME280の気圧・温度・湿度センサーがあるのでそれを使います。

 

今回の手順は次のように行います。

  1. XBee ZBの設定して、通信確認をする
  2. センサー側(送信側)のArduino UNOの開発
    1. データの転送の確認
    2. 実際にセンサーを使って、データを送信する
  3. 受信側のArduino UNOの開発

という感じです。