DHT11モジュールとの格闘(いろいろ試してみた編)

まだまだ継続中の温湿度センサー、DHT11モジュールです。
【Article】「DHT11モジュールとの格闘」 - 非公式Rock研究所
https://informal-r-labo.net/posts/article013
【Article】DHT11モジュールとの格闘(続編) - 非公式Rock研究所
https://informal-r-labo.net/posts/article014
前回の記事の後もいろいろ試してみました。以下はDHT11モジュールとの格闘の続きです。
Python+mraa


上の画像は、前回の記事で実行したPythonのコードとその実行結果です。
GPIOから読み取った結果をその都度printを実行して画面出力しています。ただ、画面への出力は時間がかかる処理です。このprint処理がGPIOの読み込みを妨げているのではと思い、以下のようにGPIOから読み取った結果は変数に格納しておき、読み取りが終わった後に画面出力するように書き直しました。


書き直したコードの実行結果です。
前回に比べ格段によくなりました。ただ、DHT11モジュールからは'0(LOW)'と'1(HIGH)'の組み合わせで40bitの情報が送られてくる(StartSignalという送信を通知する信号を除く。)ため、少なくとも'0'と'1'のペアが40個ないといけません。しかし、何度実行しても40bitの情報を得ることはできませんでした。
C言語+mraa
次にC言語でsleep処理を記載し、GPIOの読み取りはmraaを使ったコードを書いてみました。

(コメントアウトばかりなのはご容赦ください。試行錯誤のなごりです。。)

Python+mraaのコードより細かく読み込めているような気がします。しかし、このコードでも40bitの情報を得ることはできませんでした。
Arduino UNO3
あまりにもうまくいかないので、「そもそも、DHT11が壊れてるんじゃ…」と思い、Arduinoで動くかどうか試してみました。
Arduinoだとネットを検索するとすぐに接続方法がヒットしますし、そのためのLibraryも用意されています。


結論:DHT11モジュールは壊れていませんでした。悲しくなるくらいサクサクと温度と湿度が表示されます。
壊れていなかったのはよかったですが、ただ、次の方法を模索していて、時間がかかっています。
なんなら「もう、Arduinoでいいんじゃね?」とすら思っていますが、もう少しねばります。