IOT PROJEKT — RASPBERRY PI

Pametna Žarnica

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.

Raspberry Pi Python PHP HTML / CSS GPIO Šolski projekt — 2023
Oglej si projekt
// 01 — KONČNI IZDELEK

Žarnica pod tvojim nadzorom

Ž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.

Prižig in ugasnitev žarnice prek brskalnika — lokalno gostovana spletna stran na Raspberry Pi
Upravljanje prek mobilne aplikacije RaspController brez spletnega vmesnika
PHP sprejme POST zahtevek in zažene Python skripto prek shell_exec
GPIO pin 21 kot izhod — high/low stanje direktno krmili rele
Sistemski načrt
// 02 — KOMPONENTE

Kaj sestavlja sistem

Projekt združuje štiri fizične komponente in programski sklad — vsaka ima svojo vlogo v verigi od zahtevka do prižiga žarnice.

Raspberry Pi 3

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.

Rele

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.

Žarnica

Navadna žarnica, priključena na rele. Pri izbiri je bilo potrebno upoštevati porabniški tok in moč, da preprečimo preobremenitev vezja.

SD Kartica

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.

// 03 — PYTHON SKRIPTA

GPIO toggle v 10 vrsticah

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.

RPi.GPIO knjižnica za nadzor nad GPIO pini
BCM način naslavljanja pinov
Toggle logika — ista skripta za prižig in ugasitev
Zaženemo z SUDO privilegiji: sudo python3 main.py
PYTHON — main.py
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)
// 04 — SPLETNA STRAN

Apache + PHP + lokalni strežnik

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.

Spletna aplikacija
PHP — obdelava zahtevka
PHP
<?php
  if(isset($_POST['LED'])) {
    shell_exec(
      'python3 /home/car/main.py'
    );
  }
?>
// 05 — KAKO DELUJE

Od klika do prižiga

Celotna veriga od pritiska na gumb do prižiga žarnice poteka v manj kot sekundi — vse prek lokalnega omrežja.

01

Uporabnik odpre spletno stran

Apache strežnik na Raspberry Pi servira PHP stran prek lokalnega IP naslova (hostname -I).

02

Pritisk na gumb "Pametna Luč"

Brskalnik pošlje HTTP POST zahtevek na strežnik s parametrom LED.

03

PHP sprejme zahtevek

isset($_POST['LED']) je true — shell_exec zažene Python skripto z SUDO privilegiji.

04

Python toggle GPIO pin 21

Skripta prebere stanje pina — če HIGH postane LOW, če LOW postane HIGH.

05

Rele aktivira ali deaktivira žarnico

GPIO signal aktivira rele, ki odpre ali zapre električni tok do žarnice.

// 06 — TECH STACK

Tehnologije in orodja

Kombinacija strojne in programske opreme — od single-board računalnika do skriptnih jezikov in Unix orodij.

Raspberry Pi 3
Python 3
PHP 7
HTML5
CSS3
Apache 2
RPi.GPIO
PuTTY
WinSCP
Raspbian OS
// 07 — DOKUMENTACIJA

Dokumentacija projekta

Celotna projektna dokumentacija pokriva namen naloge, teoretični del, komponente, kodo in zaključke.

📄

1INF-Kastigar-Pametna_žarnicae.docx

Projektna dokumentacija — Pametna Žarnica, 2023

↓ Prenesi
← Nazaj na portfolio