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
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?
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
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 10.06.2021
Teilnehmende:
- Anna
- Benedict
- Hannah
- Jonah
- Lukas
- Martin
Was haben wir bei der Session gemacht?
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
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