Tochter & Papa bauen ein Smartes Heim: Keyestudio KS5009 Bausatz im Test!

Worum geht es?

In unserem neuesten Video baue ich gemeinsam mit meiner Tochter Luna ein Smartes Heim mithilfe des Keyestudio KS5009 Bausatzes. Dieser Bausatz ist ideal für Anfänger, die in die Welt der Elektronik und Programmierung eintauchen möchten. In diesem Blogartikel werde ich unsere Erfahrungen mit dem Bausatz teilen, die verschiedenen Komponenten und Projekte vorstellen und einige Tipps zur Programmierung und Integration in ein Smart Home geben.

Der Bausatz

Der Keyestudio KS5009 Bausatz ist speziell entwickelt worden, um das Lernen von Elektronik und Programmierung einfach und unterhaltsam zu gestalten. Er enthält Anweisungen zum Erstellen von 13 Projekten, mit denen man die Grundlagen verschiedener Module wie Tasten, LEDs und Sensoren kennenlernen kann. Dabei wird auch gezeigt, wie ein Smart Home funktioniert. Hier sind einige der Hauptmerkmale des Bausatzes:

  • Einsteigerprogrammierung für Anfänger: Entwickelt für das einfache und unterhaltsame Erlernen von Elektronik und Programmierung.
  • Multifunktional: Enthält Funktionen wie PIR-Bewegungssensor, Gasalarm, LED-Modul, Temperatur- und Feuchtigkeitssensor, RFID Scanner…
  • 2 Programmiersprachen und 13 detaillierte Tutorials: Arduionoy und Python. Online-Tutorials sind verfügbar.
  • Kreatives Geschenk: Ideal für alle, die sich für ein smartes Heim, Elektronik und Coden interessieren.
  • Benötigtes Zubehör: Ein Computer zum Hochladen des Codes und 6 AA-Batterien zur Stromversorgung.

Unsere Erfahrungen

1. Vorstellung des Sensoren

Der Bausatz enthält eine Vielzahl von Sensoren und Hausteilen aus Holz, die in verschiedenen Projekten eingesetzt werden können. Luna und ich haben sofort losgelegt und die Teile ausgepackt. Der Bausatz enthält außerdem eine detaillierte Anleitung, die Schritt für Schritt erklärt, wie die Komponenten zusammengebaut werden.

2. Installation der Sensoren

In einem ersten Schritt haben wir die verschiedenen Sensoren auf die Holzteile installiert. Die Holzteile sind robust und gut verarbeitet. Der Bausatz enthält unter anderem einen PIR-Bewegungssensor, einen Gasalarm und einen Temperatur- und Feuchtigkeitssensor. Diese sind auf eigene Boards verbaut und machen qualitativ einen wertien Eindruck. Die Installation war einfach und gut erklärt.

3. Zusammenbau der Hausteile

Das Installieren der Sensoren auf der „Hausfläche“ war ein coller erster Schritt. Anschließend hatte Luna hatte viel Spaß daran, die Teile zusammenzusetzen und zu sehen, wie unser kleines Smartes Heim Form annahm.

4. Verkabelung

Die Verkabelung war etwas kniffelig und fummelig, aber trotzdem gut machbar. Das „Herz“ war dafür gut vorbereitet und nutzbar.

5. Erste Schritte in der Programmierung

Der Keyestudio KS5009 Bausatz bietet Anleitungen zur Programmierung für Arduino und Python. Wir haben uns entschieden, kurz in Arduino rein zu schaune, sind dann aber gewechselt, s. nächster Punkt. Die Tutorials sind online in englischer Sprache verfügbar: https://fs.keyestudio.com/KS5009

5. Erweiterte Programmierung mit ESPHome

Zusätzlich zu den im Bausatz enthaltenen Projekten haben wir eine erweiterte Programmierung für ESPHome integriert. Dies ermöglicht es uns, die Sensoren und Aktoren des Bausatzes in unser bestehendes Smart Home-System Home Assistant zu integrieren. Die Programmierung war etwas anspruchsvoller, aber es hat sich gelohnt, da wir jetzt noch mehr Kontrolle über unser Smart Home haben.

Hier ist der Code, der noch nicht vollständig ist, da Gassensor, Servo und Regensensor noch nicht funktionieren:

esphome:
  name: smartes-heim
  friendly_name: smartes_heim

esp32:
  board: esp32dev
  framework:
    type: arduino

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "<KEY>"
  services:
    - service: play_rtttl # Project 4: Play Music Test
      variables:
        song_str: string
      then:
        - rtttl.play: #https://www.laub-home.de/wiki/RTTTL_Songs ; https://forum.arduino.cc/t/giving-back-to-the-community-rtttl-rttl-tones-over-11-000-tunes/490177
            rtttl: !lambda 'return song_str;' # Example: song_str: 'scale_up:d=32,o=5,b=100:c,c#,d#,e,f#,g#,a#,b' # 'siren:d=8,o=5,b=100:d,e,d,e,d,e,d,e'

ota:
  - platform: esphome
    password: "<PW>"

wifi:
  ssid: 'SSID'
  password: 'PASSWORD'
  manual_ip:
    # Set this to the IP of the ESP
    static_ip: 192.168.x.x
    # Set this to the IP address of the router. Often ends with .1
    gateway: 192.168.x.x
    # The subnet of the network. 255.255.255.0 works for most home networks.
    subnet: 255.255.255.0
  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Smartes-Heim Fallback Hotspot"
    password: "PW"

captive_portal:

light:                      
  - platform: status_led #--- Projekt 1 Control LED #https://esphome.io/components/light/status_led
    name: "Gelbe LED"
    pin: GPIO12
  - platform: neopixelbus #--- Project 6: Atmosphere Lamp (RGBW led)
    variant: SK6812 
    type: RGBW #noch unklar, ob dies korrekt ist
    pin: GPIO26 # GPIO3
    num_leds: 4
    name: "RGBW LED"


output:
  - platform: ledc  #--- Project 4: Play Music (Passive Buzzer)
    pin: GPIO25
    id: buzzer
  #- platform: ledc  #--- Project 4: Automatic Doors and Windows (Servo)
  #  pin: GPIO5 
  #  id: fenster_servo_o
  #  frequency: 50 Hz
  - platform: ledc  #--- Project 4: Automatic Doors and Windows (Servo)
    pin: GPIO13 
    id: tuer_servo_o
    frequency: 50 Hz
  - platform: ledc  #--- Project 7: Fan
    pin: GPIO19 
    id: luefter_vor
  - platform: ledc  #--- Project 7: Fan
    pin: GPIO18 
    id: luefter_zurueck

binary_sensor:
  - platform: gpio  #--- Projekt 2 Table Lamp (Buttons)
    pin: GPIO16
    id: knopf1
    on_press: 
      then:
        - fan.turn_on: luefter
    on_double_click: 
      then:
        - fan.turn_off: luefter
  - platform: gpio  #--- Projekt 2 Table Lamp (Buttons)
    pin: GPIO27
    id: knopf2
    on_press: 
      then:
        - rtttl.play: YMCA:d=4, o=5, b=160:8c#6, 8a#, 2p, 8a#, 8g#, 8f#, 8g#, 8a#, c#6, 8a#, c#6, 8d#6, 8a#, 2p, 8a#, 8g#, 8f#, 8g#, 8a#, c#6, 8a#, c#6, 8d#6, 8b, 2p, 8b, 8a#, 8g#, 8a#, 8b, d#6, 8f#6, d#6, f.6, d#.6, c#.6, b., a#, g#
  - platform: gpio # --- Project 3: PIR Motion Sensor
    pin: GPIO14
    name: "PIR Sensor"
    device_class: motion
  - platform: rc522 # --- Projekt 10 Karte
    uid: 54-4D-A3-DB #noch zu definieren
    name: "Karten RFID Tag"
  - platform: rc522 # --- Projekt 10 Schlüssel
    uid: B8-54-A2-9F #noch zu definieren
    name: "Schlüssel RFID Tag"
  #- platform: gpio # --- Project 8.2 Dangerous Gas Alarm 
    # Arbeitet nicht wie gewünscht
  #  pin: GPIO23
   # name: "Gas Sensor" 

