Satura rādītājs:

Kā kontrolēt kontaktligzdas, izmantojot Raspberry Pi: 6 soļi
Kā kontrolēt kontaktligzdas, izmantojot Raspberry Pi: 6 soļi

Video: Kā kontrolēt kontaktligzdas, izmantojot Raspberry Pi: 6 soļi

Video: Kā kontrolēt kontaktligzdas, izmantojot Raspberry Pi: 6 soļi
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, Novembris
Anonim
Kā kontrolēt kontaktligzdas, izmantojot Raspberry Pi
Kā kontrolēt kontaktligzdas, izmantojot Raspberry Pi
Kā kontrolēt kontaktligzdas, izmantojot Raspberry Pi
Kā kontrolēt kontaktligzdas, izmantojot Raspberry Pi
Kā kontrolēt kontaktligzdas, izmantojot Raspberry Pi
Kā kontrolēt kontaktligzdas, izmantojot Raspberry Pi

Šajā pamācībā es jums parādīšu, kā izveidot tīmekļa saskarni, lai kontrolētu kontaktligzdas jūsu mājās, izmantojot Raspberry Pi. Es izvēlējos rakstīt šo projektu, kad redzēju konkursu Sensori, un, tā kā šis projekts ietver sensora izmantošanu, lai nolasītu kodus no tālvadības pults, kas ir komplektā ar iegādātajām kontaktligzdām, es domāju, ka šis projekts būs ideāls.

Es strādāšu, lai tas būtu pēc iespējas augstāks, un sniegšu kodu, lai tas viss darbotos. Visiem kodiem pērtiķiem, kas tur atrodas, nekautrējieties kodēt un pārbaudiet mani komentāros! Es vienmēr cenšos uzlabot. Tas notiek diezgan maz, tādēļ, ja jums ir jautājumi par kādu darbību, lūdzu, atstājiet komentāru, lai es varētu atjaunināt instrukciju ar nepieciešamo informāciju.

Šajā projektā tiek izmantotas radiofrekvences kontrolētās kontaktligzdas 433MHz kopā ar RF raidītāju, kas pievienots jūsu aveņu pi. Tirdzniecības vietās ir tālvadības pults, kas var ieslēgt/izslēgt kontaktligzdas, taču tas nav jautri! Tā vietā mēs izmantosim tīmekļa serveri, kas darbojas uz aveņu pi, kas ļauj ikvienam tīklam pieslēgtam ieslēgt vai izslēgt noteiktas kontaktligzdas. Šī projekta tīmekļa priekšpuse ir ideāla, jo jebkuru ar tīklu savienotu ierīci jūsu tīklā var izmantot kā tālvadības pulti.

Šis ir projekts, par kuru esmu sapņojusi pabeigt gadiem ilgi, un, lai gan vēl ir vietas papildinājumiem, tālāk aprakstītais projekts ir funkcionāla sistēma.

Piegādes

  • A Raspberry Pi (es izmantoju RPi 3 modeli B+)
  • 433MHz raidītājs un uztvērējs (es izmantoju šo)
  • 433 MHz izejas (es to izmantoju)
  • Džemperi no sievietēm līdz sievietēm (es nopirku šo ķekaru)
  • Dators vai rokas ierīce, kas spēj piekļūt internetam

1. darbība: iestatiet savu Raspberry Pi

Iestatiet savu Raspberry Pi
Iestatiet savu Raspberry Pi

Sāciet, instalējot jaunāko Raspbian versiju savā jaunajā Raspberry Pi. Ja jūs plānojat izmantot esošu Pi (ko jūs varat pilnībā izdarīt), viss, kas jums jādara, ir pārliecināties, vai jūsu Pi ir Python 3, jo tas ir viss manis sniegtais avota kods., tips

python3

komandrindā. Ja jums ir Python 3, jums vajadzētu redzēt atvērtu python termināli. Izejiet no termināļa, aizverot vai ierakstot

Izeja()

Kad esat to apstiprinājis, jums jāinstalē kolba savā Pi. Kolba ļauj mums izveidot savu tīmekļa serveri. No komandrindas Pi ierakstiet

sudo pip3 instalācijas kolba

Ja jūsu Pi nav instalēts pip, jums būs jāievada

sudo apt-get instalēt python3-pip

Es labprātāk attīstos savā Raspberry Pi no sava galda datora ērtībām. Ja arī jūs dodat priekšroku šai opcijai, PiH jāinstalē sava veida vide. PuTTY darbosies, bet man labāk patīk GUI (grafiskais lietotāja interfeiss), kas liek šķist, ka atrodaties tieši uz Pi. GUI opcijai vēlaties instalēt VNC Viewer datorā, ar kuru plānojat strādāt. Ir arī iestatījumi, kas jums būs jāpielāgo savā Pi. Norādījumus par iestatījumu maiņu var atrast šeit.

2. darbība. Aparatūras pievienošana

Aparatūras savienošana
Aparatūras savienošana

