Hack'n'Sun 2021 - Workshopplanung Elektronik

Zur Vorbereitung des Elektronik-Workshops sollen alle zwei Wochen Sessions stattfinden.
Der Workshop basiert auf den bisherigen Ergebnissen aus den Sessions Briefkastenalarm und Wetterstation.

Die Tage in der Umfrage ist jeweils der Startermin:

Wann habt ihr Zeit?
  • Montag, 03.05.2021 17:30
  • Montag, 03.05.2021 18:00
  • Montag, 03.05.2021 18:30
  • Montag, 03.05.2021 19:00
  • Mittwoch, 05.05.2021 17:30
  • Mittwoch, 05.05.2021 18:00
  • Mittwoch, 05.05.2021 18:30
  • Montag, 10.05.2021 17:30
  • Montag, 10.05.2021 18:00
  • Montag, 10.05.2021 18:30
  • Montag, 10.05.2021 19:00
  • Donnerstag, 13.05.2021 17:30
  • Donnerstag, 13.05.2021 18:00
  • Donnerstag, 13.05.2021 18:30
  • Donnerstag, 13.05.2021 19:00

0 Teilnehmer

Die Umfrage geht bis zum 01.05.2021 18:00.

Sessionericht vom 18.04.2021

In der Session haben wir uns erste Gedanken darüber gemacht, welche Inhalte der Workshop haben kann:

Umsetzungsmöglichkeiten

  • Möglichkeit 1:
    ESP stellt Webserver mit Webseite zur Verfügung, auf die man mit dem Browser zugreifen kann
    • Vorteil:
      • Einfach umzusetzen
      • Man braucht nur eine Komponente
    • Nachteil:
      • Wetterstation muss immer online sein => geringe Akkulaufzeit
    • Fragen:
      • Wie können Daten aufgezeichnet werden?
  • Möglichkeit 2:
    Matrix-Client
    • Vorteile:
      • Lange Akkulaufzeit (deep sleep mode)
      • Matrix-Client vorhanden
      • Möglichkeit für ein Fortsetzungsworkshop (Dauerbarcamp)
    • Nachteile:
      • Die Teilnehmer brauchen ein Handy mit eingerichtetem Matrix-Clienten
  • Möglichkeit 3:
    Wetterstation sendet regelmäßig Wetterdaten an einen Server der eine Webseite zur Verfügung stellt
    • Vorteile:
      • Lange Akkulaufzeit (deep sleep mode)
    • Nachteile:
      • man braucht zwei Komponenten
      • beide müssen im Workshop erstellt werden

Offene Frage:

  • Jeder/jede Teilnehmende ein Projekt oder Gruppen?
  • WLAN bereit stellen für ESP? (mit Tom kären)
  • Ein- oder Zweitagesworkshops?
  • Was geben wir den den Kindern am Ende alles mit?

Ideen für Bastelprojekte für den Workshop

  • Wetterstation
  • Briefkastenalarm
  • Klingelalarm
  • Pottpflanze

Todos:

  • Finalen Aufbau erstellen
  • Python-Bibliothek zum Ansteuern der Sensoren erstellen
  • Finaler Workshop-Ablauf erstellen
  • Streifenraster mit Pinheader vorbereiten

Workshopablauf (Erstentwurf):

  • Elektronikeinführung
  • Grundlagen ESP und µPython
  • Knopf mit LED
  • Breadboard mit Knopf → post in Matrix-Chatraum
  • Aufteilung in drei Projekte
    • Wetterstation
    • Briefkastenalarm
    • Klingelalarm
    • Pottpflanze

Ausblick nach dem Workshop:

  • Auf dem Workshop basierende weitergehende Projekte z.B.:
    • Matrix-Client schreiben, der Sensordaten weiter verarbeitet
    • Im Rahmen des Dauer-Barcamps
  • Damit auch Stärkung der Community nach der Veranstaltung

Sessionbericht vom 08.05.2021

Teilnehmer

  • Anna
  • Hannah
  • Jonah
  • Martin
  • Lukas
  • Florian

Was wurde gemacht?

Wir haben uns den aktuellen Stand angesehen. Wir haben uns die Bibliothek µtrix angesehen uns ausprobiert, haben sie aber noch nicht an’s laufen bekommen. Dies soll in einer der nächsten Sessions passieren. Des Weiteren haben wir nochmal über den Workshop-Ablauf und die nächsten Schritte gesprochen.

