This is an old revision of the document!


Safe Crack

Introducere

  • Din telefon se seteaza un cod de 3 cifre folosind Blynk Cloud. Acesta trebuie ghicit invartind 3 potentiometre, fiecare apartinand unei cifre. Pentru a putea schimba numerele folosind potentiometrele, trebuie plasata o sursa de lumina asupra unui fotorezistor. Cu cat este mai aproape de a ghici numarul, un led rgb isi va schimba culoarea de la rece la cald. Cand este ghicit numarul, un servomotor se va roti si va deschide cutia. De asemenea led-ul se va schimba in verde. Pe un lcd se va afisa constant numarul actual.
  • Inspiratia proiectului a fost o image de genul: https://media.gettyimages.com/id/88295292/photo/burglar-cracking-safe.jpg?s=612x612&w=gi&k=20&c=j6YNp-2L02fGJ1xSpV-2O3-M2Mxs4jXVT1vmUiYcgBE=, plus dorinta de a face un proiect care se conecteaza cu telefonul.

Descriere generală

Diagrama proiect:

Hardware Design

Schematic proiect:

Voi atasa si in capitolul de rezultate obtinute o demonstratie initiala a functionalitatii proiectului.

Update 20.05.2024: am adaugat si un modul I2C lcd-ului pentru usurinta in asamblarea finala, dar si un buzzer conectat la pin-ul 1 ce va canta cand este ghicit codul

Software Design

  • Am lucrat in Arduino IDE. Pentru surse si librarii am folosit WifiNina (modulul wifi al boardului) si BlynkSimpleWifiNINA (pentru conectarea cu cloud), LiquidCrystal (pentru lcd), Servo si SPI.

Declaram bibliotecile:

#include <SPI.h>
#include <WiFiNINA.h>
#include <BlynkSimpleWiFiNINA.h>
#include <Servo.h>
#include <LiquidCrystal_I2C.h>

Declaram informatiile de autentificare in Blynk:

#define BLYNK_TEMPLATE_ID "<id>"
#define BLYNK_TEMPLATE_NAME "<template_name>"
#define BLYNK_AUTH_TOKEN "<auth_token>"

si WiFi credentials pentru conectare la internet si apoi la cloud:

char ssid[] = "<ssid Wifi";
char pass[] = "<parola Wifi>";

Definim functiile ce primesc valoarea slider-elor pentru setarea codului. V1, V4, V5 sunt pini virtuali setati din Blynk pentru diferentiarea lor

// Setam codul initial la  1 1 1
int SliderValueOne = 1;  
int SliderValueTwo = 1;  
int SliderValueThree = 1;  
// extragerea valorilor
BLYNK_WRITE(V1) {  
	SliderValueOne = param.asInt(); 
}  
BLYNK_WRITE(V4) {  
	SliderValueTwo = param.asInt(); 
}  
BLYNK_WRITE(V5) {  
	SliderValueThree = param.asInt(); 
} 

Realizam setup-ul:

LiquidCrystal_I2C lcd(0x3f, 16, 2);
void setup()
{
  
  pinMode(buzzerPin, OUTPUT); //pin buzzer
  //initalizare pini led rgb
  pinMode(redPin, OUTPUT);  
  pinMode(greenPin, OUTPUT);  
  pinMode(bluePin, OUTPUT);   
  
  lcd.init();
  lcd.backlight();

  Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);

  myservo.attach(9);  //pin servo
  myservo.write(pos);

}

Rezultate Obţinute

Demonstratie initiala functionalitate proiect - 12.05.2024: Safe Crack

Concluzii

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2024/vstoica/robert.godeanu.1716380714.txt.gz · Last modified: 2024/05/22 15:25 by robert.godeanu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0