Šobrīd ir pienācis laiks izveidot visus fiziskos savienojumus, kas jums būs jādara, lai sagatavotos šī projekta avota koda iestatīšanai. Jūs savienosit raidītāja un uztvērēja tapas ar jūsu Pi GPIO tapām. Jūs vēlaties reliģiski atsaukties uz GPIO tapu pinout diagrammu. Lai to izdarītu, atveriet Pi termināli un ierakstiet

pinout

Tālāk ir norādīti savienojumi, kurus es izveidoju. Jums var būt cita konfigurācija, ja iegādājāties citu raidītāja/uztvērēja aparatūru, nekā es norādīju ievadā. Ja jūs nolemjat izvēlēties citus pin numurus, nekā tie, kurus es norādīju zemāk, nebaidieties! Lejupielādējot avota kodu, vienkārši mainiet PIN numurus pēc nepieciešamības failā RxTx.py.

Uztvērējs (liela mikroshēma):

  • GND - jebkura norādīta zemējuma tapa
  • DATI - 11. tapa
  • DER - nav savienots
  • +5 V - jebkura norādīta +5 V tapa
  • ------
  • +5V - jebkura norādīta +5V tapa
  • GND - jebkura norādīta zemējuma tapa
  • GND - nav savienots
  • ANT - nav savienots

Piezīme: Jūs varat pievienot antenu pēc vajadzības, bet es atklāju, ka man tas nav nepieciešams. Šī mazā mikroshēma bija pārsteidzoši jutīga un uzticīgi uztver signālus vismaz 50 pēdu attālumā no vietas, kur tā sēdēja, un caur vismaz divām sienām.

Raidītājs:

  • P - 3,3 V tapa
  • DA - 7. tapa
  • G - jebkura norādīta zemējuma tapa
  • AN - nav savienots

Piezīme: Atkal, ja nepieciešams, varat pievienot raidītājam antenu, bet es atklāju, ka man tas nav nepieciešams. Diapazons ir vairāk nekā pietiekams (50+pēdas).

3. darbība: koda pievienošana

Šī ir daļa, kurai es veltīju lielāko daļu sava laika, izstrādājot šo projektu. Es cenšos pēc iespējas vairāk komentēt, bet, iespējams, atstāju nepilnības, kas var prasīt paskaidrojumus, ja kāds no jums tērē laiku, lai to saprastu. Ja tas notiek ar jums, lūdzu, atstājiet komentāru!

Šeit ir iesaistītas šādas valodas:

  • Python
  • CSS
  • Javascript
  • HTML
  • JQuery/Ajax

Python tiek izmantots kolbas serverī un

RxTx.py

failu, kas apstrādā koda pārraidi un saņemšanu. CSS tiek izmantots, veidojot tīmekļa lapas stilu. Kurš vēlas garlaicīgu vietni !? Javascript tiek izmantots jebkurā notikumu apstrādē (nospiežot pogu utt.). HTML ir tīmekļa lapas galvenais elements. Visbeidzot, JQuery/Ajax tiek izmantots, lai sazinātos starp tīmekļa lapu un Python aizmuguri.

Ja visas šīs valodas izklausās biedējošas, neuztraucieties! Es zināju tikai to, ka Python iesaistās šajā projektā, kas bija valoda, kurā bija vismazāk kodēšanas, dodieties uz skaitli … Pietiek ar to, veltiet laiku ķemmēšanai, ja izvēlaties to darīt. Ja negribi, nevajag!

Tālāk ir norādīta direktoriju struktūra, kuru izvēlējos izmantot šajā tīmekļa vietnē. Šai darbībai pievienotā mape ar rāvējslēdzēju satur visu avota kodu šādā struktūrā.

Izejas slēdzis-> comm-- DataRW.py-- keys.py-- RxTx.py-> tīmekļa lapa-statiska ----- favicon.ico ----- style.css-- veidnes ----- index.html ----- schedule.html-- app.py-- data.file

Jūs varat ievietot mapi Outlet Switch jebkurā vietā savā Pi. Kad esat gatavs palaist savu tīmekļa serveri, atveriet termināli savā Pi un

cd

(mainīt direktoriju) uz tīmekļa lapu direktoriju. Pēc tam ierakstiet

python3 app.py

terminālī. Ja nav nekādu kļūdu, jums vajadzētu doties ceļā!

P. S. Lūdzu, esiet pacietīgs, ja rodas kādas kļūdas. Pirms augšupielādes es mēģināju tos visus saspiest.

4. solis: izmēģiniet to

Izmēģiniet to!
Izmēģiniet to!

Tagad, kad izmantojat kodu, varat viegli sajust tīmekļa saskarni. Sistēmas vadība ir ļoti vienkārša:

  • Izmantojot tīmekļa saskarni, varat pievienot tik daudz tirdzniecības vietu, cik vēlaties.
  • Dzēšana ir tik vienkārša, kā noklikšķināt uz rediģēt, atlasīt dzēšanas vietas un noklikšķināt uz dzēst.

