Inhoudsopgave:

Switch-it, automatisch stopcontact met realtime stroommeting - Ajarnpa
Switch-it, automatisch stopcontact met realtime stroommeting - Ajarnpa

Video: Switch-it, automatisch stopcontact met realtime stroommeting - Ajarnpa

Video: Switch-it, automatisch stopcontact met realtime stroommeting - Ajarnpa
Video: Moes ZS-EUD - zigbeedimmer met tiptoetsen voor twee stuurkanalen 2024, November
Anonim
Switch-it, automatisch stopcontact met realtime stroommeting
Switch-it, automatisch stopcontact met realtime stroommeting
Switch-it, automatisch stopcontact met realtime stroommeting
Switch-it, automatisch stopcontact met realtime stroommeting
Switch-it, automatisch stopcontact met realtime stroommeting
Switch-it, automatisch stopcontact met realtime stroommeting
Switch-it, automatisch stopcontact met realtime stroommeting
Switch-it, automatisch stopcontact met realtime stroommeting

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

Rasbian instellen
Rasbian instellen
Rasbian instellen
Rasbian instellen

Allereerst flashen we Rasbian op de SD-kaart. Dat doen we met balenaEtcher.

  1. Open balenaEtcher
  2. Kies de Rasbian-afbeelding
  3. Selecteer je SD-kaart
  4. 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:

  1. Toegang tot de opstartmap op de SD-kaart
  2. Open "cmdline.txt"
  3. Voeg "169.254.10.1" toe aan het einde van het document en sla het op
  4. Voeg een bestand met de naam "ssh" toe aan de opstartmap (GEEF DIT BESTAND GEEN UITBREIDING)
  5. 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.

  1. Open PuTTy
  2. Vul ons APIPA-adres in als hostnaam (169.254.10.1)
  3. Zorg ervoor dat de poort 22 is en SSH is geselecteerd
  4. Nu kunt u de verbinding openen
  5. De standaard gebruikersnaam is: pi
  6. 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

De code pakken en instellen
De code pakken en instellen
De code pakken en instellen
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

Arduino-communicatie
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

Switch-it. bedraden
Switch-it. bedraden
Switch-it. bedraden
Switch-it. bedraden

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

(OPTIONEEL) de Behuizing
(OPTIONEEL) de Behuizing
(OPTIONEEL) de Behuizing
(OPTIONEEL) de Behuizing
(OPTIONEEL) de Behuizing
(OPTIONEEL) de Behuizing
(OPTIONEEL) de Behuizing
(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: