
Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-23 15:10


I den här guiden ska jag berätta hur du bygger Alarmostat, mitt skolprojekt för 1MCT på Howest. Konceptet är att göra en enhet som innehåller både ett inbrottslarm och en termostat i en. Min design kan definitivt förbättras, så det är inte nödvändigt att följa instruktionerna super exakt. Vara kreativ!
Komponenterna som behövs är listade nedan, och den exakta elektriska kretsen finns på bilden (jag ansvarar dock inte för skador på din utrustning:))
Tillbehör
-Raspberry Pi (jag använde en 3B+) med adapter och sd -kort
-Bakbord
-GPIO breakout board kan vara praktiskt
-Rörelsessensor (HCRS501)
-Dörrmagnetbrytare (ADA375)
-några lysdioder och motstånd
-en aktiv summer
-rotary encoder (keyes-0.40)
-2x16 lcd -skärm
-74hc595 shiftregister för att köra lcd
-MFRC522 rfid -läsare
-många trådar
-material för att göra ett fodral och verktyg för att sätta ihop det
(extra brödbräda)
Steg 1: Skaffa filerna
Filerna för det här projektet finns i dessa arkiv:
github.com/thomasdebiehw/project-backend
github.com/thomasdebiehw/project-frontend
Backend är ett Python / Flask -program som kommunicerar med vår hårdvara och serverar informationen från den till frontend, som är ett webbgränssnitt.
Hatar inte koden, jag är medveten om att en del av det är skrivet dåligt och oklart, men hej, det fungerar:)
Du kan behöva ändra vissa saker för att det ska fungera korrekt, till exempel mysql-användaren eller ip-adresser som programmen körs på.
Läs frontendens readme för att veta var du ska placera dessa filer
Hämta filerna på din Pi (eller gör fantastiska ändringar i dem) och gör dig redo att ansluta allt till Pi.
Steg 2: Anslutning


Stäng av din Pi innan du ansluter komponenterna. Den elektriska kretsen bör vara ganska självförklarande, men en del att se upp för är rörelsesensorn. Av någon anledning är layouten annorlunda på den elektriska kretsen. Jag lade till några kommentarer till bilden för att förklara funktionen hos komponenterna.
En sak du kanske vill göra om du stöter på problem är att använda en extern brödbräda. Jag hade några problem med att rfid -läsaren inte fungerade. Även om jag inte är helt säker på att strömmen var problemet, upplevde jag det inte efter att ha använt en extern källa och det gör inte ont heller.
Om du vill göra detta, anslut GND -stiften från Pi och strömförsörjningen tillsammans. Anslut allt +3.3v eller +5v från komponenterna till den externa matningens utgång, så ska du vara bra.
ANSLUT INTE Pi: s 3.3 eller 5v till strömförsörjningen. Om du använder en är det bäst att lämna dessa helt frånkopplade för att undvika att göra misstag.
Du kan se min testinställning på den andra bilden
Steg 3: Testning

Du bör lägga databasen på Pi via MySQL Workbench genom att göra en dataimport. Filen i förvaret är en dumpning av databasen. Annars kan du stöta på några problem eftersom Pi använder MariaDB istället för MySQL. Du kan också behöva skapa en ny användare eller ändra dessa uppgifter i koden. Du kan se ERD på bifogad bild
Du kan försöka köra Alarmostat -programmet omedelbart, men jag rekommenderar att du testar komponenterna separat separat först. Du kan använda klasserna som ingår i github -repo och göra ett litet program för att testa alla dina komponenter. Det kommer att göra felsökning mycket enklare.
När du vet att dina komponenter fungerar kan vi börja bygga ett fall.
Steg 4: Fodral




Fallet kan vara vad du vill. Om du vill göra en fristående prototyp som min, finns det några krav.
-Vissa utskärningar för montering av komponenter genom frontplattan
-Någon slags dörrmekanism
-Tillräckligt med utrymme på insidan
Jag använde 6 mm tjockt trä. Det är väldigt robust och perfekt om du vill lasera i det, men att montera komponenterna utan att skruven kommer fram kan vara utmanande.
Jag satte mig på skruvarna som visas på bilden och använde sedan muttrar för att göra dem effektivt kortare. Jag rekommenderar starkt att du testar hur långt dina skruvar går på en bortkastad bit av materialet du använder, eftersom dessa delar kan variera.
Vissa delar hade inte bra skruvhål (keyes-040, hcsr501, leds) så jag använde också en varm limpistol för att fästa dessa på plats. Det är inte den renaste lösningen men det kommer att gå bra. Ett lödkolv kanske inte behövs, men jag använde en för att löda bättre ledningar till min ada375 dörrsensor eftersom de lossnade för lätt.
Delarna jag monterade på fodralet är:
-2 lysdioder
-ada375
-hcsr501
-lcd
-rotär ekoder
-rfid -läsare
Resten fästs på brödbrädan. (Att montera temperaturgivaren någonstans utanför fodralet kan dock vara att föredra)
Steg 5: Några kommentarer om mitt fall