Iepriekš minētais YouTube videoklips parāda, kā faktiski pievienot jaunu kontaktinformāciju savam sarakstam. Apkopojot, ko tas parāda:

  • Vispirms laukā Nosaukums ievadiet tirdzniecības vietas nosaukumu
  • Noklikšķiniet vai pieskarieties laukam Nosaukums, lai ļautu programmai pārbaudīt, vai nosaukums jau nepastāv. Jums nevar būt nosaukumi ar tādu pašu nosaukumu
  • Pēc apstiprināšanas pogas ON Code un OFF Code ir iespējotas.
  • Nospiediet un turiet ieslēgtā pogu tālvadības pultī un saskarnē ātri noklikšķiniet uz pogas IESLĒGT. Turiet tālvadības pults pogu, līdz jūsu binārais kods aizpilda blakus esošo lauku.
  • Atkārtojiet OFF koda iepriekšējo darbību.
  • Noklikšķiniet uz Labi, un tagad esat gatavs mainīt šo kontaktligzdu!

Kā minēts ievadā, projekts nav 100% pabeigts manai lietošanai. Lielākais komponents, kas man vēl jāpabeidz un jāievieš, ir plānošanas iespēja. Es plānoju ļaut lietotājam izveidot grafiku, kas ļautu automātiski ieslēgt un izslēgt kontaktligzdas noteiktā laikā.

5. darbība: atkļūdošana un fails RxTx.py

Atkļūdošana un RxTx.py fails
Atkļūdošana un RxTx.py fails
Atkļūdošana un RxTx.py fails
Atkļūdošana un RxTx.py fails
Atkļūdošana un RxTx.py fails
Atkļūdošana un RxTx.py fails
Atkļūdošana un RxTx.py fails
Atkļūdošana un RxTx.py fails

Vienīgais zināmais sistēmas ierobežojums ir dažādu pārdevēju tirdzniecības vietu nesaderības iespēja. Ieslēgšanas un izslēgšanas koda ziņojumi manai sistēmai ir 25 biti, un, ja sistēmai ir atšķirīgs ziņojuma garums, tā nav uzreiz saderīga ar šo projektu. Ja precīzi izpildījāt norādījumus un joprojām rodas problēmas, lai tas darbotos, tālāk minētais būtu labākais veids, kā novērst problēmu.

  • Pārliecinieties, vai jūsu Pi ir instalēts matplotlib. To var izdarīt, Pi terminālī ierakstot:

    • python3

    • importēt matplotlib

    • Ja saņemat kļūdu, jums jāinstalē matplotlib.
    • Iziet no pitona apvalka, izmantojot

      Izeja()

  • Lai instalētu matplotlib, ierakstiet

    sudo pip3 instalējiet matplotlib

  • terminālī
  • Lejupielādējiet pievienoto test.py failu un novietojiet to kopā ar RxTx.py failu savā Pi
  • Atveriet python termināli un mainiet direktoriju uz mapi comm.
  • Tips

    python3 test.py

  • Kad tiek rakstīts “** Sākta ierakstīšana **”, nospiediet un turiet tālvadības pults ieslēgšanas vai izslēgšanas pogu, līdz ieraksts beidzas.
  • Programma ielādēs matplotlib figūru, kas izskatās līdzīgi iepriekš minētajam. Tuviniet, līdz redzat atkārtotu signālu, kā parādīts iepriekš redzamajos fotoattēlos.
  • Katram ziņojumam saskaitiet kopējo loģisko 1 un loģisko 0, ja ziņojums ir viena atkārtotā signāla atkārtojums, kas redzams iepriekš. Ja kopsumma ir 25, iespējams, RxTx.py failā nav vainas. Ja saskaraties ar kaut ko citu, nevis 25, noteikti komentējiet zemāk, un es pārprogrammēšu RxTx.py failu, lai tas būtu atvērtāks (vai arī izmēģiniet savu roku).

Ko darīt, ja neredzu atkārtotu signālu?

Ja neredzat atkārtotu signālu, viena no divām lietām ir nepareiza. Vispirms pārbaudiet, vai visi savienojuma vadu savienojumi ir pareizi izveidoti. Ja viss izskatās labi, iespējams, jums ir slikts uztvērējs. Vai jūs iegādājāties to, ko es ieteicu? Kad es nopirku savu pirmo uztvērēja mikroshēmu, tā bija ļoti trokšņaina. Tik trokšņains, ka nevarēju iegūt skaidru signālu. Pēc tam es atgriezu šo mikroshēmu un paņēmu to, kuru es saistīju, un tā nevarēja darboties labāk.

6. solis: izbaudiet

Jūs zināt, ka varat ieslēgt/izslēgt kontaktligzdas no sava tālruņa, planšetdatora, datora vai citas ierīces, kas nodrošina tīmekli! Ļaujiet man zināt, ko jūs domājat komentāros!

Ieteicams: