Ich mache ein IoT-Experiment mit Himbeerpis und Sensoren mit dem Ziel, Temperaturänderungen zu überwachen. Jeder Raspberry Pi ist mit mehreren Sensoren verbunden. Mein Ziel ist es, eine Lesung pro Sensor pro Sekunde zu haben, die Daten in einem Puffer (realer Puffer oder eine CSV-Datei) zu speichern und die Daten an einen Broker zu veröffentlichen. Das Programm macht jetzt alle Dinge in der Warteschlange. Es stellt sich eine gewisse Verzögerung heraus. Ich habe getestet und es stellt sich heraus, dass die Verzögerung vom Leseprozess kommt. Gibt es eine Möglichkeit, die Lesedauer zu reduzieren? Wird Multi Threading dieses Problem lösen? Wenn ja, was ich denke, ist 3 Thread zu erstellen. Sensor-Thread liest die Daten und speichert sie in einem Puffer. Communicator-Thread stellt eine Verbindung zum Broker her, liest die Daten im Puffer und sendet sie an den Broker. Der Haupt-Thread verwaltet den Sensor-Thread und den Communicator-Thread. Wenn ich das Programm auf diese Weise umgestalte, schreibe ich für jedes Sensor ein Sensorgewinde oder für alle Sensoren ein Sensorgewinde?Refactoring Multi-Thread-Programm auf Raspberry Pi mit Sensoren
Alle Vorschläge werden sehr geschätzt.
Der Pi sollte in der Lage sein, alle Sensoren einmal pro Sekunde ohne Probleme zu lesen, selbst wenn Sie ein Dutzend Sensoren haben. Das Verwenden von Threads klingt wie ein Over-Engineering des Problems. Sie sollten zuerst überprüfen, ob die Verzögerung vom Lesen des Sensors oder dem Schreiben der Daten kommt. Versuchen Sie dann, das Problem zuerst zu beheben. – JvO
Wie kann ich überprüfen, woher die Verzögerung kommt? Derzeit befinden sich alle Sensoren auf einem Steckbrett, kann es auch eine Verzögerung verursachen? – Tian