Wer braucht noch Material?

  • Hannah
  • Jonah
  • Florian

Todos:

  • Finalen Aufbau erstellen
  • ESPs an alle Mitarbeitenden verteilen
  • Recherche
    • Feuchtigkeitssensor heraussuchen
    • Knopf für Klingelalarm
  • Python-Bibliothek erstellen
    • Ansteuern der Sensoren
      • BME280
      • DHT22
      • Feuchtigkeitssensor
    • Matrix-Client
    • WiFi
  • Finaler Workshop-Ablauf erstellen
  • Streifenraster mit Pinheader vorbereiten
  • µtrix weiterentwickeln
  • Materialliste erstellen

Sessionbericht vom 13.05.2021

Teilnehmer

  • Anna
  • Benni
  • Hannah
  • Jonah
  • Maus
  • Martin

Inhalt

Um innerhalb des Workshops weitere Bastelprojekte anbieten zu können habe wir zunächst zwei weitere Sensoren ausprobiert. Beides sind Analog-Sensoren. Der Regentropfen-Sensor reagiert auf Änderungen des Widerstands, der Soil-Moisture-Sensor auf Veränderungen der Kapazität

Capcitive Soil Moisture Sensor

Der Sensor lieferte die folgenden Werte

  • trocken 638
  • nass 298

Regentropfen-Sensor

  • trocken 1024
  • leicht feuchts 600 - 800
  • nass <500

Danach haben wir versucht, den ESP im Batterieberieb zu nutzen. Dies hat hat zunächst nicht funktioniert, weder beim direkten Anschluss an das Breadboard, noch über den Spannungssensor.

Das nachfolgende Programm ist ein Testprogramm, welches die gemessenen Sensorwerte auf einer Webseite anzeigt.

import socket
import network
from dht import DHT22
from machine import Pin, I2C, UART, ADC
import BME280

# setup
dht = DHT22(Pin(16)) #D0
i2c = I2C(scl=Pin(0), sda=Pin(2), freq=10000) #D1 D2
bme = BME280.BME280(address=119,i2c=i2c)
adc = ADC(0)

ssid = "" # SSID angeben
passwd = "" # Passwort angeben


html = """<!DOCTYPE html>
<html>
    <head> <title>Wetterstation</title> </head>
    <body> <h1>Umweltdaten</h1>
        <table border="1">
            <tr><th>Pin</th><th>Value</th></tr>
%s
        </table>
    </body>
</html>
"""
class Wifi:
    def __init__(self,SSID,passwd):
        self.ssid = SSID
        self.password = passwd
        self.wlan = network.WLAN(network.STA_IF)
        self.wlan.active(True)
    
    def connect(self):
        if not self.wlan.isconnected():
            print('connecting to network...')
            self.wlan.connect(self.ssid,self.password)
            while not self.wlan.isconnected():
                pass
        print('network config:', self.wlan.ifconfig())
    
    def is_connected(self):
        return self.wlan.isconnected()
    
    def disconnect(self):
        if self.wlan.isconnected():
            self.wlan.disconnect()
            print('disconnected')
    
    def get_ip(self):
        return self.wlan.ifconfig()[0]

netzwerk = Wifi(ssid,passwd)
netzwerk.connect()


addr = socket.getaddrinfo(netzwerk.get_ip(), 80)[0][-1]
s = socket.socket()
s.bind(addr)
s.listen(1)

print('listening on', addr)

while True:
    #DHT22 Sensor auslesen
    dht.measure()
    dht_temp = dht.temperature()
    dht_hum = dht.humidity()
    
    #BME-Sensor auslesen
    bme_values = bme.values
    bme_temp = bme_values[0]
    bme_pres = bme_values[1]
    bme_hum = bme_values[2]
    
    # Regensensor
    rain = adc.read()
    
    cl, addr = s.accept()
    print('client connected from', addr)
    cl_file = cl.makefile('rwb', 0)
    while True:
        line = cl_file.readline()
        if not line or line == b'\r\n':
            break
    table = "<tr><td>Temperature:</td><td>" + bme_temp + "</td></tr>\n"
    table += "<tr><td>Humidity:</td><td>" + bme_hum + "</td></tr>\n"
    table += "<tr><td>Pressure:</td><td>" + bme_pres + "</td></tr>\n"
    table += "<tr><td>Regen:</td><td>" + str(rain) + "</td></tr>\n"
    response = html % table
    cl.send('HTTP/1.0 200 OK\r\nContent-type: text/html\r\n\r\n')
    cl.send(response)
    cl.close()

