Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
W tej instrukcji pokażę, jak zrobić inteligentną skrzynkę.
Lockbox jest zasilany przez Arduino (UNO) i wykorzystuje RFID oraz serwonapęd do kontroli dostępu, jednocześnie śledząc dane przychodzące z różnych czujników. Historia danych będzie przechowywana w bazie danych MYSQL. Dane będą wyświetlane na stronie internetowej hostowanej przez malina Pi.
Krok 1: Lista części i materiałów dla projektu
Komputer/mikrokontroler:
- Arduino UNO
- RaspBerry Pi 4 Model B
Części
- Czujnik temperatury LM35
- GL5537 czujnik LDR
- Czytnik czujników RFID VMA405 lub RC522 z tagiem
- Silnik serwo MG 996R
- Przewody połączeniowe męsko-żeńskie firmy DuPont
- Druty do krojenia chleba
- Czerwona dioda LED
- Zielona dioda LED
- Aktywny brzęczyk 5V
- Rezystor 1kΩ(om)
- Rezystory 2 x 330 Ω(om)
Mieszkania
Pudełko może być wykonane z dowolnego materiału. Mój wykonany jest z tektury
Dodatkowy
Do serwomotora wykonałem drewnianą przystawkę (opcja)
Oprogramowanie
Arduino IDE, Visual studio kod - Raspberry Pi z SSH, MYSQL workbench
Aby oszacować cenę, możesz sprawdzić plik BOM.
Krok 2: Obwód płytki do krojenia chleba
RFID
- Vcc 3.3. V Arduino
- RST cyfrowy 9-pinowy
- Gnd Gnd Arduino
- MISO cyfrowe 12 pinów
- MOSI cyfrowy 11-pinowy
- SCK cyfrowe 13 pinów
- 10 pinów cyfrowych NSS/SDA
Siłownik
- 5V (czerwony) (+) na płytce stykowej
- Gnd (brązowy) Gnd na płytce stykowej
- PWM (pomarańczowy) cyfrowy 3 pin
LM35
- Vin(+) (+) na płytce stykowej
- Gnd Gnd na płytce stykowej
- Wyjście analogowe 1 pin
LDR
- Vin(+) (+) na płytce stykowej
- Gnd Gnd na płytce stykowej z rezystorem 1K ohm
- Wyjście analogowe 0 pin
Dioda (zielona)
- Vin(+) Cyfrowy 4-pinowy z rezystorem 330 omów
- Gnd Gnd na płytce stykowej
Led (czerwony)
- Vin(+) Cyfrowy 5-pinowy z rezystorem 330 omów
- Gnd Gnd na płytce stykowej
Aktywny brzęczyk
- Vin(+) (+) na płytce stykowej
- Gnd Gnd na płytce stykowej
Arduino do płytki stykowej
- Arduino 5V(+) (+) na płytce stykowej
- Arduino Gnd Gnd na płytce stykowej
Raspberry Pi na Arduino
Zostanie podłączony za pomocą USB
Krok 3: Arduino
Okablowanie elektroniki powinno wyglądać podobnie jak na powyższym obrazku.
Najpierw połącz Arduino z komputerem, aby zaprogramować sprzęt. Główny kod będzie można pobrać poniżej, ale jeszcze go nie używaj, najpierw wykonaj poniższe czynności.
Biblioteki
Do pracy z czujnikiem RFID wykorzystamy bibliotekę SPI i MFRC 522. Praca z RFID
Pobierz bibliotekę RFID tutaj z Github miguelbalboa
Rozpakuj plik zip.
W Arduino IDE przejdź do szkicu> dołącz bibliotekę i wybierz właśnie pobrany plik zip
Po przesłaniu pliku zip przejdź do szkicu> dołącz bibliotekę> zarządzaj bibliotekami. W menedżerze bibliotek wyszukaj „MFRC522”. Powinien powiedzieć, że biblioteka jest zainstalowana.
Skanowanie danych RFID
Przejdź do file>examples>MFR522>dumpinfo i prześlij/uruchom kod w swoim IDE. Zobaczysz, że kod zawiera bibliotekę MFR522.h i SPI.h. Oba są potrzebne do RFID.
Teraz otwórz monitor szeregowy (narzędzia>monitor szeregowy) i skanuj swoją plakietkę i kartę, aż wyświetlą się wszystkie dane.
Pamiętaj, aby wpisać UID, ponieważ będziesz go potrzebować.
Teraz możesz pobrać główny kod (Arduino_code_lockbox)W głównym kodzie zastąp swój własny kod tagu UID kodem z kodu.
Po uruchomieniu/wgraniu kodu w Arduino IDE przetestuj skanowanie rfid. Jeśli działa, możesz odłączyć Arduino USB od komputera i połączyć go z Raspberry Pi.
Krok 4: Raspberry Pi
Odczytaj dane z Arduino w Pythonie
Upewnij się, że Arduino jest połączone z aplikacją Raspberry Pi. Open app.py i uruchom plik. Zobaczysz dane otrzymane przez twoje czujniki z Arduino.
Aby odczytać dane, będziesz potrzebować seryjnej części kodu (patrz zdjęcie).
Baza danych MYSQLStwórz bazę danych do przechowywania zmierzonych wartości czujników. W tym projekcie stworzę tabele temperatury, LDR i RFID.
Backend Pythona
Dodaj trasy Pythona i odpowiednio dostosuj do swojej bazy danych MYSQL. Prześlij wartości danych z czujników do własnej bazy danych.
Krok 5: Strona internetowa
Układ
Możesz użyć plików z webrar.rarLub możesz stworzyć własną stronę internetową za pomocą html, css.
Pokaż dane z bazy danych
Użyj javascript, aby pobrać i wyświetlić dane z bazy danych na swojej stronie internetowej
Do wykresu danych zostanie użyta biblioteka Chart.js.
Krok 6: Obudowa
Zewnętrzny
Na zewnątrz obudowy skleiłem ze sobą różne części. Górna część jest wycięta w kształcie litery L, dzięki czemu podstawa litery L (prawa strona na zdjęciu) będzie bardziej twarda.
W przypadku czujnika RFID wycięcie otworu w pudełku jest opcjonalne. Powinno być możliwe skanowanie kartonu, jeśli nie jest zbyt gruby.
Serwomotor będzie oklejony taśmą na zewnątrz. W zależności od tego, jak ułożysz malinę w pudełku, będziesz musiał zrobić małe otwory na połączenia kablowe, takie jak kabel USB lub Ethernet.
Wnętrze
Do wnętrza zrobiłem warstwę, dzięki czemu mogę rozdzielić oba urządzenia i jest to bardziej zorganizowane. Raspberry Pi znajdzie się na spodzie pudełka, a Arduino z płytką stykową na górnej warstwie.