センサー(MQ-3)を使ってラズパイからアルコールを計測してみた | そう備忘録

センサー(MQ-3)を使ってラズパイからアルコールを計測してみた

souichirou

やった事を忘れない為の備忘録 同じような事をやりたい人の参考になればと思ってブログにしてます。 主にレゴ、AWS(Amazon Web Services)、WordPress、Deep Learning、RaspberryPiに関するブログを書いています。 仕事では工場に協働ロボットの導入や中小企業へのAI/IoT導入のアドバイザーをやっています。 2019年7月にJDLA(一般社団法人 日本デイープラーニング協会)Deep Learning for GENERALに合格しました。 質問は記事一番下にあるコメントかメニュー上部の問い合わせからお願いします。

おすすめ

3件のフィードバック

  1. kunkun より:

    初めまして、kunkunと申します。
    いつも拝見させて頂いています。ありがとうございます。

    ラズパイ及びpyhtonの勉強を初めて1ヶ月程度で、不躾な質問で申し訳ないのですが、質問させて下さい。

    センサー(MQ-3)を使ってラズパイからアルコールを計測してみたの記事で、
    アナログの実行結果がどうしてもZeroDivisionError: float division by zeroとなり、アルコール及びベンジンの検出量がprintされません。
    記載頂いている内容以外に必要なことはありますでしょうか?
    ※回路は見様見真似で同じものを作成し、プログラムはコピペさせて頂きました

    よろしくお願いいたします。

    • souichirou より:

      kunkun さん、こんにちは。

      “ZeroDivisionError: float division by zero” はいわゆるゼロ割エラーで何かの数字をゼロで割ってしまう事で発生するエラーです。
      割り算をやっている所は何箇所かありますが、仮に

      val["ALC"] = self.calculation_ppm(read/self.Ro*self.RO_CLEAN_AIR_FACTOR, self.ALC) # Rs/Roよりアルコールのppmを計算する

      だとすると self.Ro がゼロなのかも知れません。
      初期調整終了… 表示の後で Roを表示していますがゼロではありませんか?

      仮にself.Ro がゼロだとするとread_data関数の値がおかしい事になります。
      ADコンバーターから正しい値が出力されていないのだと思います。
      接続が間違っている、接触不良、壊れている等の理由が考えられますが、テスターをお持ちでしたら電圧を測ってみることで原因を絞ることが出来ます。

  2. kunkun より:

    souichirouさん

    さっそくご返信頂いてありがとうございました。

    ADコンバーターの接触が悪かったようで、繋ぎ直してみたところ、エラーなく動きました。
    ありがとうございます。

    本ページ記載の内容を応用させて頂いて、
    来年からのアルコールチェック義務化に向けて
    アルコールチェックの記録・保存をスプレッドシートで行う
    というのをやってみようと考えています。
    大変ためになりました。今後も更新を楽しみにしています。

質問やコメントや励ましの言葉などを残す

名前、メール、サイト欄は任意です。
またメールアドレスは公開されません。