Sadržaj:

Pametna kuća od Raspberry Pi: 5 koraka (sa slikama)
Pametna kuća od Raspberry Pi: 5 koraka (sa slikama)

Video: Pametna kuća od Raspberry Pi: 5 koraka (sa slikama)

Video: Pametna kuća od Raspberry Pi: 5 koraka (sa slikama)
Video: Юлька_Рассказ_Слушать 2024, Novembar
Anonim
Pametna kuća od Raspberry Pi
Pametna kuća od Raspberry Pi

Već postoji nekoliko proizvoda koji vaš stan čine pametnijim, ali većina njih su vlasnička rješenja. Ali zašto vam je potrebna internetska veza za uključivanje svjetla na pametnom telefonu? To je bio jedan od razloga zašto sam izgradio vlastito rješenje za pametnu kuću.

Programirao sam serversku aplikaciju koja radi na Raspberry Pi -u. Ovo je projekat otvorenog koda zasnovan na javi koji vam omogućava da konfigurirate svoj stan i povežete nekoliko klijenata i 'kontrolisanih jedinica'. Pokazujem rješenje koje rukuje prekidačima za napajanje na daljinskom upravljaču, reproducira muziku i video na Raspberry Pi, prikazuje status na pametnom ogledalu i može se kontrolirati pomoću android aplikacije i dvije šljunčane aplikacije. Izvor je smješten na github

Korak 1: Stvari koje trebate

Stvari koje trebate
Stvari koje trebate

Za postavljanje pametne kuće potrebni su vam sljedeći "sastojci"

  • Raspberry Pi barem model 2 B
  • Pošiljalac 433 MHz, otprilike ovako
  • 3 kratkospojna kabela koji povezuju Raspberry Pi i pošiljatelja
  • Neke utičnice za radio kontrolu na 433 MHz
  • Android pametni telefon za pokretanje klijentske aplikacije

Osim toga, pametnu kuću možete proširiti s više izbornih klijenata i jedinica poput ove

  • Šljunčani pametni sat
  • Pametno ogledalo, pogledajte ovaj projekt
  • 433 MHz kontrolirana LED traka, pogledajte ovo

Korak 2: Pripremite Raspberry Pi za 433 MHz

Pripremite Raspberry Pi za 433 MHz
Pripremite Raspberry Pi za 433 MHz
Pripremite Raspberry Pi za 433 MHz
Pripremite Raspberry Pi za 433 MHz

U sljedećim koracima potreban vam je pristup komandnoj liniji na Raspberry Pi. Da biste dobili pristup, možete pročitati ovo uputstvo

Povežite pošiljalac od 433 MHz sa Raspberry Pi -om kao što je prikazano na gornjoj slici

  • GND (pošiljalac) 6 GND (raspi)
  • VCC (pošiljalac) 2 +5V (raspi)
  • PODACI (pošiljalac) 11 GPIO 17 (raspi)

Priključite i antenu od 17 cm na ANT (pošiljalac) iglu. To značajno povećava signal.

Pošto nam trebaju neke biblioteke iz drugih git spremišta, moramo instalirati git

sudo apt-get install git-core -y

Za postavljanje Raspberry Pi -a za komunikaciju od 433 MHz potrebna nam je ožičena Pi biblioteka za bolje rukovanje GPIO -ovima.

git clone git: //git.drogon.net/wiringPi

cd wiringPi./build

Zatim nam je potrebna biblioteka koja implementira tipično rc protokole napajanja.

git clone git: //github.com/dabastynator/rcswitch-pi.git

cd rcswitch-pi napravi cp pošalji/usr/bin/

Izvršna datoteka 'send' omogućuje vam slanje kodova za promjenu većine dostupnih izvora napajanja.

U postavkama pametne kuće imam i rc LED traku koju opisuje ova instrukcija: https://www.instructables.com/id/RC-contilled-LED… Za postavljanje boja za ovu LED traku potrebna vam je još jedna izvršna datoteka za slanje za slanje bilo koje integer vrijednosti (koja kodira boju).

Stoga, kompajlirajte sendInt.cpp u rcswitch-pi repo i premjestite ga u/usr/bin/sendInt.

sudo g ++ sendInt.cpp -o/usr/bin/sendInt /home/pi/rcswitch-pi/RCSwitch.o -I/home/pi/rcswitch -pi -lwiringPi

