0

私の小さなプロジェクトのこの段階では、web.py を取得して、Raspberry Pi に接続されたいくつかのセンサーから取得した情報を表示したいと考えています。情報を定期的に取得したいので、ライブラリを使用してセンサーを更新し、読み取り値を dict に貼り付け、10 秒間スリープするループをコードの最後に配置します。

while True:
    onewiretemp.refreshSensor()
    temperatures = onewiretemp.sensorTemp
    time.sleep(10)

残念ながら、これの副作用は、プログラムを実行してページをロードしようとすると、ループが実行され、ページがロードされないことです。また、プロセスを停止するには、プロセスを手動で強制終了する必要があります。これは、ループが無期限に実行されているためだと思います。

私のコードの残りの部分は、基本的にチュートリアルと web.py Web サイトからのいくつかのテンプレートです。その部分は、ループを無効にして、onewiretemp モジュールからの出力と同じ形式のデータを手動で追加すると機能します。

すべてを壊さない、これを行うためのより良い方法はありますか?

4

1 に答える 1

1

センサーのポーリング ループを別のスレッドで実行します。読み取りまたは書き込み時にロックで温度を保護します。メインの web.py スクリプトは、ロックを取得して最新のデータを取得できます。

于 2013-08-06T01:55:53.097 に答える