Ergänzung im Nachgang: Bei Messungen mit dem Multimeter, hat sich der Spannungssensor als Defekt herausgestellt. Beim direkten Anschluss des Batteriefachs an das Breadboard, war der Kontakt zwischen den Kabeln des Batteriefachs und des Breadboards zu schlecht. Dies konnte noch im Nachgang behoben werden.

Sessionbericht vom 27.05.2021

Teilnehmende:

  • Anna
  • Benni
  • Florian
  • Hannah
  • Jonah
  • Lukas

Agenda:

Materialliste

  • Pro Bastelkit
    • Aufputzdose als Gehäuse

    • Streifenrasterplatine mind. 16x 14 Löcher

    • 2 Buchsenleisten 15x1

    • Batteriehalter

    • ESP8266

    • Sensoren je nach Projekt

      • DHT22 und BMP280 (Wetterstation) oder BME280 (Wetterstation)
      • Moisture-Sensor (Pottpflanze)
      • Helligkeitssensor (Briefkastenalarm) oder Kontaktsensor [selber gebaut] (Briefkastenalarm)
  • Zusätzliches Material
    • Kabel
      • rot
      • blau
      • orange
      • grün
    • Widerstände
      • 10kOhm
      • 68 Ohm
    • diverse LEDs

Werkzeug

  • 10 Laptops
  • Material Elektronik-Workshop
  • Abisolierzange 2x
  • Lötkolben
    • Benni 2x
    • Martin
    • (Martins Papa)
    • (Johannes)
  • Lötzinn
  • Dritte Hand
    • 2 x Martin
  • Cutter-Messer

Workshopablauf

  • Vormittag
    • Elektronikeinführung
      • Strom, Spannung
      • Einfacher Stromkreis mit Taster
      • ESP, LED
    • Grundlagen ESP und µPython
      • Hello World
      • Knopf mit LED
      • Einen Sensor
    • Breadboard mit Knopf → post in Matrix-Chatraum
  • Nachmittag
    • Aufteilung in drei Projekte
      • Wetterstation
      • Briefkastenalarm
      • Klingelalarm
      • Pottpflanze
    • Programmieren
    • Löten (15 Min. pro Kit)
      • Pinheader 30 Lötpunkt
      • Bateriehalter 2 Lötpunkte
      • Sensoren
        • DHT22-Seonsor 6 Lötpunkte
        • BMP280 u. BME280 jeweils 8 Lötpunkte
        • Moisture-Sensor 3 Lötpunkte
        • Kontaktsensor 4 Lötpunkte
        • Helligkeitssensor 8 Lötpunkte

Was wird gestellt

  • Python-Bibliotheken
  • Buchsenleisten jeweils mit 2 Lötpunkten fixieren
  • Lötanleitung je Projekt
  • Musterlösung für jedes Projekt, falls TN nicht weiter kommt

Sessionbericht vom 10.06.2021

Teilnehmende:

  • Anna
  • Benedict
  • Hannah
  • Jonah
  • Lukas
  • Martin

Was haben wir bei der Session gemacht?

  • Zuständigkeiten für den Workshop verteilt für die Bereiche:

    • Elektronikeinführung
    • Grundlagen µPython
    • Programmieren
    • Löten
  • Vortrag Elektronik-Einführung überarbeitet
    Aufgabenverteilung

Todos

  • Folien zu µPython-Einführung in Präsentation einarbeiten (Anna)
    Link zu bisherigen Präsentation
  • Arbeitsblatt Funktionsreferenz erstellen (Benedict)
  • µPython-Einführung für Jonah, Hannah und Lukas (Anna)
  • Kits vorbereite (Martin und alle an Vorbereitungstagen)
  • Python-Bibliothek zum Ansteuern der Sensoren erstellen
  • Finalen Aufbau erstellen

Zusätzliche Sessions:

Donnerstag, 17.06.2021 17:30 - 18:30
Donnerstag, 01.07.2021 17:30 - 18:30

