FlashairとArduinoの連携ではまったこと

前の記事で紹介したように、ArduinoとFlashairを連携させて、部屋の気温と湿度を外出先からモニタすることができるようになりました。そこで、次の段階として外出先からエアコンのスイッチを押すことを考えました。

GPIOモードを使えない

ちょうどFlashairにはGPIOに対応するピンが備わっているので、これを使ってエアコンのスイッチのオン・オフの動作を行おうと考えました。そこで、Flashair IoT HubからGPIOを早速制御してみたのですが、実行できず失敗になってしまいました。どうやら、ArduinoによってSD.begin()でSDカードを初期化すると、PIOモードにすることができなくなってしまうことが原因のようです。SDカードを初期化しなければいいのですが、それでは計測値をcsvファイルに書き込むことができなくなってしまいます。計測値を記録したcsvファイルをIoT Hubにアップロードすることで気温と湿度をモニタしている現状では、GPIOを使用してスイッチを動作させることはできないということがわかりました。

ファイルを操作できない

そこで、次はIoT Hubからluaスクリプトを実行して、SDカード内にオン・オフの情報をもったファイルを作成することを試しました。既存のテキストファイルにオン・オフという文字列を書き込むことをまず考えましたが、Arudinoでファイルの中身を読み込むとWiFiが落ちるので、却下しました。

ファイルを作成あるいはリネームでオン・オフを表現しようとしましたが、fa.rename()やio.open()を実行してもファイルが作成されなかったり、ファイル名が変更されませんでした。調べたところ、ファイルをアップロードしたりするには、ホスト機器(私の例だとArduino)からのSDカードへの書き込みをストップしないとダメで、一度ストップしたらシステムを再起動するまで再びホスト側からSDカードへ書き込みをすることはできないようです。ということで、ファイル操作を行うこともあきらめざるをえませんでした。

まとめ

FlashairとArduinoを組み合わせて色々なものを遠隔操作しようと考えていましたが、簡単にはいかないようです・・・

もう少し調べてみて、何か別の方法がないか色々と調べてみようと思います。今のところ、共有メモリを使えば実現できないかと考えています。

sciencompass34 has written 118 articles

はじめまして!”あおやぎ”と言います。
メーカーで研究開発の仕事をしています。このブログでは、私の専門分野である半導体やそれに関連する内容を紹介していきます。
半導体関連の知識をまとめたデータベースのようにしたいなと思っています。

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください