Forum: Mikrocontroller und Digitale Elektronik Brauche dringend Hilfe für ein Geocache


You were forwarded to this site from EmbDev.net. Back to EmbDev.net
von Dirk (secretman)


Angehängte Dateien:

Lesenswert?

Liebe Mikro Gemeinde!

Ich brauche dringend eure Hilfe.
Sicher kennt der eine oder andere das Thema Geocaching (Moderne 
Schatzsuche)
Ich möchte das erste mal mit Eurer Hilfe einen Geocache konstruieren.
Ihr kennt den Film Leonardo da Vinci "The Sakrileg".
Ich möchte einen Cache mit einer Truhe herstellen ( sowie in der Szene 
mit der Bank . Da ist eine Schalter mit Led Lichter .
Sobald man den Schalter drückt gehen nacheinander 11 Leds an und bleiben 
auch an danach muss man ein Passwort eingeben damit sich die Kiste 
öffnet .
Ich habe mir eine Erstausrüstung von Elegoo besorgt.
Leider bin ich in der Sache ein absoluter Newbie .
Ich habe mal ein paar Bilder davon gemacht, wie es ungefähr sein muss.
Ich hoffe Ihr könnt mir bei diesen Projekt helfen .
Einen schönen Abend wünsche ich Euch .
Gruß Secretman

: Verschoben durch Moderator
von Flip B. (frickelfreak)


Lesenswert?


von Dirk (secretman)


Angehängte Dateien:

Lesenswert?

Danke Dir @ frickelfreak,

aber leider ist das Teil zu klein und hat auch kein Display und keinen 
Einschub für den Schalter. (Das Schwert soll zum Schalter eingeführt 
werden ) siehe Szene Bank
Hättest du vielleicht eine andere Idee.

von Jens M. (schuchkleisser)


Lesenswert?

Das ist eindeutig was für einen Mikrocontroller, z.B. einen Arduino.
Der Schlüssel aktiviert das System, das ansonsten schläft, damit die 
Batterien lange halten. Z.B. über einen Magneten im Schlüssel und/oder 
die Drehung.
Die LEDs blinken zu lassen und auf ein paar Tasten zu reagieren ist dann 
nur eine Frage des Codes. Irgendeinen Codeschloss-Sketch wird man wohl 
finden und modifizieren können.

Wasserdichtigkeit und Batterielebensdauer/Wechselbarkeit hast du im 
Blick?

von Dirk (secretman)


Lesenswert?

Danke für deine Antwort.
Wasserdicht ist der Cache .
Er ist auch in der Nähe ebenfalls ist es immer durch ein Kommentar der 
Seite gesichert.
Leider habe bis zum heutigen Tag Irgendeinen Codeschloss Sketch gefunden 
im Zusammenhang mit einen Schalter
Wäre nett für eure Tips

von Klaus F. (klaus27f)


Lesenswert?

Vielleicht ein besseres Übersetzungsprogramm nehmen,
oder den Text in der Originalsprache hier reinschreiben.

von Andreas M. (elektronenbremser)


Lesenswert?

Dirk schrieb:
> Leider habe bis zum heutigen Tag Irgendeinen Codeschloss Sketch gefunden

Welchen hast du denn gefunden?

von Sebastian W. (wangnick)


Lesenswert?

Dirk schrieb:
> Leider habe bis zum heutigen Tag Irgendeinen Codeschloss Sketch gefunden
> im Zusammenhang mit einen Schalter

Verstehe ich nicht. Wie hast du denn bis zum heutigen Tag gesucht? Wenn 
ich suche finde ich sofort etwas ...

LG, Sebastian

von Johnny B. (johnnyb)


Lesenswert?

Dirk schrieb:
> Ich hoffe Ihr könnt mir bei diesen Projekt helfen

Also für die Stromversorgung würde ich eine Solarzelle nehmen (falls 
denn die Sonne ab und zu mal dran scheint) und so ein Modul mit einem 
BQ22570 Nano Power Energy Harvester von TI und da dran eine Li-ion Zelle 
(z.B. aus einer ausgedienten Einweg E-Zigarette die da überall 
rumliegen).
Es gibt mit dem IC schon fertige Module; Habe ein paar davon im Einsatz 
und die funktionieren super.
https://www.aliexpress.com/item/1005003634837179.html

von Dirk (secretman)


Lesenswert?

Schönen guten Abend !
Ich habe einen Sketch für das Keypad gefunden, ich möchte es aber auch 
gerne mit den Schalter verbinden .(also erst der Anhänger als 
Bankschlüssel in die Kiste an den Schalter einführen wo dann 
nacheinander die LED´s angehen und auch an bleiben und dann danach das 
Keypad  betätigen kann wo bei den richtigen Pin der Schalter 
umschaltet.)
Das Programm würde ich gerne vervollständigt haben .

Das wäre der Sketch den ich gefunden habe , der würde laut Arduino 
funktionieren .

#include <Wire.h>
#include <LiquidCrystal.h>
#include <Keypad.h>
#include <Servo.h>


Servo myservo;


//set our code
char* ourCode = "8219";
int currentPosition = 0;

//define the keypad
const byte rows = 4;
const byte cols = 4;

char keys[rows][cols] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};

