Pametna žarnica, ki jo je mogoče upravljati prek lokalno gostovane spletne strani ali mobilne aplikacije RaspController. Raspberry Pi deluje kot strežnik, Python nadzoruje GPIO rele, PHP pa obdela zahtevke iz brskalnika.
Žarnica je prek releja priključena na Raspberry Pi. Uporabnik odpre spletno stran na telefonu ali računalniku in pritisne gumb — Python skripta zazna zahtevek in sproži ali izklopi rele v realnem času.
Projekt združuje štiri fizične komponente in programski sklad — vsaka ima svojo vlogo v verigi od zahtevka do prižiga žarnice.
Majhen računalnik z ARM procesorjem in GPIO pini. Gosti spletni strežnik Apache, izvaja Python skripte in komunicira z relejem prek GPIO pina 21.
Elektronsko stikalo, ki prek GPIO signala odpre ali zapre električni tok do žarnice. Raspberry Pi pošlje signal HIGH/LOW — rele reagira v milisekundah.
Navadna žarnica, priključena na rele. Pri izbiri je bilo potrebno upoštevati porabniški tok in moč, da preprečimo preobremenitev vezja.
Pomnilniški medij z operacijskim sistemom Raspbian in vso programsko kodo. Naložena prek računalnika — enostavna zamenjava brez fizičnega posega v strojno opremo.
Skripta bere trenutno stanje GPIO pina 21 in ga obrne — če je HIGH postane LOW in obratno. Zažene se prek PHP shell_exec ob vsakem kliku na gumb.
import RPi.GPIO as GPIO import time GPIO.setmode(GPIO.BCM) GPIO.setup(21, GPIO.OUT) if GPIO.input(21): GPIO.output(21, GPIO.LOW) else: GPIO.output(21, GPIO.HIGH)
Na Raspberry Pi teče Apache strežnik, ki gosti PHP stran. Ko uporabnik pritisne gumb, se POST zahtevek pošlje na strežnik — PHP ga obdela in požene Python skripto prek shell_exec.
<?php if(isset($_POST['LED'])) { shell_exec( 'python3 /home/car/main.py' ); } ?>
Celotna veriga od pritiska na gumb do prižiga žarnice poteka v manj kot sekundi — vse prek lokalnega omrežja.
Apache strežnik na Raspberry Pi servira PHP stran prek lokalnega IP naslova (hostname -I).
Brskalnik pošlje HTTP POST zahtevek na strežnik s parametrom LED.
isset($_POST['LED']) je true — shell_exec zažene Python skripto z SUDO privilegiji.
Skripta prebere stanje pina — če HIGH postane LOW, če LOW postane HIGH.
GPIO signal aktivira rele, ki odpre ali zapre električni tok do žarnice.
Kombinacija strojne in programske opreme — od single-board računalnika do skriptnih jezikov in Unix orodij.
Celotna projektna dokumentacija pokriva namen naloge, teoretični del, komponente, kodo in zaključke.
Projektna dokumentacija — Pametna Žarnica, 2023