# Schatzkiste - Montage Anleitung

Die Schatzkiste lässt sich mit dem Betätigen von vier Tasten in der richtigen Reihenfolge öffnen. Wird eine Taste betätigt, leuchtet die darüber liegende LED. Ist der Tasten-Code richtig eingegeben, gehen die vier weißen LEDs über den Tasten aus, eine grüne LED leuchtet und die beiden Servo-Motoren öffnen die Verschlüsse. Ist die Schatzkiste geöffnet, kann mit jeder beliebigen Taste die Schatzkiste wieder verschlossen werden. Ist der Code falsch eingegeben, erlöschen die vier LEDS und die Schatzkiste bleibt verschlossen.

Im inneren der Schatzkiste ist ein Reed-Kontakt versteckt. Nur der Eigentümer der Schatzkiste weiß, wo sich der Reed-Kontakt befindet. Wird an diesen Reed-Kontakt ein Magnet gehalten, blinken die vier Taster-LEDs und der Code kann neu programmiert werden. Nach erfolgreicher Programmierung blinken die vier Taster-LEDs erneut. Der Code wird in das EEPROM des NANO geladen, so dass auch bei Spannungsausfall der Code erhalten bleibt.

[![schatzkiste.png](https://wiki.oberlab.de/uploads/images/gallery/2025-03/scaled-1680-/mRjJ533oGGlXpT0v-schatzkiste.png)](https://wiki.oberlab.de/uploads/images/gallery/2025-03/mRjJ533oGGlXpT0v-schatzkiste.png)

Die Schatzkiste

## Hardware  


### Die Stückliste für die Schatzkiste

- 1 x NANO
- 1 x NANO-Shield
- 2 x Buchsenleisten
- 2 x Stiftleisten
- 2 x Servo Motore SG90
- 2 x 90° Verschluss Winkel
- 1 x Reed-Kontakt mit Magnet
- 4 x Taster
- 4 x LEDs weiß
- 1 x LED grün
- 5 x 1kOhm Widerstand
- 1 x 9V Batterie
- 1 x 9V Batterie-Clip
- 1 x Gelaserte Schatzkiste (4mm Sperrholz 600x300)

## Aufbau und Montage  


Der Aufbau und die Montage der Schatzkiste ist in mehrere Schritte unterteilt.

### Schritt 1: Das Gehäuse  


- Erstelle auf [Boxes.PY](https://www.festi.info/boxes.py/) eine "Kiste mit eingebundenen Schanier" mit den Abmessungen x=160, y=100 und h=80, Deckelhöhe 28.
- Füge in die erstellte SVG-Grafik die Löcher für die LEDs und Taster ein
- Füge in die erstellte SVG-Grafik deine Grafik für die Verziehrung der Schatzkiste ein
- Schneide das Gehäuse mit dem Lasercutter aus
- Klebe die Servo-Motoren in den Gehäusedeckel
- Klebe die Winkel an die Frontplatte
- Klebe den Reed-Kontakt in das Gehäuse
- Montiere die LEDs und die Taster an die Gehäuse-Front
- Verklebe die Gehäuseteile. Die untere Rückwand wird nicht verklebt

[![schatzkiste_lk.png](https://wiki.oberlab.de/uploads/images/gallery/2025-03/scaled-1680-/ZipBw7ENfSCV7PSg-schatzkiste-lk.png)](https://wiki.oberlab.de/uploads/images/gallery/2025-03/ZipBw7ENfSCV7PSg-schatzkiste-lk.png)

### Schritt 2: 3D-Druck  


Zeichne und drucke 4 Platinen Füße für den NANO, D=5mm x 5mm  
Klebe die Füße auf die Unterseite des NANO-Shields

[![spacer5mm.png](https://wiki.oberlab.de/uploads/images/gallery/2025-03/scaled-1680-/NzKzYpEXqKm6xFq9-spacer5mm.png)](https://wiki.oberlab.de/uploads/images/gallery/2025-03/NzKzYpEXqKm6xFq9-spacer5mm.png)

### Schritt 3: Verdrahtung und Lötarbeiten  


Bestücke das NANO-Shield mit den Buchsenleisten und den beiden Stiftleisten für die Servo-Motore  
Biege an einem Ende der Widerstände und am +Pol der LEDs eine Öse

[![r-led.jpg](https://wiki.oberlab.de/uploads/images/gallery/2025-03/scaled-1680-/9mwsVOOLvNbgvPk8-r-led.jpg)](https://wiki.oberlab.de/uploads/images/gallery/2025-03/9mwsVOOLvNbgvPk8-r-led.jpg)

Führe Anschlussdrähte für die Widerstände und der LEDs durch die Öse und Löte sie an

[![sk10.png](https://wiki.oberlab.de/uploads/images/gallery/2025-03/scaled-1680-/U3oJBtr0lsZ3JwC0-sk10.png)](https://wiki.oberlab.de/uploads/images/gallery/2025-03/U3oJBtr0lsZ3JwC0-sk10.png)  
[![sk11.png](https://wiki.oberlab.de/uploads/images/gallery/2025-03/scaled-1680-/FNNyBCQhUVZkBEBG-sk11.png)](https://wiki.oberlab.de/uploads/images/gallery/2025-03/FNNyBCQhUVZkBEBG-sk11.png)

[![sk12.png](https://wiki.oberlab.de/uploads/images/gallery/2025-03/scaled-1680-/KhOtRWBnCBbUXNfG-sk12.png)](https://wiki.oberlab.de/uploads/images/gallery/2025-03/KhOtRWBnCBbUXNfG-sk12.png)

[![sk13.png](https://wiki.oberlab.de/uploads/images/gallery/2025-03/scaled-1680-/RhpchzlIqSjYpNnE-sk13.png)](https://wiki.oberlab.de/uploads/images/gallery/2025-03/RhpchzlIqSjYpNnE-sk13.png)

Verdrahte das Shield, die LEDs, Taster und den Reed-Kontakt nach den Verdrahtungsplan

[![shield.png](https://wiki.oberlab.de/uploads/images/gallery/2025-03/scaled-1680-/QMXb5BBOyyI6PfqA-shield.png)](https://wiki.oberlab.de/uploads/images/gallery/2025-03/QMXb5BBOyyI6PfqA-shield.png)

[![schatzkiste-verdrahtung.png](https://wiki.oberlab.de/uploads/images/gallery/2025-03/scaled-1680-/x7ybbBL9M5wHDS9U-schatzkiste-verdrahtung.png)](https://wiki.oberlab.de/uploads/images/gallery/2025-03/x7ybbBL9M5wHDS9U-schatzkiste-verdrahtung.png)

### Schritt 4: Inbetriebnahme  


- Kontrolliere alle Verbindungen
- Lade das Servo-Test Programm in den NANO
- Versorge die Schatzkiste mit Spannung
- Teste den Verschluss-Mechanismus mit den Servo-Motoren
- Wenn der Verschluss ok ist, lade das Haupt-Programm in den NANO
- Das Programm befindet sich auf deinen Laptop unter Nextcloud/Schatzkiste
- Aktiviere mit einen Magneten über den Reed-Kontakt die Programmierung des Codes
- Gibt über die Taster deinen Code ein
- Teste deinen Code
- Ist der Code richtig, öffen die Servo-Motor die Verschluss-Einrichtung

  
Servo -Text Programm

```c++
/*************************************************************************************************
                                      PROGRAMMINFO
**************************************************************************************************
  Funktion: Schatzkiste Servo Test
          Die Servos muessen sich zum oeffnen der Schazkiste entgegengesetzt bewegen

  Servo links D9
  Servo rechte D10
  Taster  D7 betaetigt/geschlossen => GND, 

**************************************************************************************************
  Version: 28.01.2023
**************************************************************************************************
  Board: NANO 1.6.21
**************************************************************************************************
  Libraries:
  https://github.com/espressif/arduino-esp32/tree/master/libraries
  C:\Users\User\Documents\Arduino
  D:\gittemp\Arduino II\A156_Wetterdaten_V3
**************************************************************************************************
  C++ Arduino IDE V1.8.19

**************************************************************************************************
  Einstellungen:
  https://dl.espressif.com/dl/package_esp32_index.json
  http://dan.drown.org/stm32duino/package_STM32duino_index.json
  http://arduino.esp8266.com/stable/package_esp8266com_index.json
**************************************************************************************************/
#include <Servo.h>

Servo myservo_li; //Servo links
Servo myservo_re; //Servo rechts

int pos = 0;
int button = 7;  //button = LOW -> Schatzkiste zu


void setup()
{
  myservo_li.attach(9);  // Servo links
  myservo_re.attach(10);  // Servo rechts
  pinMode(pos, OUTPUT);
  pinMode(button, INPUT);

  digitalWrite (button, HIGH);
}

void loop()
{
//******* Servo links ********************
  if (digitalRead(button) == LOW)
    for (pos = 0; pos < 90; pos += 90)
    {
      myservo_li.write(pos);
    }
  if (digitalRead(button) == HIGH)
    for (pos = 90; pos >= 90; pos -= 90)
    {
      myservo_li.write(pos);
      delay(50);
    }
//******* Servo rechts ********************
  for (pos = 90; pos >= 90; pos -= 90)
  {
    myservo_re.write(pos);
  }
  if (digitalRead(button) == HIGH)
    for (pos = 0; pos < 90; pos += 90)
    {
      myservo_re.write(pos);
      delay(50);
    }
}
```

[![schatzkiste.png](https://wiki.oberlab.de/uploads/images/gallery/2025-03/scaled-1680-/mRjJ533oGGlXpT0v-schatzkiste.png)](https://wiki.oberlab.de/uploads/images/gallery/2025-03/mRjJ533oGGlXpT0v-schatzkiste.png)

**Fertig!**