Sada biste trebali moći slati rc naredbe s dvije izvršne datoteke/usr/bin/send i/usr/bin/sendInt

Korak 3: Postavite Smart Home Server

Prije svega morate instalirati nekoliko paketa. Aplikacija Smart Home zasnovana je na javi i radi dobro s openjdk-11. Nisam siguran za druga java runtime okruženja. Mplayer je minimalistički muzički plejer komandne linije. Omxplayer koristi Raspberry Pi grafiku za kodiranje videa, pa bi se to trebalo koristiti za video zapise. Program ant je potreban za izradu java aplikacije.

sudo apt-get install mplayer omxplayer openjdk-11-jdk ant -y

Postavljanje direktorija za jar datoteku i zapisnike.

sudo mkdir /opt /neo

sudo chown pi: pi/opt/neo mkdir/home/pi/Dnevnici

Konfigurirajte start script za automatsko pokretanje aplikacije pri pokretanju. Stoga kopirajte priloženu skriptu pametnog doma u direktorij /etc/init.d/ Također sam stvorio skriptu u/usr/bin/koja šalje komande u priloženu skriptu, pa samo unosim pametnu kuću u konzolu za izvršavanje naredbi.

sudo cp smart-home /etc/init.d/smart-home

sudo chmod +x /etc/init.d/smart-home sudo sh -c "echo '#!/bin/bash'>/usr/bin/smart -home" sudo sh -c "echo '/etc/init. d/pametni dom / $ 1 '>>/usr/bin/pametni dom "sudo chmod +x/usr/bin/sudo ažuriranje sudo-rc.d zadane postavke pametnog doma

Sada je vrijeme da provjerite spremište i izgradite aplikaciju. Ako ne želite sami sastaviti, možete samo preuzeti priloženi smarthome.jar i premjestiti ga u/opt/neo/

git klon [email protected]: dabastynator/SmartHome.git

