Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Multitemperatuursensor

Componenten en benodigdheden

DS18B20
× 8
schroeven
× 1
Arduino Nano R3
× 1
experimenteer pcb
× 1
weerstand 4.7k
× 1
2-poorts schroefaansluiting
× 1
SparkFun RS232 Shifter - SMD
× 1
3D-geprint hoesje
× 1
draad
× 1

Benodigde gereedschappen en machines

3D-printer (algemeen)
schroevendraaier

Apps en online services

Arduino IDE

Over dit project

Ik moest op verschillende posities temperaturen uitlezen. De temperatuur dient geparseerd te worden naar een domotica systeem (Crestron/AMX). De oplossing mag niet te veel kosten. Op deze manier besloot ik om DS18B20-sensoren te gebruiken omdat deze breed verkrijgbaar en redelijk goedkoop zijn. Last but not least, het is een bussysteem.

De sensoren zijn aangesloten op een Arduino Nano. De seriële uitgang van de Arduino (ttl) wordt geconverteerd naar RS232 om deze compatibel te maken met het domotica-systeem.

Om het er allemaal mooi uit te laten zien, heb ik een hoesje ontworpen en geprint op mijn Zortrax M200 3D-printer.

Vragen? Vragen staat vrij!

Code

  • MultiTempSensor v1.0.0
MultiTempSensor v1.0.0Arduino
Arduino Code
/*MultiTempSensor code door WT040De sensorcode is gebaseerd op de voorbeelden van Rik Kretzinger en enkele andere fragmenten van codeHistory:v0.1.1 27/11/2016v0.1.5 04/12/2016 pre-release versionv1.0.0 04 /12/2017 release versie*///Include's#include #include //Constants#define SENSOR_PIN 12#define READ_TIMER 10000 //10 seconden//OneWire oneWire(SENSOR_PIN);// Geef onze oneWire-referentie door aan 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, 0x1, 0x16, 0x1, 0x16 };DeviceAddress Sensor5 ={ 0x28, 0xFF, 0xFE, 0x13, 0x61, 0x16, 0x03, 0x56 };DeviceAddress Sensor6 ={ 0x28, 0xFF, 0x89, 0xBA, 0x60, 0x16, 0x03, 0xFB };DeviceAddress Sensor, =0xFF, 0xFA, 0xB C, 0x60, 0x16, 0x03, 0xD1 };DeviceAddress Sensor8 ={ 0x28, 0xFF, 0x57, 0xB1, 0x60, 0x16, 0x03, 0x93 };int hoeveelheid sensoren =8;//variabele om het aantal sensoren op de bus één keer per keer te controleren whileint counterCheckBus =0; void setup () { // start seriële poort om resultaten te tonen Serial.begin (9600); //display_Running_Sketch(); printProgramNaam(); Serial.print("Bibliotheekversie voor temperatuurregeling initialiseren"); Serial.println (DALLASTEMPLIBVERSION); Serial.print("Zoeken naar "); Serial.print (aantal sensoren); Serial.println ("sensoren..."); // Initialiseer de temperatuurmeetbibliotheek sensors.begin(); // stel de resolutie in op 10 bit (kan 9 tot 12 bits zijn ... lager is sneller) sensors.setResolution (Sensor1, 10); sensoren.setResolution (Sensor2, 10); sensoren.setResolution (Sensor3, 10); sensoren.setResolution (Sensor4, 10); sensoren.setResolution (Sensor5, 10); sensoren.setResolution (Sensor6, 10); sensoren.setResolution (Sensor7, 10); sensoren.setResolution (Sensor8, 10); getSensorsOnBus(); Serial.println("Systeem geïnitialiseerd");}void loop(){ counterCheckBus++; vertraging (READ_TIMER); Serieel.println(); if (counterCheckBus ==360) { getSensorsOnBus(); counterCheckBus =0; } sensoren.requestTemperatures(); Serial.print("Sensor 1:"); printTemperatuur(Sensor1); Serieel.println(); Serial.print("Sensor 2:"); afdruktemperatuur (sensor2); Serieel.println(); Serial.print("Sensor 3:"); printTemperatuur(Sensor3); Serieel.println(); Serial.print("Sensor 4:"); afdruktemperatuur (sensor4); Serieel.println(); Serial.print("Sensor 5:"); afdruktemperatuur (sensor5); Serieel.println(); Serial.print("Sensor 6:"); afdruktemperatuur (sensor6); Serieel.println(); Serial.print("Sensor 7:"); printTemperatuur(Sensor7); Serieel.println(); Serial.print("Sensor 8:"); afdruktemperatuur (sensor8); Serial.println();}void printTemperature(DeviceAddress deviceAddress){ float tempC =sensors.getTempC(deviceAddress); if (tempC ==-127.00) { Serial.print("Sensorfout!"); } else { Serial.print("C:"); Serial.print(tempC); }} ongeldig printProgramName() { String path =__FILE__; int schuine streep =pad.lastIndexOf('\\'); String programmanaam =pad.substring (slash + 1); int dot =programmanaam.lastIndexOf('.'); programmanaam =programmanaam.substring (0, punt); Serial.print("\nProgrammaversie:"); Serial.println(programmanaam);}void getSensorsOnBus() { Serial.print("Aantal sensoren gevonden op bus:"); Serial.println(sensors.getDeviceCount());}

Aangepaste onderdelen en behuizingen

3D-afdrukbare behuizing - bottom3D-printbare behuizing - top3D-afdrukbare behuizing - sub-d 9-montage

Schema's

basisschema, zonder rs232-module

Productieproces

  1. DS18B20-temperatuursensor
  2. Raspberry Pi Temperature Logger
  3. Python- en Raspberry Pi-temperatuursensor
  4. Raspberry Pi temperatuur- en lichtsensor
  5. Raspberry Pi-temperatuursensor
  6. DasFilisera Green House
  7. MotionSense
  8. 3D-printer brandveiligheid
  9. Arduino afstotende elektromagnetische levitatie
  10. CoroFence - Thermische Detector🖖
  11. Lagertemperatuursensor | detector