# --------------- Project 4: Play Music (Passive Buzzer)
rtttl:              #https://esphome.io/components/rtttl.html#configuration-variables
  output: buzzer
  id: buzzer_musik
  gain: 60%
  on_finished_playback:
    - logger.log: 'Lied zuende!'

# --------------- Project 5: Automatic Doors and Windows (Servo) 
# Arbeitet nicht wie gewünscht
#servo:
 # - id: fenster_servo
  #  output: fenster_servo_o
  #- id: tuer_servo
   # output: tuer_servo_o

#number:
#  - platform: template
#    name: Servo Fenster Kontrolle
#    min_value: -100
#    initial_value: 0
#    max_value: 100
#    step: 1
#    optimistic: true
#    set_action:
#      then:
#        - servo.write:
#            id: fenster_servo
#            level: !lambda 'return x / 100.0;'
#  - platform: template
#    name: Servo Tür Kontrolle
#    min_value: -100
#    initial_value: 0
#    max_value: 100
#   step: 1
#    optimistic: true
#    set_action:
#      then:
#        - servo.write:
#            id: tuer_servo
#            level: !lambda 'return x / 100.0;'


sensor:
 # - platform: adc # --- Project 5.2: Close the Window (Rain Sensor)
    # Arbeitet noch nicht wie gewünscht
   # pin: GPIO34
  #  name: "Regensensor"
   # attenuation: 12db
  #  update_interval: 60s
  #  filters:
   #   - multiply: 0.846153 # 3.9 (11db attenuation full-scale voltage) -> 3.3V
  #    - median:
  #        window_size: 7
  #        send_every: 4
  #        send_first_at: 3
#  - platform: adc # --- Project 8.2 Dangerous Gas Alarm 
#    pin: GPIO23
#    name: "Gas Sensor" 
#    update_interval: 300s                
#    filters:
#      - multiply: 100
#    unit_of_measurement: "%"
#    icon: "mdi:percent"
  - platform: dht # --- Project 9: Temperature and Humidity Sensor
    model: DHT11
    pin: GPIO17
    temperature:
      name: "Temperatur"
    humidity:
      name: "Feuchtigkeit"
    update_interval: 60s                

# --------------- Project 7: Fan
fan:
  - platform: hbridge
    id: luefter
    name: "Dachlüfter"
    pin_a: luefter_vor
    pin_b: luefter_zurueck
   # enable_pin: motor_enable
    decay_mode: slow   # slow decay mode (coasting) or fast decay (braking).


# --------------- Project 8: LCD1602 Display
i2c: #0x76 en 0x27   #- wird auchh für Projekt 10 genutzt
  sda: SDA
  scl: SCL  
  frequency: 400kHz

display:
  - platform: lcd_pcf8574
    dimensions: 16x2
    address: 0x27
    update_interval: 1s
    id: lcd
    lambda: |-
      it.printf(0, 0, "Weisst du was?");
      it.printf(0, 1, "Luna ist SUPER!");

# --------------- Project 10: RFID RC522 Module

rc522_i2c:
  - address: 0x28
    id: rfid_scanner

Fazit und Empfehlungen

Der Keyestudio KS5009 Bausatz ist eine großartige Möglichkeit, die Grundlagen der Elektronik und Programmierung zu erlernen. Er bietet eine Vielzahl von Projekten, die gut erklärt und einfach umzusetzen sind. Luna und ich hatten viel Spaß dabei, unser eigenes Smart Home zu bauen. Die Umsetzung zu EspHome war etwas fummelig, aber hat mich persönlich gereizt. Das kleine smarte Heim in das große smarte Heim zu integrieren. Besonders gut hat uns gefallen, dass der Bausatz auch für meine achtjährigen Tochter geeignet ist.

Wir empfehlen diesen Bausatz jedem, der sich für Heimautomation und Programmierung interessiert. Es ist auch ein tolles Geschenk für angehende Ingenieure 😉 und Kinder, die spielerisch lernen möchten.


Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert