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

Temperatuurbewaking op de Raspberry Pi

Overzicht

De Raspberry Pi is een kleine computer met één bord (SBC) die hier in het VK is ontwikkeld door de Raspberry Pi Foundation. Het draait verschillende versies van Linux op ARM en heeft een set I/O-pinnen die je kunt gebruiken om externe componenten zoals sensoren, knoppen enz. aan te sluiten. De Raspberry Pi heeft helaas geen ingebouwde analoog-naar-digitaal converter, dus we kunnen geen analoge temperatuursensor gebruiken zoals de TMP36 die prima werkt met de Arduino, het alternatief is om een ​​digitale temperatuursensor te gebruiken.

Onderdelen

Raspberry Pi
DS18B20-temperatuursensor
4.8k Ohm-weerstand
Prototyping-plaat
Pi Cobbler
Halfgroot breadboard
Jumperdraadpakket

Basisontwerp

Hardware

In het basisontwerp hebben we alleen de Raspberry Pi, DS18B20-temperatuursensor, 4.8k Ohm-weerstand, Pi Cobbler, Half-sized breadboard en jumperdraden nodig. Alles wordt in het breadboard geplaatst om het testen en ontwerpen te vergemakkelijken.

Bedradingsschema

De sensoren zijn vrij uniek omdat ze parallel kunnen worden aangesloten en er zoveel sensoren aan het systeem kunnen worden toegevoegd als gewenst. De sensoren communiceren via een seriële interface met één draad en als je Rasbian op de Raspberry Pi gebruikt, zal het de sensoren identificeren als aangesloten seriële apparaten. De sensor moet echter worden aangesloten op pin4 op de GPIO, aangezien dit de enige pin is die (momenteel) communicatie mogelijk maakt via het eendraads seriële protocol.

Je kunt dit diagram uit de handleiding van Adafruit gebruiken voor het instellen van de DS18B20-temperatuursensor op de Raspberry Pi om het gemakkelijker te begrijpen wanneer je alles met elkaar verbindt.

DS18B20

U kunt de DS18B20 in drie vormen kopen:er is een normaal transistorachtig component beschikbaar, een waterdichte versie met een lange kabel eraan bevestigd en een versie voor hoge temperaturen.

Alle drie de DS18B20 bevatten de speciale 1-draads seriële interface, evenals de besturingslogica en temperatuursensor zelf. Het voert de digitale metingen uit naar de Raspberry Pi en afhankelijk van je distro bevat de nieuwste versie van Raspbian een manier om die berichten te lezen zonder extra werk. Als je alles hebt aangesloten, kun je het testen via de opdrachtregel met behulp van de onderstaande opdrachten.

123456sudo modprobe w1–gpiosudo modprobe w1–thermcd /sys/bus/w1/deviceslscd 28–xxxx (wijzig dit zodat het overeenkomt met die van jou)cat w1_slave

Typ de opdrachten die u hierboven ziet in een terminalvenster. Navigeer naar de map '/sys/bus/s1/devices'. In de commando's boven de 'cd'-opdracht is het ingesteld op de map die begint met '28-'. Het kan een andere naam op uw systeem hebben, omdat het gebaseerd is op het serienummer van de DS18B20 nummer, dus cd naar de naam van de directory die er is.

Het antwoord heeft JA of NEE aan het einde van de eerste regel. Als het ja is, dan zal de temperatuur aan het einde van de tweede regel zijn, in 1/000 graden C.

Software

Nadat het circuit is samengesteld, moeten we nu het programma schrijven om de temperatuurgegevens van de sensor te lezen, in het basisontwerp zal het programma de gegevens elke seconde lezen en de meting weergeven op stdout in terminal.

De softwaretaal die we gaan gebruiken om de data van de DS18B20 temperatuursensor uit te lezen is Python. Voeg dit toe aan een bestand en sla op als 'temp_logger_basic.py'

1234567891011121314151617181920212223242526272829303132import osimport globimport timeos.system('modprobe w1-gpio')os.system('modprobe w1-therm')base_dir ='/sys/bus/w1/devices/'device_folder =glob.glob '28*'dir )[0]device_file =device_folder + '/w1_slave'def read_temp_raw():    f =open(device_file, 'r')    lines =f.readlines()    f.close()    return linesdef read_temp():    lines =read_temp_raw() while lines[0].strip()[–3:] !='YES':        time.sleep(0.2)        lines =read_temp_raw()    equals_pos =lines[1].find('t=')    if equals_pos !=– 1:        temp_string =lines[1][equals_pos+2:]        temp_c =float(temp_string) / 1000.0        temp_f =temp_c * 9.0 / 5.0 + 32.0        return temp_c, temp_fwhile True:       (.)(read    

Bovenaan het programma nemen we modules op die we in het script zullen gebruiken, daarna gaat het verder met het uitgeven van de 'modprobe'-opdrachten die nodig zijn om de interface te starten. Zoek in de volgende drie regels het bestand waaruit de gegevens kunnen worden gelezen.

Er zijn twee functies die het aflezen van de temperatuur afhandelen, 'read_temp_raw' haalt de twee regels met berichten uit de interface. De functie 'read_temp' retourneert elke seconde twee waarden, de temperatuur in Celsius en de temperatuur in Fahrenheit.

Hier is een uitvoer van het script.

123456789sculley@berry:/usr/local/temperature/$ sudo python ./temp_logger_basic.py (18.875, 65.975) (18.875, 65.975) (18.875, 65.975) (18.875, 65.975) (18.875, 65.975) (18.875, 65.975) 18.875, 65.975) (18.875, 65.975)

Het script moet als root worden uitgevoerd, en je moet ook python gebruiken om het script aan te roepen, aangezien we de Python-kreet niet bovenaan het script hebben toegevoegd.

Dus dat is alles, u had het basisontwerp met succes moeten aansluiten en het basisscript moeten schrijven om de temperatuurgegevens van de DS18B20-temperatuursensor te lezen. Nu kunnen we verder gaan met het meer geavanceerde ontwerp.

Geavanceerd ontwerp

In het geavanceerde ontwerp zal ik je mijn ontwerp van mijn temperatuurlogger laten zien, waarbij ik de componenten op een PCB-schild heb gesoldeerd die in de Raspberry Pi wordt gestoken en is opgeslagen in een kleine zwarte doos om alles te verbergen, de code wordt elk uur uitgevoerd en slaat de gegevens naar een MySQL-database, ik gebruik dit om de gegevens in een Google Chart weer te geven, waardoor het gemakkelijker te visualiseren is.

Hardware

Voor het geavanceerde ontwerp hebben we dezelfde onderdelen nodig als de basis, behalve de Pi Cobbler (Raspberry Pi, DS18B20-temperatuursensor, 4.8k Ohm-weerstand, Half-sized breadboard en jumperdraden) maar we hebben ook een PCB nodig, ik kocht de Raspberry Pi prototype schild van Adafruit dat geweldig is voor het maken van semi-permanente ontwerpen.

Voor meer details:temperatuurbewaking op de Raspberry Pi


Productieproces

  1. Raspberry Pi Temperature Logger
  2. Raspberry Pi-temperatuurprofiel met LabVIEW
  3. Raspberry Pi temperatuur- en vochtigheidsnetwerkmonitor
  4. Temperatuur aflezen met DS18B20 | Raspberry Pi 2
  5. Temperatuur meten met RASPBERRY PI
  6. Python- en Raspberry Pi-temperatuursensor
  7. Eenvoudige temperatuur en vochtigheid op Raspberry Pi
  8. Temperatuur bewaken met Raspberry Pi
  9. DIY:temperatuurbewaking en -regeling voor HomeBrew
  10. Raspberry Pi leest BMP085 temperatuur en druk
  11. Bewaking op afstand van het weer met Raspberry Pi