Multi-Temperatursensor
Komponenten und Verbrauchsmaterialien
| | × | 8 | |
| | × | 1 | |
 | | × | 1 | |
| | × | 1 | |
| | × | 1 | |
| | × | 1 | |
 | SparkFun RS232 Shifter - SMD | | × | 1 | |
| | × | 1 | |
| | × | 1 | |
Über dieses Projekt
Ich musste die Temperaturen an mehreren Positionen auslesen. Die Temperatur sollte auf ein Domotica-System (Crestron/AMX) geparst werden. Die Lösung sollte nicht zu viel kosten. Auf diese Weise habe ich mich für DS18B20-Sensoren entschieden, da diese weit verbreitet und relativ günstig sind. Nicht zuletzt ist es ein Bussystem.
Die Sensoren sind mit einem Arduino Nano verbunden. Der serielle Ausgang des Arduino (ttl) wird in RS232 umgewandelt, um ihn mit dem domotica-System kompatibel zu machen.
Damit alles schön aussieht, habe ich eine Hülle entworfen und auf meinem Zortrax M200 3D-Drucker gedruckt.
Fragen? Fragen Sie nur!
Code
MultiTempSensor v1.0.0Arduino
Arduino Code/*MultiTempSensor-Code von WT040Der Sensorcode basiert auf den Beispielen von Rik Kretzinger und einigen anderen Ausschnitten von codeHistory:v0.1.1 27.11.2016v0.15 04.12.2016 Vorabversionv1.0.0 04 /12/2017 Release-Version*///Include's#include #include //Konstanten#define SENSOR_PIN 12#define READ_TIMER 10000 //10 Sekunden//OneWire oneWire(SENSOR_PIN);// Übergeben Sie unsere oneWire-Referenz an Dallas Temperature.DallasTemperature Sensoren(&oneWire);//Sensoradressen DeviceAddress Sensor1 ={ 0x28, 0xFF, 0x89, 0x0F, 0x61, 0x16, 0x03, 0x40 };DeviceAddress Sensor2 ={ 0x28, 0xFF, 0xE2, 0x0F , 0x61, 0x16, 0x03, 0x21 };DeviceAddress Sensor3 ={ 0x28, 0xFF, 0x38, 0xB3, 0x60, 0x16, 0x03, 0xEA };DeviceAddress Sensor4 ={ 0x28, 0xFF, 0xA4, 0xBE, 0x60, 0x16, 0x .03 };DeviceAddress Sensor5 ={ 0x28, 0xFF, 0xFE, 0x13, 0x61, 0x16, 0x03, 0x56 };DeviceAddress Sensor6 ={ 0x28, 0xFF, 0x89, 0xBA, 0x60, 0x16, 0x03, 0xFB };DeviceAddress Sensor7 ={ 0x28, 0xFF, 0xFA, 0xB C, 0x60, 0x16, 0x03, 0xD1 };DeviceAddress Sensor8 ={ 0x28, 0xFF, 0x57, 0xB1, 0x60, 0x16, 0x03, 0x93 };int MengeOfSensors =8;//Variable um die Anzahl der Sensoren auf dem Bus einmal in a . zu überprüfen whileint counterCheckBus =0;void setup () {// Serieller Port starten, um Ergebnisse anzuzeigen Serial.begin (9600); //display_Running_Sketch(); printProgrammname(); Serial.print ("Initialisierung der Version der Temperaturkontrollbibliothek"); Serial.println (DALLASTEMPLIBVERSION); Serial.print ("Suche nach"); Serial.print (MengeOfSensors); Serial.println("Sensoren..."); // Initialisieren Sie die Temperaturmessbibliothek sensor.begin(); // setze die Auflösung auf 10 Bit (kann 9 bis 12 Bit sein.. niedriger ist schneller) Sensoren.setResolution (Sensor1, 10); sensor.setResolution (Sensor2, 10); sensor.setResolution (Sensor3, 10); sensor.setResolution (Sensor4, 10); sensor.setResolution (Sensor5, 10); sensor.setResolution (Sensor6, 10); sensor.setResolution (Sensor7, 10); sensor.setResolution (Sensor8, 10); getSensorsOnBus(); Serial.println("System initialisiert");}void loop(){ counterCheckBus++; Verzögerung (READ_TIMER); Serial.println(); if (counterCheckBus ==360) { getSensorsOnBus(); counterCheckBus =0; } sensoren.requestTemperatures(); Serial.print ("Sensor 1:"); Drucktemperatur (Sensor1); Serial.println(); Serial.print ("Sensor 2:"); Drucktemperatur (Sensor2); Serial.println(); Serial.print ("Sensor 3:"); Drucktemperatur (Sensor3); Serial.println(); Serial.print ("Sensor 4:"); Drucktemperatur (Sensor4); Serial.println(); Serial.print("Sensor 5:"); Drucktemperatur (Sensor5); Serial.println(); Serial.print("Sensor 6:"); Drucktemperatur (Sensor6); Serial.println(); Serial.print("Sensor 7:"); Drucktemperatur (Sensor7); Serial.println(); Serial.print("Sensor 8:"); Drucktemperatur (Sensor8); Serial.println ();}void printTemperature (DeviceAddress deviceAddress) { float tempC =Sensoren.getTempC (deviceAddress); if (tempC ==-127.00) {Serial.print ("Sensorfehler!"); } sonst {Serial.print ("C:"); Serial.print (tempC); }}void printProgramName() { String path =__FILE__; int Schrägstrich =path.lastIndexOf('\\'); String programName =path.substring(Slash + 1); int dot =programName.lastIndexOf('.'); Programmname =Programmname.substring(0, Punkt); Serial.print("\nProgrammversion:"); Serial.println (Programmname);}void getSensorsOnBus () { Serial.print ( "Anzahl der auf dem Bus gefundenen Sensoren:"); Serial.println(sensors.getDeviceCount());}
Kundenspezifische Teile und Gehäuse
3D druckbare Hülle - unten3D druckbare Hülle - top3D druckbare Hülle - Sub-D 9 Halterung Schaltpläne
Grundschema, ohne RS232-Modul