Corona Chance

Was kann man machen um sich die Zeit zu vertreiben… solange Ausgangsbeschränkung wegen Corona Virus herrscht und sogar das Hausklettergebiet Kochel von der Polizei patrouilliert wird.

Ich habe mir die Zeit mit Programmieren vertrieben. Als absoluter Neuling ungewohnt mit Erfolg. Also keine Angst das wäre sicher auch was für Euch. Die Zeit vergeht dadurch rasend schnell und am Ende hat man immer wieder tolle “Heureka” Momente.

Gerade weil es etwas anderes als Klettern ist: Neuland! Aber dadurch irgendwie auch doch dem Klettern verwandt.

Sensor Board auf Raspberry PI

Alles Folgende basiert auf: Raspberry Pi

Was ist das? Ein Computer im Handyformat. Betriebssystem? Linux. Preis? 30€ abwärts. Was kann der? Alles was ein herkömmlicher PC auch kann. Natürlich weniger schnell.

Aber mit dem Raspberry kann man spielen ohne Angst vor großem Schaden. Es geht ja nur um 30€ und das Betriebssystem ist auf einer SD Karte.

Erste Schritte:

  1. Kaufen von Raspberry  Pi 3B+
  2. Kaufen einer micro SD Karte
  3. Download Betriebssystem Raspian Vollversion: https://www.raspberrypi.org/downloads/raspbian/
  4. Download Balena Etcher: https://www.balena.io/etcher/
  5. Das Image des Betriebssystems mit Etcher auf die SD Karte spielen, dauert ca. 30 min
  6. Raspberry per LAN Kabel verbinden, HDMI Anschluss mit Bildschirm verbinden (wer alte DVI Bildschirme hat hier mit Connector), Maus und Tastatur in Raspberry einstecken, Strom einstecken (hier kannst du dein Handyladegerät verwenden). Sobald der Strom eingesteckt ist fährt der Raspberry hoch.
  7. Alles wird initialisiert, man muss Passwörter vergeben etc.

Erstes Projekt:

Umgebungsparameter in die Cloud streamen: Temperatur, Feuchtigkeit, Druck, Bewegung über eine Sensorplatine aufzeichnen und von überall auf dem Handy beobachten

To Do:

  1. Kauf eines Docker Pi Sensor Hub (17€)
  2. Das Hub auf das Pi montieren
  3. Thonny (Python Programmiertool im Raspian Menü unter Entwicklertools) öffnen und ein Python Script anlegen mit folgendem Inhalt:

[script]:

#!/usr/bin/env python
#copyright code by d-on-r.de free for private use
import smbus

MyBus = smbus.SMBus(1)
import httplib
import urllib
#import time
key = "DEINEN WRITE KEY HIER EINTRAGEN"  # deinen API Key eintragen

def measure():
       
    while True:
        import time
        time.sleep(15)
        #Calculate CPU temperature of Raspberry Pi in Degrees C
        field1 = MyBus.read_byte_data(0x17, 0x01) # Get Raspberry Pi Temperature
        field2 = MyBus.read_byte_data(0x17, 0x06) # Get Raspberry Pi humidity
        field3 = MyBus.read_byte_data(0x17, 0x03) # Get Raspberry Pi brightness
        field4 = MyBus.read_byte_data(0x17, 0x0D) # Get Raspberry Pi human detect
        field5 = MyBus.read_byte_data(0x17, 0x05) # Get Raspberry Pi onboard hsensor temp
        field6 = MyBus.read_byte_data(0x17, 0x02) # Get Raspberry Pi lux
        field7 = MyBus.read_byte_data(0x17, 0x07) # Get Raspberry Pi on board error
        field8 = MyBus.read_byte_data(0x17, 0x08) # Get Raspberry Pi temp barometer
        
        
        params = urllib.urlencode({'field1': field1,'field2': field2,'field3': field3,'field4': field4,'field5': field5,'field6': field6,'field7': field7,'field8': field8, 'key':key }) 
        headers = {"Content-typZZe": "application/x-www-form-urlencoded","Accept": "text/plain"}
        conn = httplib.HTTPConnection("api.thingspeak.com:80")
        try:
            conn.request("POST", "/update", params, headers)
            response = conn.getresponse()
            print temp
            print response.status, response.reason
            data = response.read()
            conn.close()
        except:
            print "connection failed"
        break
   
    
if __name__ == "__main__":
        while True:
                measure()
                
     # free account has an api limit of 15sec
        import time
        time.sleep(15)
 
  1. Einen Account bei thingspeak erstellen und danach einen Kanal erstellen mit 8 Feldern
  2. Den write key im Python script und die Kanalnamen Durch Deine Namen ersetzen, Script speichern:
  3. Download der Smartphone APP aus dem APPstore: THINGVIEW
  4. In der App mit Konto und Passwort einloggen
  5. Konsole auf dem Raspberry öffnen und folgende Kommandos eingeben Zeile für Zeile und jeweils danach mit enter bestätigen, yes das sieht dann ähnlich wie in Matrix aus;) :
    • sudo apt-get install python
    • sudo apt-get install httplib
    • sudo apt-get install urllib
  6. Jetzt das Script mit Thonny starten
  7. Voila: DIE DATEN WERDEN LIVE IN DIE CLOUD GESTREAMT. Alle 15 Sekunden ein neuer Wert. Du hast über dein Handy Zugriff zu den Raumparametern und ob sich z.b. jemand in dem Raum bewegt (Eltern, Einbrecher etc.)
  8. Alle Parameter sind aus meiner Sicht unkritisch, daher können diese ohne große Sicherheitsvorkehrungen gestreamt werden.
Thingview Ansicht

Ich freue mich über Eure Kommentare und Verbesserungsvorschläge. An den Links verdiene ich ohne dass ihr mehr zahlt. Aber glaubt mir allein das Script hat mich einige Nächte gekostet.

Hinweis: Ich übernehme keine Haftung für Schäden! (Muss ich leider dazu schreiben)

In einem nächsten Artikel habe ich geplant Euch zu zeigen wie Ihr eine Eigene Homepage baut und auf dem Raspberry betreibt.