Sessionbericht vom 24.06.2021

Anwesend:

  • Anna
  • Florian
  • Hannah
  • Jonah
  • Lukas
  • Martin

Todos:

  • ESPs an alle Mitarbeitenden verteilen [erledigt]
  • Recherche [erledigt]
    • Feuchtigkeitssensor heraussuchen
    • Knopf für Klingelalarm
  • Python-Bibliothek erstellen [erledigt]
    • Ansteuern der Sensoren
      • BME280
      • Feuchtigkeitssensor
      • Matrix-Client
        *WiFi
  • µtrix weiterentwickeln [nur wenn noch genügend Zeit]
  • Materialliste erstellen [erledigt]
  • Folien zu µPython-Einführung in Präsentation einarbeiten (Anna)
  • Arbeitsblatt Funktionsreferenz erstellen (Benedict)
    • µtrix
    • wifi
    • bme280
    • machine
      • ADC
      • I2C
      • Pin
    • time
      • sleep
      • deepsleep
    • os
      • listdir (nur zum Debugging benötigt, in der Shell nutzen)
  • µPython-Einführung für Jonah, Hannah und Lukas (Anna) [erledigt]
  • Kits vorbereite (Martin und alle an Vorbereitungstagen)
  • Streifenraster mit Pinheader vorbereiten [teilweise erledigt]
  • Anleitung Matrix erstellen (Martin)
  • Finaler Workshop-Ablauf erstellen
  • Bibliotheken und Rahemenprgramm an zentraler Stelle ablegen

Was die TN alles mitbekommen

  • ESP auf Leiterplatte
  • Einen der Sensoren
  • Taster
  • Draht
  • Batteriehalter
  • LED
  • Aufputzdose

Was die TN konkret lernen

  • Was sind Bibliotheken?
  • Funktionen aufrufen (siehe Funktionsreferenz)
  • while-Schleifen
  • if-Abfragen
  • Löten
  • Elektronikgrundlagen
  • Sachen auf den ESP uploaden

Momentaner Workshopablauf

  • Erster Teil
    • Elektronikeinführung
      • Strom, Spannung
      • Einfacher Stromkreis mit Taster
      • ESP, LED
    • Grundlagen ESP und µPython
      • Knopf mit LED
      • Breadboard mit Knopf → post in Matrix-Chatraum
  • Zweiter Teil
    • Aufteilung in zwei Teile
      • Programmieren
        • Wettersensor
        • Bodensensor
      • Löten

Was die TN als Hilfen bekommen

  • Python-Bibliotheken
  • Buchsenleisten jeweils mit 2 Lötpunkten fixiert
  • Lötplan für Wetterstation und Pottpflanze
  • Musterlösung für Wetterstation, falls benötigt

Restliche To-Do’s

  • Löten (Lukas und Jonah)
  • Die credentials.py regeln (Irgendwer mit Nik)
  • Nachrichten direkt an eine Person schicken lassen können (Nik)
  • Funktionreferenz irgendwo brauchbar ablegen (Benni)
  • Klären, wie die Sachen aus dem Repo zu den TN kommen
  • Kits fertig machen (alle)
  • Elektronikeinführung finalisieren (Anna und Benni)
  • Matrix-Anleitung fertig machen (Martin/Benni/Anna)
  • Alles an Online-Material zugänglich machen

Die Hack’n’Sun sind vorüber. und der Workshop wurde durchgeführt.
Zur Nachbereitung finde ich in Feedback-Meeting wichtig.
In diesem soll erörtern, was gut lief und was weniger gut lief.
Das soll sowohl für die Vorbereitung, als auch für die Durchführung besprochen werden.

Wann hättet ihr Zeit für ein solches Treffen?

  • Donnerstag, 22.07.2021 17:00
  • Donnerstag, 22.07.2021 18:00
  • Donnerstag, 22.07.2021 19:00
  • Freitag, 23.07.2021 17:00
  • Freitag, 23.07.2021 18:00
  • Freitag, 23.07.2021 19:00
  • Mittwoch, 28.07.2021 17:00
  • Mittwoch, 28.07.2021 18:00
  • Mittwoch, 28.07.2021 19:00
  • Freitag, 30.07.2021 17:00
  • Freitag, 30.07.2021 18:00
  • Freitag, 30.07.2021 19:00

0 Teilnehmer