Du hittar ett utkast till modell av fallet ovan. Här är måtten:
frontplatta: 40,5 x 30 cm
sidor av komponenthuset: 20 x 30 cm
topp och botten: 20 x 20 cm
Jag borrade ett litet hål i sidan för att dra sensortrådarna genom en större i bakpanelen för ström- och ethernetkablarna. Öppningarna för de 2 lysdioderna på framsidan borrades också
Ett råd: INTE kopiera dessa mått! Topplattan för mig borde ha varit 20,6 x 21,2 cm eftersom jag inte tog hänsyn till träets tjocklek. Och även om det var rätt är höljet där Pi och komponenter sitter, knappt tillräckligt stort. Jag tog inte hänsyn till den extra längden på brödbrädans strömförsörjning och hade bara turen att jag kunde placera den där diagonalt.
Jag föreslår att du använder ungefär samma storlek på frontplattan och att bara göra bakstycket 5 cm bredare. Det finns mer än tillräckligt med utrymme kvar på vänster sida för att flytta dörren och sensorerna lite mer till kanten.
Eller, du vet.. Designa din egen!
Steg 6: Montering



Jag tyckte att arbeta i den här ordningen var det enklaste:
1: klipp ditt trä till rätt storlek
2: ta den främre plattan och gör utskärningarna för komponenterna (om du vill laserskära detta, filen är bifogad, du behöver dock två extra hål för lysdioderna)
3: montera de nödvändiga komponenterna på frontplattan
4: Testanslut dessa komponenter. Det är bättre att göra detta medan du fortfarande har lite utrymme att arbeta i. Jag tejpade ihop motsvarande trådar för att göra dem till ett slags rubrik. Det gör det mycket enklare att ansluta dem när allt är på plats
5: montera hallon pi på insidan (eller hitta en annan lösning för att montera det eftersom det är nästan omöjligt att ta bort SD -kortet) Muttrarna jag använde kom i kontakt med metallstift på Pi så jag täckte en del av botten med eltejp.
Steg 7: Mer montering




Sätt ihop det nu (jag använde mycket starkt trälim eftersom det här träet inte var nöjd med spikar eller skruvar i den 6 mm tjocka sidan)
Jag limmade de två sidopanelerna på huset på bottenplattans ytterkant och satte bakpanelen ovanpå bottenplattan, mellan sidoplattorna. Detta gör det starkare men jag var tvungen att slipa toppen av bakplattan som kom ut 6 mm högre än sidopanelen och frontpanelerna
Steg 8: Anslutning



Äntligen är det dags att återansluta komponenterna inuti fodralet. Jag tappade precis brödbrädan på plats med alla kablar anslutna till den och kopplade sedan de monterade komponenterna en efter en.
Som du kan se är det här verkligen inte för rent, så du kanske hittar ett bättre sätt att montera det ordentligt
Steg 9: Programvara
Du måste lägga till en användare i databasen om du vill använda rfid -läsaren för att aktivera och avaktivera systemet. Anslut till din pi via Workbench, välj Alarmostatdatabasen och kör följande kommando:
SKRIV IN I alarmostat.användare (iduser, användarnamn, användartyp, användarlösenord, userrfidtag) VÄRDEN (DEFAULT, '#ditt användarnamn', 'användare', '#lösenord', '#rfidid')
ersätt # med rätt värden. Du hittar rfidid genom att köra skriptet rfidtest.py från förvaret. Det kommer att visa ID för din tagg:
För att köra programmet vid start, se readme:
Steg 10: Du är redo

Det är gjort! du är redo att skydda och temperaturkontrollera ditt tänkta hus! Ha kul och försök att lägga till nya funktioner i koden!
Rekommenderad:
Arduino Car Reverse Parking Alert System - Steg för steg: 4 steg

Arduino Car Reverse Parking Alert System | Steg för steg: I det här projektet kommer jag att utforma en enkel Arduino Car Reverse Parking Sensor Circuit med Arduino UNO och HC-SR04 Ultrasonic Sensor. Detta Arduino -baserade bilomvändningsvarningssystem kan användas för autonom navigering, robotavstånd och andra
Steg för steg PC -byggnad: 9 steg

Steg för steg PC -byggnad: Tillbehör: Hårdvara: ModerkortCPU & CPU -kylarePSU (strömförsörjningsenhet) Lagring (HDD/SSD) RAMGPU (krävs inte) CaseTools: Skruvmejsel ESD -armband/mathermisk pasta med applikator
Tre högtalarkretsar -- Steg-för-steg handledning: 3 steg

Tre högtalarkretsar || Steg-för-steg-handledning: Högtalarkretsen förstärker ljudsignalerna som tas emot från miljön till MIC och skickar den till högtalaren varifrån förstärkt ljud produceras. Här visar jag dig tre olika sätt att göra denna högtalarkrets med:
Steg-för-steg-utbildning i robotik med ett kit: 6 steg

Steg-för-steg-utbildning i robotik med ett kit: Efter ganska många månader av att bygga min egen robot (se alla dessa), och efter att två gånger ha misslyckats med delar, bestämde jag mig för att ta ett steg tillbaka och tänka om min strategi och riktning. De flera månaders erfarenhet var ibland mycket givande och
Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): 8 steg

Akustisk levitation med Arduino Uno Steg-för-steg (8-steg): ultraljudsgivare L298N Dc kvinnlig adapter strömförsörjning med en manlig DC-pin Arduino UNOBreadboardHur det fungerar: Först laddar du upp kod till Arduino Uno (det är en mikrokontroller utrustad med digital och analoga portar för att konvertera kod (C ++)