byte rowPins[rows] = {13,10,9,8};
byte colPins[cols] = {7,6,1,0};

Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, rows, cols);

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup()
{
  pinMode(A2,OUTPUT);
  myservo.attach(A2);
  myservo.write(180);
  lcd.begin(16, 2);
  lcd.clear();

  displayCodeEntryScreen();



}

void loop()
{
  int l;

  char key = keypad.getKey();

  if (int(key) != 0) {
    lcd.print(" ");
    lcd.setCursor(0,1);

    for (l=0; l<=currentPosition; ++l)
    {
      lcd.print("*");
    }

    if (key == ourCode[currentPosition])
      {
        ++currentPosition;
        if (currentPosition == 4)
        {
          unlockDoor();
          currentPosition = 0;
        }
      } else {
        invalidCode();
        currentPosition = 0;
      }


  }
}

void invalidCode()
{
  clearScreen();
  lcd.setCursor(0,0);
  lcd.print("*ACCESS DENIED!*");
  lcd.setCursor(0,1);
  lcd.print("**!VERWEIGERT!**");


  delay(5000);
  displayCodeEntryScreen();
}

void unlockDoor()
{
  myservo.write(20);
  clearScreen();
  lcd.setCursor(0,0);
  lcd.print("**TOTAL ACCESS**");
  lcd.setCursor(0,1);
  lcd.print("*ZUGRIFF SYSTEM*");

  //add any code to unlock the door here
  delay(5000);
  displayCodeEntryScreen();
}

void displayCodeEntryScreen()
{
  lcd.print("[!]:./action.");

  ;delay(1000)

;lcd.setCursor(0,1);
;lcd.print("[!]SYSTEM.REBOOT");

;delay(1000)

;lcd.clear();
;lcd.print("[!]:./initiating.");

;delay(1000)

;lcd.setCursor(0,1);
;lcd.print("[!]:./array_all");

;delay(1000)

;lcd.clear();
;lcd.print("[!]:./array_all");

;delay(1000)

;lcd.setCursor(0,1);
;lcd.print("[!]System Online");

;delay(2000)

;lcd.clear();
;lcd.print("GC5AXQ4");

;delay(2000)

;lcd.setCursor(0,1);
;lcd.print("Rettet Finch!");

delay(2000)

;lcd.clear();
;lcd.print("Station:");

;delay(1000)

;lcd.clear();
;lcd.print("Northern Lights");

;delay(1000)

;lcd.setCursor(0,1);
;lcd.print("Die Machine");

;delay(3000)

  ;lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Enter Code:");

}

void clearScreen()
{
  lcd.setCursor(0,0);
  lcd.print(" ");
  lcd.setCursor(0,1);
  lcd.print(" ");
}

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.