Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
În acest instructable vă voi arăta cum să creați o casetă inteligentă.
Cutia de blocare este alimentată de un Arduino (UNO) și folosește RFID și un servomotor pentru a controla accesul, în timp ce ține evidența datelor primite de la diferiți senzori. Istoricul datelor va fi păstrat într-o bază de date MYSQL. Datele vor fi afișate pe un site web găzduit de zmeura Pi.
Pasul 1: Lista pieselor și a materialelor pentru proiect
Computer / microcontroler:
- Arduino UNO
- RaspBerry Pi 4 Model B.
Părți
- Senzor de temperatură LM35
- Senzor GL5537 LDR
- Cititor de senzori RFID VMA405 sau RC522 cu etichetă
- Servomotor MG 996R
- Sârme jumper DuPont Bărba-Femeie
- Sârme de panouri
- LED roșu
- LED verde
- Buzzer activ 5V
- Rezistor 1k Ω (ohm)
- 2 rezistențe de 330 Ω (ohm)
Locuințe
Cutia poate fi realizată din orice material. Al meu este din carton
Suplimentar
Am realizat un accesoriu din lemn pentru servomotor (opțional)
Software
Arduino IDE, cod Visual studio - Raspberry Pi cu SSH, banc de lucru MYSQL
Pentru o estimare a prețului, puteți consulta fișierul BOM.
Pasul 2: Circuitul Breadboard
RFID
- Vcc 3.3. V de Arduino
- RST Digital cu 9 pini
- Gnd Gnd din Arduino
- MISO Digital 12 pini
- MOSI Digital cu 11 pini
- SCK Digital 13 pini
- NSS / SDA Digital 10 pini
Servo motor
- 5V (roșu) (+) pe panou
- Gnd (Brown) Gnd pe panou
- PWM (portocaliu) digital cu 3 pini
LM35
- Vin (+) (+) pe panou
- Gnd Gnd pe panou
- Vout Analog 1 pin
LDR
- Vin (+) (+) pe panou
- Gnd Gnd pe panou cu rezistor de 1K ohm
- Vout Analog 0 pin
Led (verde)
- Vin (+) digital cu 4 pini cu rezistor de 330 ohm
- Gnd Gnd pe panou
Led (roșu)
- Vin (+) Digital cu 5 pini cu rezistor de 330 ohmi
- Gnd Gnd pe panou
Buzzer activ
- Vin (+) (+) pe panou
- Gnd Gnd pe panou
Arduino la breadboard
- Arduino 5V (+) (+) pe panou
- Arduino Gnd Gnd pe panou
Raspberry Pi la Arduino
Va fi conectat cu un USB
Pasul 3: Arduino
Cablajul electronicului ar trebui să arate similar cu imaginea de mai sus.
Mai întâi conectați Arduino la computer pentru a programa hardware-ul. Codul principal va fi descărcat mai jos, dar nu îl utilizați încă, urmați mai întâi pașii de mai jos.
Biblioteci
Vom folosi biblioteca SPI și MFRC 522 pentru a lucra cu senzorul RFID.
Descărcați biblioteca RFID aici de pe Github din miguelbalboa
Despachetați fișierul zip.
În IDE-ul Arduino, accesați schița> includeți biblioteca și alegeți fișierul zip pe care tocmai l-ați descărcat
După ce ați încărcat fișierul zip, accesați schița> includeți biblioteca> gestionați bibliotecile. În managerul de bibliotecă, căutați „MFRC522”. Ar trebui să se spună că biblioteca este instalată.
Scanarea datelor RFID
Mergeți la fișier> exemple> MFR522> dumpinfo și încărcați / porniți codul în IDE-ul dvs. Veți vedea că codul include o bibliotecă MFR522.h și SPI.h. Ambele sunt necesare pentru RFID.
Acum deschideți monitorul serial (instrumente> serialmonitor) și scanați insigna și cardul până când sunt afișate toate datele.
Asigurați-vă că scrieți UID-ul, deoarece veți avea nevoie de el.
Acum puteți descărca codul principal (Arduino_code_lockbox) În codul principal, înlocuiți propriul cod de etichetă UID cu cel din cod.
După rularea / încărcarea codului în IDE-ul Arduino, testați scanarea RFID. Dacă funcționează, puteți deconecta Arduino USB de la computer și conecta-l la Raspberry Pi.
Pasul 4: Raspberry Pi
Citiți date de la Arduino în Python
Asigurați-vă că Arduino este conectat la Raspberry Pi. Deschideți app.py și rulați fișierul. Veți vedea datele primite de senzorii dvs. de la Arduino.
Pentru a citi datele, veți avea nevoie de partea de serie a codului (a se vedea imaginea).
Baza de date MYSQL Creați o bază de date pentru a păstra valorile măsurate ale senzorilor dvs. Pentru acest proiect voi face tabele pentru temperatură, LDR și RFID.
Backend Python
Adăugați rute python și ajustați-le în mod corespunzător la baza de date MYSQL. Trimiteți valorile datelor senzorilor dvs. la propria bază de date.
Pasul 5: site-ul web
Aspect
Puteți utiliza fișierele de pe webrar.rar Sau vă puteți crea propriul site web cu html, css.
Afișați datele din baza de date
Utilizați javascript pentru a obține și afișa datele din baza de date pe site-ul dvs. web
Biblioteca Chart.js va fi utilizată pentru graficarea datelor.
Pasul 6: Locuințe
Exterior
Pentru exteriorul carcasei am lipit diferite părți împreună. Partea superioară este tăiată în formă de L, astfel încât baza L (partea dreaptă a imaginii) va fi mai fermă.
Pentru senzorul RFID, tăierea unei găuri în cutie este opțională. Ar trebui să fie posibil să scanați prin carton dacă nu este prea gros.
Servomotorul va fi lipit pe exterior. În funcție de modul în care poziționați zmeura în interiorul cutiei, va trebui să faceți mici găuri pentru conexiunile prin cablu, cum ar fi cablul USB sau Ethernet.
Interior
Pentru interior am făcut un strat, astfel încât să pot separa ambele dispozitive și să fie mai organizat. Raspberry Pi va fi pe partea de jos a cutiei, iar Arduino cu panoul va fi pe stratul superior.