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, Srpanj
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 je vlasničkih rješenja. Ali zašto vam je potrebna internetska veza za uključivanje svjetla s pametnog telefona? To mi je bio jedan od razloga za izgradnju vlastitog rješenja za pametnu kuću.

Programirao sam poslužiteljsku aplikaciju koja radi na Raspberry Pi. Ovo je otvoreni izvorni projekt temeljen na Java -i koji vam omogućuje da konfigurirate svoj stan i povežete nekoliko klijenata i 'jedinica koje se mogu kontrolirati'. Pokazujem rješenje koje rukuje prekidačima za napajanje na daljinskom upravljaču, reproducira glazbu i video na Raspberry Pi -u, prikazuje status na pametnom ogledalu i može se kontrolirati pomoću android aplikacije i dvije šljunčane aplikacije. Izvor se nalazi na githubu

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šiljatelj na 433 MHz, otprilike ovako
  • 3 kratkospojna kabela koji povezuju Raspberry Pi i pošiljatelja
  • Neke utičnice za radijsko upravljanje na 433 MHz
  • Android pametni telefon za pokretanje klijentske aplikacije

Osim toga, pametni dom 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 ovu

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 trebate pristupiti naredbenom retku na Raspberry Pi. Da biste dobili pristup, možete pročitati ovu uputu

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

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

Također spojite antenu od 17 cm na ANT (pošiljatelj) iglu. To značajno povećava signal.

Budući da nam trebaju neke knjižnice 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 biblioteka ožičenja Pi za bolje rukovanje GPIO -ovima.

git klon git: //git.drogon.net/wiringPi

cd ožičenjePi./izgraditi

Zatim nam je potrebna knjižnica koja implementira tipično rc protokole napajanja.

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

cd rcswitch-pi make cp send/usr/bin/

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

U postavkama pametnog doma također imam rc LED traku koju opisuje ova uputa: https://www.instructables.com/id/RC-contlined-LED… Za postavljanje boja za ovu LED traku potrebna vam je još jedna izvršna datoteka za slanje za slanje bilo koje vrijednosti Integer (koja kodira boju).

Stoga kompajlirajte sendInt.cpp u repo rcswitch-pi 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: Postavljanje poslužitelja Smart Home

Prije svega morate instalirati nekoliko paketa. Aplikacija Smart Home temelji se na javi i radi dobro s openjdk-11. Nisam siguran za ostala java runtime okruženja. Mplayer je minimalistički player glazbe naredbenog retka. 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 naredbe u priloženu skriptu, pa samo unosim pametnu kuću na 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 za provjeru spremišta i izradu aplikacije. Ako ga ne želite sami sastaviti, možete jednostavno 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

mačji dnevnici/smarthome.log

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

Kopirajte ovaj xml u /home/pi/controlcenter.xml, a zatim postavite mjesto za svoj medijski poslužitelj i promijenite sadržaj prema potrebi. Nakon što ste dovršili konfiguraciju i ponovno pokrenuli 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 DALJINSKI PODACI od [trigger.light]: Pričekajte 79391760 ms za izvršavanje 24.05-08: 26 RMI INFORMACIJE od Dodaj web-rukovatelj (5061/ledstrip) 24.05-08: 26 RMI INFORMACIJE od Dodaj web-rukovatelj (5061 /action) 24.05-08: 26 RMI INFORMATION by Add web-handler (5061/mediaserver) 24.05-08: 26 RMI INFORMATION by Add web-handler (5061/switch) 24.05-08: 26 RMI INFORMATION 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: Dodajte 1. upravljačku jedinicu: MyUnit (xyz)…

Web poslužitelj sada radi:-)

Korak 4: Postavljanje klijenata

Klijenti za postavljanje
Klijenti za postavljanje
Klijenti za postavljanje
Klijenti za postavljanje
Klijenti za postavljanje
Klijenti za postavljanje

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. No za ovaj sam korak priložio APK, što ga čini lakšim. Prilikom prvog pokretanja aplikacije od vas će se tražiti poslužitelj, kao na prvoj slici gore. Unesite url poslužitelja i sigurnosni token.

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

Klijent Smartwatch Šljunak

Izvor za dva klijenta sa šljunkom nalazi se na githubu. Jedna aplikacija prikazuje trenutnu glazbenu datoteku koja se reproducira: https://github.com/dabastynator/PebbleRemoteMusic… Ovo vam također omogućuje pauziranje/reprodukciju i pojačavanje/smanjivanje glasnoće.

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 zaslona kako izgledaju moje postavke.

Pametni sat Garmin klijent

Za Garmin pametne satove dostupan je i klijent. Aplikacija je dostupna u trgovini aplikacija Garmin Connect 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 kôd je također hostiran na githubu: https:// github.com/dabastynator/SmartMirror. Softver Smart Mirrora č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

Poslužiteljska aplikacija jednostavan je web poslužitelj. To 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, time to sleep" može pokrenuti mobile.go_to_bed. No možete i upućivati web-pozive, na primjer s IFTTT-a. Što kažete na žutu trepćuću LED traku za obavijesti putem e -pošte?

Od poslužitelja 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 za implementaciju: Budući da poslužitelj pruža samo jednostavan web-api klijent, puno se bavi anketiranjem. Kako bih smanjio broj glasovanja, želim integraciju MQTT -a radi bolje obavijesti. 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čeni: