Raspberry Pi sensor data visualiseren met Initial State

Wanneer je een of meerdere sensoren aan je Raspberry Pi hebt gekoppeld dan wil je natuurlijk ook de waardes kunnen bekijken. Heb je bijvoorbeeld een gecombineerde Temperatuur/Vochtigheid sensor dan is het leuk om het temperatuur verloop te bekijken gedurende de dag.

Je kan zelf aan de slag gaan met een php script dat met behulp van een mysql database de waardes opslaat en rapporteert. Je kunt ook gebruik maken van Initial State, dit is een website die je meetgegevens kan verwerken in een handig en overzichtelijk dashboard. Het enige wat je hoeft te doen is je meetgegevens op een gewenste interval door te sturen naar de Initial State servers. Hoe je dit kunt doen lees je hieronder.

Temperatuur sensor installeren

Een leuk startpunt om met Initial State te beginnen is het doorsturen van de Temperatuur/Vochtigheid sensor meetgegevens. Hiervoor moet natuurlijk een dergelijke sensor zijn aangesloten op de Raspberry Pi, de bekendste (en goedkoopste) sensoren die je hiervoor kunt gebruiken zijn de DHT11 en DHT22. Hoe je deze kunt aansluiten kun je op de onderstaande pagina’s lezen:


Raspberry Pi DHT22 AM2302 sensor

Initial State account aanmaken

Nadat de sensor is aangesloten en werkt kun je een gratis account aanmaken op Initial State, dat kun je doen met behulp van deze link.

Initial State streamer library installeren

De meetgegevens van de sensor worden met behulp van de Initial State streamer library voor Python doorgestuurd. De streamer installeer je met de volgende commando’s:

sudo apt-get install python-setuptools
sudo easy_install pip
cd /home/pi/
\curl -sSL https://get.initialstate.com/python -o - | sudo bash
Do you want automagically get an example script? [y/N]

Nadat de installatie is voltooid krijg je de vraag of je een example script wilt installeren, beantwoord deze vraag met ‘N’.

Meetgegevens versturen via Python script

Nadat je registratie is voltooid en de streamer is geinstalleerd kunnen we de meetgegevens van onze sensor gaan doorsturen met het onderstaande script. Je kunt het script downloaden naar je Raspberry Pi met behulp van wget of je kunt natuurlijk ook copy/paste gebruiken.

wget https://rapsberrytips.nl/files/dhtinitialstate.py

Het script:

import sys
import Adafruit_DHT
import os
import time
from ISStreamer.Streamer import Streamer

# DHT SENSOR TYPE 11 (DHT11), 22 (DHT22)
DHT_SENSOR_TYPE = 22

# GPIO NR
DHT_SENSOR_PIN = 4

# Initial State instellingen
BUCKET_NAME = "Temperatuur"
BUCKET_KEY = "my-dht-rpi"
ACCESS_KEY = "vul hier je acces key in"

# Interval in minuten
MINUTES_BETWEEN_READS = 1

# -- UPLOAD  

def main():
  streamer = Streamer(bucket_name=BUCKET_NAME, bucket_key=BUCKET_KEY, access_key=ACCESS_KEY)
  
  while True:
    [hum1,temp_c1] = Adafruit_DHT.read_retry(DHT_SENSOR_TYPE,DHT_SENSOR_PIN)
    temp_c = float(round(temp_c1,2))
    streamer.log("Temperatuur",temp_c)
    hum = float(round(hum1,1))
    streamer.log("Luchtvochtigheid %",hum)
    streamer.flush()
    time.sleep(60*MINUTES_BETWEEN_READS)

if __name__ == '__main__':
    main()

Op regel 16 moet je bij ‘ACCESS_KEY’ een ‘Streaming Access Key’ toevoegen. Deze access key kun je aanmaken door op je email account te klikken rechtsboven in de Initial State website. Scroll hierna naar beneden tot dat je de Streaming Access Keys sectie te zien krijgt, klik op de knop ‘Create a new access key’. Kopieer de gegenereerde code en plaats deze in het script.

Start nu het python script:

python dhtinitialstate.py

Laat je SSH sessie open en ga naar de Initial State website, klik links boven op de menu knop en selecteer de ‘Temperatuur’ bucket. Klik hierna op het ‘Dashboard’ icon, het eerste blauwe rondje en de ontvangen data wordt weergegeven.

initial state dht11 dht22 raspberry pi

Standaard wordt er een grafiek van de meetgegevens weergegeven. Wil je zoals in het screenshot ook de actuele temperatuur of luchtvochtigheid bekijken, klik dan op ‘add tile’, Tile type > ‘Last-Value’, pas de titel aan en kies bij ‘signal-key’ de temperatuur of luchtvochtigheid. Klik op close om de tegel toe voegen aan je dashboard.

Python script activeren op de achtergrond

Natuurlijk wil je dat je Raspberry Pi ook de gegevens doorstuurt naar Initial State als je niet bent ingelogd via SSH. Met behulp van nohup kun je het Python script op de achtergrond draaien.

nohup /home/pi/dhtinitialstate.py &

In het bovenstaande commando gaan we er vanuit dat het script in de home folder van de gebruiker pi aanwezig is.

1 gedachte over “Raspberry Pi sensor data visualiseren met Initial State”

  1. Werkt erg goed.
    Elke minuut een update van de temp en hydro
    Keuze uit 4 verschillende overzichten
    Live met de tendens naast elkaar korte historie
    Live met de tendens onder elkaar korte historie
    Live met een langere historie tot wel 3 weken
    En de data zoals deze wordt verzonden
    De installatie is enorm simpel
    Drankje Richard voor deze publicatie.

    Beantwoorden

Plaats een reactie