ant -f SmartHome/de.neo.smarthome.build/build.ant build_remote cp SmartHome/de.neo.smarthome.build/build/jar/*/opt/neo/

Pokušajte pokrenuti pametni dom i provjerite datoteku dnevnika. Da biste dobili pristup GPIO -ovima, aplikaciju mora pokrenuti sudo.

početak pametnog doma sudo

cat Logs/smarthome.log

Trebali biste vidjeti poruku o grešci Ne postoji konfiguracijska datoteka koja nas upućuje na sljedeći korak. Spremište sadrži readme koje objašnjava konfiguracijsku datoteku. Ovo možete lijepo prikazati na githubu:

Kopirajte ovaj xml na /home/pi/controlcenter.xml, a zatim postavite lokaciju za vaš medijski poslužitelj i promijenite sadržaj po potrebi. Nakon što završite konfiguraciju i ponovo pokrenete pametni dom (sudo smart-home restart), trebali biste vidjeti sljedeći sadržaj u smarthome.log

24.05-08: 26 DALJINSKE INFORMACIJE od de.neo.smarthome.cronjob. CronJob@15aeb7ab: Zakažite cron posao

24.05-08: 26 DALJINSKE INFORMACIJE od [trigger.light]: Pričekajte 79391760 ms za izvršavanje 24.05-08: 26 RMI INFORMACIJE od Dodavanje web-rukovatelja (5061/ledstrip) 24.05-08: 26 RMI INFORMACIJE od Dodaj web-rukovatelja (5061 /akcija) 24.05-08: 26 RMI INFORMACIJE od Add web-handler-a (5061/mediaserver) 24.05-08: 26 RMI INFORMATION by Add web-handler (5061/switch) 24.05-08: 26 RMI INFORMACIJE by Add web-handler (5061/controlcenter) 24.05-08: 26 RMI INFORMACIJE od Start web poslužitelja s 5 rukovatelja (localhost: 5061) 24.05-08: 26 DALJINSKE INFORMACIJE od Controlcenter: Dodati 1. upravljačku jedinicu: MyUnit (xyz)…

Web server sada radi:-)

Korak 4: Postavljanje klijenata

Postavljanje klijenata
Postavljanje klijenata
Postavljanje klijenata
Postavljanje klijenata
Postavljanje klijenata
Postavljanje klijenata

Android klijent pametnog telefona

Git spremište za aplikaciju pametnog doma također sadrži izvor za android klijenta, tako da ga možete sami sastaviti. Ali priložio sam APK za ovaj korak, što olakšava. Kada prvi put pokrenete aplikaciju, od vas će se tražiti poslužitelj, kao na prvoj gornjoj slici. Unesite url servera i sigurnosni token.

To bi trebalo biti to. Sada imate pristup poslužitelju i kontrolirate svoj stan, reproducirate muziku i gledate videozapise na daljinu na svom Raspberry Pi -u. Imajte na umu da na početni ekran možete dodati widgete, što prekidače i upravljanje muzikom čini pristupačnijima.

Smartwatch klijent sa šljunkom

Izvor za dva klijenta sa šljunkom smješten je na githubu. Jedna aplikacija prikazuje trenutnu muzičku datoteku koja se trenutno reprodukuje: https://github.com/dabastynator/PebbleRemoteMusic… Ovo vam takođe omogućava pauziranje/reprodukciju i pojačavanje/smanjivanje jačine zvuka.

Druga aplikacija pokreće tri radnje: https://github.com/dabastynator/PebbleControl Imena okidača su: mobile.come_home mobile.leaving i mobile.go_to_bed. Ako definirate pravila događaja za ovaj okidač u konfiguracijskom xml-u, aktivirat ćete ih satom.

Sve je otvorenog koda, ali ne morate ga sami sastavljati, priložio sam i šljunčane aplikacije. Preuzmite PBW sa svojim pametnim telefonom, telefon bi ih trebao instalirati na sat. Šljunčane aplikacije trebaju konfiguracije za razgovor s poslužiteljem. Priložio sam snimak ekrana kako izgledaju moje postavke.

Pametni sat Garmin klijent

Dostupan je i klijent za Garmin pametne satove. Aplikacija je dostupna u garmin connect app store-u i može se instalirati ovdje:

apps.garmin.com/en-US/apps/c745527d-f2af-4…

Smart Mirror klijent

Već sam stvorio instrukciju koja objašnjava kako stvoriti Smart Mirror, pogledajte ovo https://www.instructables.com/id/Smart-Mirror-by-R…. Izvorni kod je također hostiran na githubu: https:// github.com/dabastynator/SmartMirror. Softver Smart Mirror -a čita konfiguraciju iz datoteke smart_config.js koja nije dio git spremišta. Sadržaj konfiguracijske datoteke trebao bi izgledati ovako:

var mOpenWeatherKey = 'your-open-wheather-key';

var mSecurity = 'your-security-token';

Također morate prilagoditi prva dva retka datoteke smart_mirror.js kako biste naveli ip adresu poslužitelja Smart Home i lokaciju kako biste dobili pravo vrijeme.

Više klijenata

Server aplikacija je jednostavan web server. Ovo vam omogućuje da pokrenete radnje od bilo kojeg klijenta kojim želite jednostavnim web-pozivima. U demo-videu prikazujem Android app Tasker u kombinaciji s AutoVoice-om. To mi omogućuje pokretanje događaja jednostavnim glasovnim naredbama. Na primjer, "ok Google, vrijeme za spavanje" može pokrenuti mobile.go_to_bed. Ali možete i upućivati web pozive, na primjer s IFTTT-a. Šta kažete na žutu trepćuću LED traku za obavijesti putem e -pošte?

Od servera možete zatražiti moguće internetske pozive poput sljedećih veza (zamijenite ip, port i token prema vašoj konfiguraciji)

localhost: 5061/controlcenter/api? token = secu…

localhost: 5061/action/api? token = security-to…

localhost: 5061/mediaserver/api? token = securi…

localhost: 5061/switch/api? token = security-to…

localhost: 5061/ledstrip/api? token = security-…

Korak 5: Zaključak

Još uvijek postoje neke značajke koje je potrebno implementirati: Budući da poslužitelj pruža samo jednostavan web-api klijent, dosta se bavi anketiranjem. Da bih smanjio broj birača, želim MQTT integraciju za bolje obavještavanje. Također, wifi napajanja bi trebala biti pouzdanija od rc napajanja jer je rc samo jednosmjerna komunikacija.

Prilično je zabavno razvijati se za ovaj projekt. I prilično je cool kontrolirati stan s nekoliko uređaja, čak i ako se prekine internetska veza.

Preporučuje se: