het bouwen van een Raspberry Pi temperatuurmonitor

temperatuur en vochtigheid zijn belangrijke data punten in de huidige industriële wereld. Het monitoren van milieugegevens voor serverruimtes, commerciële diepvriezers en productielijnen is noodzakelijk om alles soepel te laten verlopen. Er zijn tal van oplossingen die er, variërend van basic tot complex en het kan lijken overweldigend op wat uw bedrijf nodig heeft en waar te beginnen.

we zullen het bouwen en gebruiken van een Raspberry Pi temperatuursensor met verschillende temperatuursensoren bespreken. Dit is een goede plek om te beginnen, omdat deze oplossingen zijn goedkoop, gemakkelijk te doen, en geeft u een basis om uit te bouwen voor andere milieumonitoring.

een Raspberry Pi is een goedkope enkele boordcomputer waarmee u verbinding kunt maken met een temperatuursensor en de gegevens kunt streamen naar een datavisualisatiesoftware. Raspberry Pi ‘ s begon als een leermiddel en zijn geëvolueerd naar een industriële werkplek tool. Het gebruiksgemak en de mogelijkheid om te coderen met Python, de snelst groeiende programmeertaal, heeft ze een go to oplossing gemaakt.

u wilt een Raspberry Pi die WiFi ingebouwd heeft, welke elk model 3, 4 en Nul W / WH zijn. Tussen die kunt u kiezen op basis van prijzen en functies. De Zero W / WH is de goedkoopste, maar als je meer functionaliteit nodig hebt kun je kiezen tussen de 3 en 4. U kunt alleen kopen een Nul W / WH op een moment als gevolg van beperkingen door de Raspberry Pi Stichting. Wat Pi u ook kiest, zorg ervoor dat u een lader te kopen, want dat is hoe je de macht van de Pi en een SD-kaart met Raspbian om de installatie van het besturingssysteem zo eenvoudig mogelijk te maken.

er zijn ook andere enkele boordcomputers die kunnen werken, maar dat is voor een andere tijd en een ander artikel.

sensoren

er zijn vier sensoren die we aanraden te gebruiken omdat ze goedkoop zijn, gemakkelijk te verbinden en nauwkeurige metingen geven; DSB18B20, DHT22, BME280 en Raspberry Pi Sense HAT.

DHT22-deze temperatuur – en vochtigheidssensor heeft een temperatuurnauwkeurigheid van + / – 0,5 C en een vochtigheidsbereik van 0 tot 100 procent. Het is eenvoudig om de draad tot aan de Raspberry Pi en vereist geen pull up weerstanden.

DSB18B20 – deze temperatuursensor heeft een digitale uitgang, die goed werkt met de Raspberry Pi. Het heeft drie draden en vereist een broodplank en weerstand voor de verbinding.

BME280-deze sensor meet temperatuur, vochtigheid en barometerdruk. Het kan gebruikt worden in zowel SPI als I2C.

Sense HAT-dit is een add aan boord voor Raspberry Pi die LEDs, sensoren en een kleine joystick heeft. Het sluit direct aan op de GPIO op de Raspberry Pi, maar met behulp van een lintkabel geeft u meer nauwkeurige temperatuurmetingen.

Raspberry Pi Setup

als dit de eerste keer is dat u uw Raspberry Pi installeert, moet u het Raspbian-besturingssysteem installeren en uw Pi verbinden met WiFi. Hiervoor is een monitor en toetsenbord nodig om verbinding te maken met de Pi. Zodra u het up and running en aangesloten op de WiFI, uw Pi is klaar om te gaan.

initiële status Account

u moet ergens uw gegevens verzenden om een historisch logboek bij te houden en de real-time gegevensstroom te bekijken, zodat we de initiële status zullen gebruiken. Ga naar https://iot.app.initialstate.com en maak een nieuw account aan of log in op uw bestaande account.

vervolgens moeten we de initiële status Python module installeren op je Pi. Bij een opdrachtprompt (vergeet niet eerst SSH in je Pi te zetten), voer je het volgende commando uit:

$ cd /home/pi/
$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash

nadat u de opdracht curl in de opdrachtprompt hebt ingevoerd, ziet u iets dat lijkt op de volgende uitvoer naar het scherm:

wanneer u wordt gevraagd om automatisch een voorbeeldscript op te halen, typt u y. dit maakt een testscript aan dat we kunnen uitvoeren om ervoor te zorgen dat we gegevens naar de beginstatus kunnen streamen. De volgende prompt zal vragen waar u het voorbeeldbestand wilt opslaan. U kunt een aangepast lokaal pad typen of op enter drukken om de standaardlocatie te accepteren. Tot slot, wordt u gevraagd welke initiële status app die u gebruikt. Als u onlangs een account hebt aangemaakt, selecteert u Optie 2, voert u uw gebruikersnaam en wachtwoord in. Daarna is de installatie voltooid.

laten we eens kijken naar het voorbeeld script dat is gemaakt.

$ nano is_example.py

op Regel 15 ziet u een regel die begint met streamer = Streamer(bucket_ .... Deze regels maken een nieuwe data emmer genaamd “Python Stream Example” en is gekoppeld aan uw account. Deze associatie gebeurt door de parameter access_key="..." op dezelfde regel. Die lange reeks letters en cijfers is je eerste toegangssleutel. Als u naar uw initiële status account in uw webbrowser, klik op uw gebruikersnaam in de rechterbovenhoek, ga dan naar “mijn instellingen”, vindt u dezelfde toegangssleutel hier onder “streaming Access Keys”.

Initial State Stream Access Keys

elke keer dat u een datastroom maakt, zal die toegangssleutel die datastroom naar uw account leiden (dus deel uw sleutel met niemand).

voer het testscript uit om er zeker van te zijn dat we een datastroom kunnen maken naar uw initiële Statusaccount. Voer het volgende uit:

$ python is_example.py

Ga terug naar uw oorspronkelijke status-account in uw webbrowser. Een nieuwe data emmer genaamd “Python Stream Example” zou aan de linkerkant in je log plank moeten verschijnen (Je Moet Misschien de pagina vernieuwen). Klik op deze emmer en klik vervolgens op het Waves-pictogram om de testgegevens te bekijken.

initiële status Python Stream voorbeeld dashboard

Als u Python 3 gebruikt, kunt u de initiële status Streamer Module installeren die u kunt installeren met het volgende commando:

pip3 install ISStreamer

nu zijn we klaar om de temperatuursensor met de Pi in te stellen om de temperatuur naar een dashboard te streamen.

DHT22 oplossing

u hebt de volgende items nodig om deze oplossing te bouwen:
– DHT22 temperatuur-en vochtigheidssensor

DHT22 zal drie spelden — 5V, Gnd, en gegevens hebben. Er moet een pin label voor de macht op de DHT22 (b.v. ‘ + ‘ of ‘5V’). Sluit dit aan op pin 2 (de rechterbovenpin, 5V) van de Pi. De GND-pin wordt gelabeld als’ – ‘ of ‘ Gnd ‘ of iets dergelijks. Verbind dit met speld 6 Gnd (twee spelden onder de 5V speld) op Pi. De resterende pin op de DHT22 is de data pin en zal worden gelabeld ‘ out ‘of’ s ‘of’data’. Sluit dit aan op een van de GPIO pinnen op de Pi zoals GPIO4 (pin 7). Zodra dit is aangesloten, zet je je Pi aan.

voor deze oplossing moeten we Python 3 en de CircuitPython bibliotheek gebruiken omdat Adafruit de DHT Python bibliotheek verouderd heeft.

installeer de CircuitPython-DHT Python-module achter een opdrachtprompt om het lezen van DHT22-sensorgegevens super eenvoudig te maken:

$ pip3 install adafruit-circuitpython-dht
$ sudo apt-get install libgpiod2

met ons besturingssysteem geïnstalleerd samen met onze twee Python-modules voor het lezen van sensorgegevens en het verzenden van gegevens naar de initiële status, zijn we klaar om ons Python-script te schrijven. Het volgende script zal maken / toevoegen aan een initiële status data emmer, lees de DHT22 sensor data, en stuur die gegevens naar een real-time dashboard. Het enige wat je hoeft te doen is de regels 6-11 aanpassen.

  • Lijn 7 – deze waarde moet uniek zijn voor elke knoop / temperatuursensor. Dit kan de naam van de kamer van uw sensor node zijn, fysieke locatie, unieke identificatie, of wat dan ook. Zorg ervoor dat het uniek is voor elk knooppunt om ervoor te zorgen dat de gegevens van dit knooppunt gaat naar zijn eigen gegevensstroom in uw dashboard.
  • regel 8-Dit is de naam van de data bucket. Dit kan op elk moment worden gewijzigd in de initiële status UI.
  • regel 9-Dit is uw bucket-toets. Het moet dezelfde bucket-toets zijn voor elk knooppunt dat u in hetzelfde dashboard wilt weergeven.
  • regel 10 – Dit is uw toegangssleutel voor de initiële status van uw account. Kopieer en plak deze sleutel uit uw initiële status account.
  • lijn 11-Dit is de tijd tussen sensorlezingen. Verander dienovereenkomstig.
  • regel 12-u kunt metrische of imperiale eenheden opgeven op Regel 11.

nadat u regels 7-12 hebt ingesteld in uw Python-script op uw Pi, slaat u de teksteditor op en verlaat u deze. Voer het script uit met het volgende commando:

$ python3 tempsensor.py
hier is een voorbeeld van het gebruik van de DHT22 sensor met de Raspberry Pi

nu zult u gegevens verzenden naar een eerste Status dashboard. Ga naar het laatste gedeelte van dit artikel voor meer informatie over het aanpassen van uw dashboard.

Dsb18b20 oplossing

u hebt de volgende items nodig om deze oplossing te bouwen:
– Dsb18b20 temperatuursensor
– 10k weerstand
– Breadboard
– 40-pins Breakout Board + lintkabel
– draden

de lintkabel sluit aan op de GPIO-pinnen op de Pi. De DS18B20 heeft drie draden. De rode draad sluit aan op 3.3 V. De blauw / zwarte draad sluit aan op de grond. De gele draad wordt aangesloten op een pull-up weerstand/pin 4. Zodra dit is aangesloten, zet je je Pi aan.

de nieuwste versie van Raspbian (kernel 3.18) vereist een toevoeging aan uw /boot/config.txt-bestand voor de Pi om te communiceren met de DS18B20. Voer het volgende uit om dit bestand te bewerken:

$ sudo nano /boot/config.txt

als de volgende regel nog niet in dit bestand staat (als dat zo is, staat het waarschijnlijk onderaan het bestand), voeg het toe en sla het bestand op.

dtoverlay=w1-gpio,gpiopin=4

herstart uw Pi voordat de wijzigingen van kracht worden.

$ sudo reboot

om de meetinterface van de temperatuursensor te starten, moeten twee commando ‘ s worden uitgevoerd. Ga naar een command prompt op uw Pi of SSH in uw Pi. Typ de volgende commando ‘ s:

$ sudo modprobe w1-gpio$ sudo modprobe w1-therm

de uitgang van uw temperatuursensor wordt nu naar een bestand op uw Pi geschreven. Om dat bestand te vinden:

$ cd /sys/bus/w1/devices

In deze directory zal er een sub-directory zijn die begint met “28-“. Wat na de “28-” komt is het serienummer van uw sensor. cd in die map. In deze directory, een bestand genaamd w1_slave bevat de output van uw sensor. Gebruik nano om de inhoud van het bestand te bekijken. Zodra je het bestand hebt ingevoerd, zal het er ongeveer zo uitzien:

a2 01 4b 46 7f ff 0e 10 d8 : crc=d8 YESa2 01 4b 46 7f ff 0e 10 d8 t=26125

het getal na ” t=”is het getal dat we willen. Dit is de temperatuur in 1/1000 graden Celsius (in het voorbeeld hierboven is de temperatuur 26,125 C). We hebben gewoon een simpel programma nodig dat dit bestand leest en dat nummer ontleedt. Daar komen we zo op terug.

alles is nu klaar om gegevens te streamen. Om de teksteditor te openen typt u het volgende in de opdrachtprompt:

$ nano temperature.py

kopieer en plak de onderstaande code in de teksteditor.

u moet uw initiële State access-sleutel op Regel 6 zetten in plaats van PUT_YOUR_ACCESS_KEY_HERE (kopieer de streaming-sleutel naar uw klembord vanuit ‘mijn Account’ en plak het in de code in nano in uw terminal).

regel 6 zal een emmer met de naam “Temperature Stream” aanmaken in uw initiële Statusaccount (ervan uitgaande dat u uw access_key correct hebt opgegeven op dezelfde regel). Regels 8 tot en met 30 van dit script kunnen eenvoudig worden gekoppeld aan de DS18B20-sensor om de temperatuur te lezen uit het w1_slave-bestand dat we eerder hebben besproken. De read_temp_raw () functie op Regel 15 leest het ruwe w1_slave bestand. De read_temp () functie op Regel 21 ontleedt de temperatuur uit dat bestand. Lijn 34 roept deze functies op om de huidige temperatuur te krijgen. Lijn 35 zet de temperatuur om van Celsius naar Fahrenheit. Lijnen 35 en 36 stromen de temperatuur naar uw initiële status rekening. Regel 37 pauzeert het script voor 0,5 seconden, waarbij wordt ingesteld hoe vaak de temperatuursensor wordt gelezen en gestreamd.

we zijn klaar om te beginnen met streamen. Voer het volgende commando uit:

$ sudo python temperature.py

ga terug naar uw oorspronkelijke Statusaccount in uw webbrowser en zoek naar een nieuwe gegevensbak genaamd Temperatuurstroom. Je zou temperatuurgegevens live moeten zien streamen. Varieer de temperatuur van de sensor door hem in de hand te houden of in een glas ijs te doen.

nu stuurt u gegevens naar een eerste statusdashboard. Ga naar het laatste gedeelte van dit artikel voor meer informatie over het aanpassen van uw dashboard.

BME280 oplossing

u hebt het volgende nodig de bouw deze oplossing:
– BME280 druk, temperatuur, & vochtigheidssensor

Als u een BME280 gebruikt die niet van Adafruit is, zullen uw setup en code anders zijn. Een voorbeeld van het gebruik van die BME280-sensor vind je in dit artikel over vochtigheidsmonitoring in kruipruimte.

deze sensor wordt geleverd met pennen die u op de sensor moet solderen. Ik raad het gebruik van een breadboard met de pinnen lange kant naar beneden in de breadboard om het solderen gemakkelijker te maken. Als je dit klaar hebt, moeten we de sensor verbinden met de Pi.

sluit de VIN-pin op de sensor aan op 3,3 V-pin 1 op de Pi. Verbind de GND-speld op de sensor de grondspeld 6 Op Pi. Sluit de SCK-pin op de sensor aan op de SCL-pin 5 op de Pi. Sluit de SDI-pin op de sensor aan op SDA-pin 3 op de Pi.

u moet Python 3 gebruiken voor deze oplossing en de initiële State Streamermodule installeren met behulp van de pip3 installatiemethode. Je moet ook een paar Adafruit Python bibliotheken installeren.

pip3 install adafruit-blinka
pip3 install pureio
pip3 install spidev
pip3 install adafruit-GPIO
pip3 install adafruit-circuitpython-bme280

om de sensor te gebruiken moeten we I2C op de Pi inschakelen.

sudo raspi-config

dit opent de Softwareconfiguratietool van Raspberry Pi. Ga naar Optie 5 Interfacing opties. Vanaf hier ga je naar I2C. het zal vragen om u te vragen of u wilt inschakelen I2C, Selecteer Ja en voltooien. Nu heb je I2C ingeschakeld om te communiceren met de sensor.

we kunnen dit testen door het volgende uit te voeren:

sudo i2cdetect -y 1

dit zal controleren of uw Pi de sensor ziet. In de manier waarop het wordt aangesloten, moet het de sensor op adres 77 tonen. Als je de sensor niet detecteert, herstart je je Pi, re-enable de I2C interface Optie op je Pi, en probeer het opnieuw.

zodra uw sensor is gedetecteerd, is het tijd om onze hoofdcode uit te voeren die de gegevens naar de begintoestand zal sturen. Een bestand aangemaakt met de naam bme280sensor.py met het nano Commando. Kopieer en plak de code van de gist in de teksteditor. Je moet de regels 12-19 aanpassen.

  • regel 12 – deze waarde moet uniek zijn voor elke knoop / temperatuursensor. Dit kan de naam van de kamer van uw sensor node zijn, fysieke locatie, unieke identificatie, of wat dan ook. Zorg ervoor dat het uniek is voor elk knooppunt om ervoor te zorgen dat de gegevens van dit knooppunt gaat naar zijn eigen gegevensstroom in uw dashboard.
  • regel 13-Dit is de naam van de data bucket. Dit kan op elk moment worden gewijzigd in de initiële status UI.
  • lijn 14-Dit is uw bucket-toets. Het moet dezelfde bucket-toets zijn voor elk knooppunt dat u in hetzelfde dashboard wilt weergeven.
  • regel 15-Dit is uw toegangssleutel voor de initiële status van uw account. Kopieer en plak deze sleutel uit uw initiële status account.
  • lijn 17 – Dit is de druk van uw locatie (hPa) op zeeniveau. U kunt deze informatie vinden op de meeste weerwebsites.
  • lijn 18-Dit is de tijd tussen sensorlezingen. Verander dienovereenkomstig.
  • regel 19-Hier kunt u metrische of imperiale eenheden opgeven.

nadat u regels 12-19 in uw Python-script op uw Pi hebt ingesteld, slaat u de teksteditor op en verlaat u deze. Voer het script uit met het volgende commando:

$ python3 bme280sensor.py

nu hebt u gegevens verzenden naar een eerste Status dashboard. Ga naar het laatste gedeelte van dit artikel voor meer informatie over het aanpassen van uw dashboard.

Sense Hat Solution

u hebt de volgende items nodig om deze oplossing te bouwen:
– Raspberry Pi Sense Hat
-6 ” 40-Pin IDE Male to Female Extension Cable (optioneel voor temperatuurnauwkeurigheid)

de eerste stap in het gebruik van de Sense HAT is het fysiek installeren op uw Pi. Met de Pi uitgeschakeld, bevestigd de hoed zoals hieronder weergegeven.

Sense HAT verbinding met Raspberry Pi

als u besluit om de oplossing te gebruiken zoals hierboven getoond kunt u merken dat de temperatuur van uw Sense HAT zal een beetje hoog — dat is omdat ze zijn. De boosdoener is de warmte die wordt gegenereerd door de CPU van de Pi ‘ s die de lucht rond de Sense HAT verwarmen wanneer deze bovenop de Pi zit. Om de temperatuursensor nuttig te maken, moeten we de hoed uit de buurt van de Pi halen of proberen de lezing van de temperatuursensor te kalibreren. Een goede oplossing voor het krijgen van de sensor uit de buurt van de Pi is een kabel die laat de Sense HAT bengelen uit de buurt van de Pi. Een 6″, 40-pins IDE mannelijk naar vrouwelijk verlengkabel kabel zal het lukken.

Raspberry Pi in een behuizing met verlengkabel die aansluit op de Sense HAT

zodra u besluit over de twee opties, zet uw Pi aan. We moeten de Python bibliotheek installeren om het gemakkelijk te maken om de sensorwaarden van de Sense HAT te lezen. Ten eerste moet u ervoor zorgen dat alles up-to-date is op uw versie van Raspbian:

$ sudo apt-get update

installeer vervolgens de Sense HAT Python bibliotheek:

$ sudo apt-get install sense-hat

Herstart je Pi. We zijn klaar om de Sense HAT te testen door sensorgegevens ervan te lezen en die gegevens naar de oorspronkelijke staat te verzenden.

Maak een bestand met de naam sensehat aan en open het in de teksteditor door het volgende in te voeren op de opdrachtprompt:

$ nano sensehat.py

kopieer en plak de onderstaande code in de teksteditor.

merk op dat we op de eerste regel de SenseHat bibliotheek importeren in het script. Voordat je dit script uitvoert, moeten we onze gebruikersparameters instellen.

specifiek moet u uw ACCESS_KEY instellen op de toegangssleutel van uw initiële status. U kunt BUCKET_NAME en SENSOR_LOCATION_NAME veranderen naar de werkelijke sensorlocatie. Sla de teksteditor op en sluit deze af.

voer het script uit achter een opdrachtprompt op uw Pi:

$ sudo python sensehat.py

nu hebt u gegevens verzenden naar een eerste Status dashboard. Ga naar het laatste gedeelte van dit artikel voor meer informatie over het aanpassen van uw dashboard.

Pas uw Dashboard van de initiële status aan

met uw Raspberry Pi-temperatuursensor kunt u nu naar uw account van de initiële status gaan en uw gegevens bekijken. U kunt met de rechtermuisknop op een tegel klikken om het diagramtype te wijzigen en op tegels Bewerken klikken om de grootte van uw tegels te wijzigen en uw tegels te verplaatsen. Ik adviseer de temperatuurmeter te gebruiken en het vloeistofniveau voor de luchtvochtigheid. U kunt lijngrafieken maken voor zowel temperatuur als vochtigheid om veranderingen in de tijd te zien. U kunt ook een achtergrondafbeelding toevoegen aan uw dashboard.

u kunt Trigger alerts instellen zodat u een SMS of e-mail kunt ontvangen als de temperatuur onder een bepaalde drempel daalt of boven een bepaalde drempel komt. Ga naar uw data emmer en klik op Instellingen. Ga vanaf daar naar het tabblad Triggers. Voer de stream-toets in die u wilt controleren, de operator die u wilt gebruiken en de drempelwaarde. Klik op het plusteken om de Trigger toe te voegen. Vervolgens voert u uw e-mailadres of telefoonnummer in om de waarschuwing te ontvangen en klikt u op het plusteken. Zodra u al uw Triggers hebt ingesteld, klikt u op de knop gedaan onderaan.

initiële status temperatuur dashboard

Nu u een Raspberry Pi temperatuursensor hebt gemaakt met behulp van een sensor en een Raspberry Pi, kunt u beginnen na te denken over welke andere milieugegevens u vervolgens kunt controleren.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.

Previous post Master Gardener: Cassiabomen zijn gemakkelijk te kweken
Next post Adaptief leren