Inhoudsopgave:
- Benodigdheden
- Stap 1: Rasbian instellen
- Stap 2: De code pakken en instellen
- Stap 3: Arduino-communicatie
- Stap 4: Switch-it aansluiten
- Stap 5: De code uitvoeren
- Stap 6: (OPTIONEEL) de Behuizing
Video: Switch-it, automatisch stopcontact met realtime stroommeting - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
Ik hou erg van automatisering, het vermogen om te controleren wanneer er iets moet gebeuren. Hierdoor kwam ik op dit idee: een zelfgemaakt, automatisch stopcontact. Het kan worden gebruikt om te plannen wanneer lichten moeten worden ingeschakeld, wanneer telefoons moeten worden opgeladen of wanneer een scherm moet worden gevoed. Naast dit alles heb je de mogelijkheid om te zien hoeveel stroom er door het stopcontact stroomt.
De componenten die nodig zijn voor dit project zijn:
Benodigdheden
Voordat we beginnen, zijn dit de dingen die je zeker nodig hebt om een Switch-IT-box zoals de mijne te bouwen. Deze benodigdheden kosten ongeveer 50 tot 100 euro, afhankelijk van uw regio en de huidige prijzen.
Hardware
Elektronica
- Frambozenpi 4
- 16 GB (of meer) Micro SD-kaart
- Arduino Uno
- 5V-3.3V Niveauverschuiver
- 5V relaismodule
- ACS712 20A - huidige module
- 1838 IR-ontvanger 37,9 kHz module
- IR-afstandsbediening (ik gebruik een Elegoo-afstandsbediening)
- gemeenschappelijke kathode RGB
- 3 * 330Ω weerstanden
- druk op de knop
- RFID-RC522
- LCD 1602A-1
- Niko wandcontactdoos
- 10K Ω potmeter
- 230 tot 5V - 7A voeding
Kabels
- USB-B naar USB-A-kabel
- USB-C-voedingskabel
- ethernetkabel
Verscheidene
- Man-vrouw jumperdraden
- Man-mannelijke doorverbindingsdraden
- soldeer tin
- Krimpkous
Case-specifieke onderdelen (OPTIONEEL)
- 50 * noten en vette letters
- metalen koffer 40x40x5 cm met deksel
- dubbelzijdige tape
- 6 * 1 cm hoge afstandhouders
- led-houder
- Klittenband
- kabelgeleiders
Software
- balenaEtcher:
- Stopverf
- rasbisch
- Visual Studio-code
- Arduino IDE
Stap 1: Rasbian instellen
Allereerst flashen we Rasbian op de SD-kaart. Dat doen we met balenaEtcher.
- Open balenaEtcher
- Kies de Rasbian-afbeelding
- Selecteer je SD-kaart
- Druk op Flash en wacht een paar minuten totdat het knippert
APIPA toevoegen aan de opstartmap: we gebruiken een APIPA-adres om instellingen op de RPI te programmeren en te configureren. Om dit te doen:
- Toegang tot de opstartmap op de SD-kaart
- Open "cmdline.txt"
- Voeg "169.254.10.1" toe aan het einde van het document en sla het op
- Voeg een bestand met de naam "ssh" toe aan de opstartmap (GEEF DIT BESTAND GEEN UITBREIDING)
- Nadat u dit hebt gedaan, kunt u de SD-kaart uit uw pc verwijderen.
Krijgt toegang tot de RPI met behulp van PuTTy
Nu kunnen we de SD-kaart in onze RPI steken, de RPI met een ethernetkabel op uw pc aansluiten.
Om verbinding te maken met de RPI gebruiken we PuTTy met ons APIPA-adres.
- Open PuTTy
- Vul ons APIPA-adres in als hostnaam (169.254.10.1)
- Zorg ervoor dat de poort 22 is en SSH is geselecteerd
- Nu kunt u de verbinding openen
- De standaard gebruikersnaam is: pi
- Met standaard wachtwoord: framboos
raspi-config instellingen
Open raspi-config met:
sudo raspi-config
- Het gebruikerswachtwoord wijzigen
- Selecteer in lokalisatie-opties uw tijdzone
- Stel wifi in met netwerkopties en vervolgens wifi-optie waarbij je je SSID en wachtwoord moet invullen.
Installeer Python 3
In dit project gebruiken we Python, daarom stellen we de standaard in op Python3 in plaats van Python2, met behulp van de volgende opdrachten
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
update-alternatives --install /usr/bin/python python /usr/bin/python3 2
Python-pakketten
We hebben een paar pakketten nodig om alles correct te laten werken, voornamelijk de Flask-pakketten en één om verbinding te maken met onze DataBase. We kunnen die pakketten installeren met behulp van de volgende opdrachten:
pip install Flask
pip install Flask_cors pip install Flask_socketio pip install Python-mysql-connecton
Database
Vervolgens gaan we ons databasebeheersysteem (MariaDB) installeren, dit doen we met:
sudo apt install mariadb-server
Typ "Y" en Enter om door te gaan. Na een paar seconden is het installatieproces voltooid en is MariaDB bijna klaar voor gebruik.
Om de database een wachtwoord te geven, gebruik je het commando:
sudo mysql_secure_installation
Druk vervolgens op Enter, aangezien het huidige wachtwoord leeg is. Druk vervolgens op "Y" om een wachtwoord in te stellen, nu kunt u elk wachtwoord invullen dat u wilt, onthoud dit goed want we hebben het nodig om een correcte verbinding te maken tussen back- en front-end.
Druk nu 3 keer op "Y" om: anonieme gebruikers te verwijderen, rootlogin op afstand niet toe te staan en de testdatabase te verwijderen. Druk ten slotte nogmaals op "Y" om de privileges opnieuw te laden.
Nu zijn MariaDB en alle benodigde pakketten met succes geïnstalleerd.
Stap 2: De code pakken en instellen
Nu we alle pakketten hebben geïnstalleerd, kunnen we de code pakken.
De code is beschikbaar op Github, zodat u deze kunt klonen met:
git clone
Dit is de voorkant
git clone
Dit is de backend
De database zelf installeren
Om de database te installeren, navigeert u naar het.sql-bestand dat zich in de backend-map bevindt met behulp van de volgende opdrachten (zorg ervoor dat u het op uw eigen pad instelt.
mysql
database maken switchit stop mysql -u root -p switchit < Your_Path_to_Backend_Repo/switchit.sql
Apache installeren
Nu we alle code en de database-configuratie hebben, kunnen we Apache installeren en onze backend erop uitvoeren. We zullen dit doen met behulp van:
apt-get install apache2 -y
Vervang dan de bestanden in /var/ww/html door die in de map uit de frontend map.
Als alles goed is gegaan, zou je verbinding moeten kunnen maken met je website via het APIPA-adres: 169.254.10.1 in je browser.
Stap 3: Arduino-communicatie
Om onze huidige sensor en onze RFID-sensor te lezen, gebruiken we een arduino, gebruik hiervoor de onderstaande arduino-code. Upload het met behulp van een USB-A naar USB-B-kabel en de arduino IDE-software. Na het uploaden is het arduino-gedeelte klaar.
Nu moeten we de seriële apparaatnaam op de PI vinden. Om dit te doen, moet u ervoor zorgen dat in /boot/config.txt "enable_uart=1" goed is ingesteld. Zorg er ook voor dat "console=serial0, 115200" is verwijderd uit cmdline.txt.
Controleer vervolgens de poorten met
ls -l /dev
Dan zou een van de serienamen de Arduino moeten zijn. Vul deze naam in bij de arduinocom-functie in app.py
ser = serieel. Serial('/dev/ttyS0', 9600)
Doe dat alleen als de seriële communicatie niet werkt.
Stap 4: Switch-it aansluiten
Alles aansluiten is vrij eenvoudig, hoewel u de volgende dingen in gedachten moet houden:
- Wees voorzichtig met het stopcontact, 230 volt kan dodelijk zijn.
- Zorg ervoor dat u een niveauconverter gebruikt voor communicatie tussen de RPI en Arduino.
- Voordat u de RGB soldeert, moet u ervoor zorgen dat u de rode en groene pin gebruikt. Test dit vooraf!
- Test of er niets is kortgesloten VOORDAT u het circuit van stroom voorziet.
Stap 5: De code uitvoeren
Nu alles correct is aangesloten, kunnen we ons programma uitvoeren.
Om het automatisch te laten starten bij het opstarten, maakt u een bestand aan met:
sudo nano myscript.service
Plak vervolgens (zorg ervoor dat u uw eigen app.py-map gebruikt:
[Unit]Description=Switchit After=network.target [Service] ExecStart=/usr/bin/python3 -u app.py WorkingDirectory=//wijzigen naar app.py directory// StandardOutput=inherit StandardError=inherit Restart=always User= pi [Installeren] WantedBy=multi-user.target
Druk vervolgens op "ctrl + X" en kopieer het naar /etc/systemd/system.
Dan het volgende commando om het automatisch te laten draaien:
sudo systemctl activeer mijnscript.service
Meer info hierover vind je op de site van RaspBerry Pi.
Opnieuw opstarten en klaar
Start nu je PI opnieuw op met:
sudo reboot -h nu
Zo maak je Switch-it!
Bedankt voor het volgen, ik hoop dat dit nuttig was. Als je tips of feedback hebt, aarzel dan niet om een reactie achter te laten.
Stap 6: (OPTIONEEL) de Behuizing
U kunt de behuizing geheel naar eigen wens bouwen. Ik gebruikte een metalen kist van 40x40x5 cm met een deksel. Omdat ik een metalen exemplaar gebruikte, moest ik gaten boren en afstandhouders gebruiken om alles van de grondplaat te krijgen. Ik heb ervoor gekozen om een centraal punt te gebruiken waar de 5V, 3.3V en gnd beschikbaar is. Elke elektrische aansluiting is gesoldeerd met een stukje krimpkous erop. Voor het kabelbeheer heb ik pads met draagriemen gebruikt.
Aanbevolen:
Stopcontact met internet: 13 stappen
Internet-enabled stopcontact: PowerHub Webserver Project & Installatie-instructies voor stopcontacten met internetaansluiting Centrale hub voor gegevenspersistentie voor licht en stopcontacten met internet in uw huis
Door Google gecontroleerd stopcontact: 7 stappen
Google Controlled Outlet: een project over het maken van uw eigen smart outlet die kan worden bediend met Google Assistant of eigenlijk elke andere invoerservice bij IFTTT
Google Home-gestuurd stopcontact: 9 stappen (met afbeeldingen)
Google Home Controlled Power Outlet: Mijn vriendin wilde altijd al een slim huis bouwen. Dus bouwen we de infrastructuur en het eerste item van het slimme huis, een op afstand bedienbare stopcontactschakelaar die je kunt bedienen met een bedieningspaneel of met spraakopdrachten (als je google home of goog
Laptop stopcontact repareren: 3 stappen
Laptop Power Socket Repair: Dit is de "lelijke" manier om het stopcontact van een laptop te repareren. Het wordt een beetje lame instructable, sorry. Ik dacht er niet aan om het te documenteren toen ik het deed, dus het is meer een "na de feiten"
Voeg een USB-stopcontact toe aan uw auto: 9 stappen (met afbeeldingen)
Voeg een USB-stopcontact toe aan uw auto: Gezien het omvangrijke karakter van 12 volt-adapters voor voertuigen, heb ik besloten om een USB-stopcontact te integreren in mijn Prius III uit 2010. Hoewel deze mod specifiek is voor mijn auto, kan deze worden toegepast op veel auto's, vrachtwagens, campers, boten, enz