Turinys:

Kaip valdyti lizdus naudojant „Raspberry Pi“: 6 žingsniai
Kaip valdyti lizdus naudojant „Raspberry Pi“: 6 žingsniai

Video: Kaip valdyti lizdus naudojant „Raspberry Pi“: 6 žingsniai

Video: Kaip valdyti lizdus naudojant „Raspberry Pi“: 6 žingsniai
Video: Электрический или водяной полотенцесушитель? Что выбрать? Установка. #25 2024, Lapkritis
Anonim
Kaip valdyti lizdus naudojant „Raspberry Pi“
Kaip valdyti lizdus naudojant „Raspberry Pi“
Kaip valdyti lizdus naudojant „Raspberry Pi“
Kaip valdyti lizdus naudojant „Raspberry Pi“
Kaip valdyti lizdus naudojant „Raspberry Pi“
Kaip valdyti lizdus naudojant „Raspberry Pi“

Šioje instrukcijoje aš jums parodysiu, kaip sukurti žiniatinklio sąsają, kad galėtumėte valdyti savo namų lizdus naudodami „Raspberry Pi“. Aš nusprendžiau parašyti šį projektą, kai pamačiau konkursą „Jutikliai“, ir kadangi šis projektas apima jutiklio naudojimą kodams nuskaityti iš nuotolinio valdymo pulto, kuris yra įsigytas lizdas, maniau, kad šis projektas puikiai tiks.

Stengsiuosi, kad šis lygis būtų kuo aukštesnis, ir pateiksiu kodą, kad visa tai veiktų. Visiems, kurie koduoja beždžiones, nedvejodami pasinerkite į kodą ir atidžiai apžiūrėkite mane komentaruose! Aš visada siekiu tobulėti. Tai vyksta gana mažai, taigi, jei turite klausimų dėl bet kurio žingsnio, palikite komentarą, kad galėčiau atnaujinti instrukciją su reikalinga informacija.

Šis projektas naudoja radijo dažnio valdomas 433 MHz lizdus kartu su RF siųstuvu, prijungtu prie jūsų aviečių pi. Lizdai yra su nuotolinio valdymo pultais, kurie gali įjungti/išjungti lizdus, tačiau tai nėra smagu! Vietoj to naudosime žiniatinklio serverį, veikiantį „Raspberry pi“, kuris leidžia kiekvienam prisijungusiam prie tinklo įjungti arba išjungti tam tikras lizdus. Šio projekto žiniatinklio sąsaja yra ideali, nes bet kurį prie tinklo prijungtą įrenginį jūsų tinkle galima naudoti kaip nuotolinio valdymo pultą.

Tai projektas, apie kurį svajojau baigti daugelį metų, ir nors dar yra kur papildyti, toliau aprašytas projektas yra funkcinė sistema.

Prekės

  • A Raspberry Pi (naudojau RPi 3 modelį B+)
  • 433MHz siųstuvas ir imtuvas (aš naudoju šį)
  • 433 MHz lizdai (aš tai naudoju)
  • Moteriški megztiniai (nusipirkau šią krūvą)
  • Kompiuteris ar rankinis įrenginys, galintis prisijungti prie interneto

1 žingsnis: nustatykite „Raspberry Pi“

Nustatykite „Raspberry Pi“
Nustatykite „Raspberry Pi“

Pradėkite įdiegdami naujausią „Raspbian“versiją savo naujajame „Raspberry Pi“. Jei planuojate naudoti esamą „Pi“(tai galite padaryti visiškai), viskas, ko jums reikia, yra įsitikinti, kad jūsų „Pi“turi „Python 3“, nes būtent jame yra parašytas visas mano pateiktas šaltinio kodas., tipas

python3

į komandų eilutę. Jei turite „Python 3“, turėtumėte pamatyti atidarytą „python“terminalą. Išeikite iš terminalo uždarydami arba įvesdami

išeiti ()

Kai tai patvirtinsite, turite įdiegti kolbą į savo „Pi“. Kolba leidžia mums sukurti savo žiniatinklio serverį. Į komandų eilutę Pi įveskite

sudo pip3 diegimo kolba

Jei jūsų Pi nėra įdiegtas pip, turėsite įvesti

sudo apt-get įdiegti python3-pip

Man labiau patinka kurti savo „Raspberry Pi“naudojant patogų stalinį kompiuterį. Jei jums taip pat labiau patinka ši parinktis, turite įdiegti tam tikrą aplinką SSH į „Pi“. „PuTTY“veiks, bet man labiau patinka GUI (grafinė vartotojo sąsaja), todėl atrodo, kad esate tiesiogiai „Pi“. Norėdami pasirinkti GUI, norėsite įdiegti „VNC Viewer“kompiuteryje, kuriame planuojate dirbti. Taip pat yra nustatymų, kuriuos turėsite koreguoti „Pi“. Nustatymų keitimo instrukcijas rasite čia.

2 žingsnis: Prijunkite aparatūrą

Aparatūros prijungimas
Aparatūros prijungimas

Šiuo metu atėjo laikas užmegzti visus fizinius ryšius, kuriuos turėsite atlikti ruošdamiesi nustatyti šio projekto šaltinio kodą. Jūs prijungsite siųstuvo ir imtuvo kaiščius prie „Pi“GPIO kaiščių. Norėsite religiškai remtis GPIO kaiščių pinout diagrama. Norėdami tai padaryti, atidarykite „Pi“terminalą ir įveskite

pinout

Toliau pateikiami mano sukurti ryšiai. Jei įsigijote kitokią siųstuvo/imtuvo aparatūrą, nei nurodyta įžangoje, konfigūracija gali būti kitokia. Jei nuspręsite pasirinkti kitokį PIN kodą, nei nurodysiu toliau, nebijokite! Atsisiųsdami šaltinio kodą, tiesiog pakeiskite PIN numerius, jei reikia, RxTx.py faile.

Imtuvas (didelis lustas):

  • GND - bet koks paskirtas įžeminimo kaištis
  • DUOMENYS - 11 kaištis
  • DER - neprijungtas
  • +5 V - bet koks nurodytas +5 V kaištis
  • ------
  • +5 V - bet koks nurodytas +5 V kaištis
  • GND - bet koks paskirtas įžeminimo kaištis
  • GND - neprisijungęs
  • ANT - neprisijungęs

Pastaba: jei reikia, galite prijungti anteną, bet aš maniau, kad man to nereikia. Šis mažas lustas buvo stebėtinai jautrus ir ištikimai aptinka signalus bent 50 pėdų atstumu nuo to, kur jis sėdėjo, ir per mažiausiai dvi sienas.

Siųstuvas:

  • P - 3,3 V kaištis
  • DA - 7 kaištis
  • G - bet koks paskirtas įžeminimo kaištis
  • AN - neprijungtas

Pastaba: vėlgi, jei reikia, galite prijungti anteną prie siųstuvo, bet aš maniau, kad man to nereikia. Diapazonas yra daugiau nei pakankamas (50+pėdų).

3 žingsnis: pridėkite kodą

Tai yra ta dalis, kuriai praleidau daugiausiai laiko kurdama šį projektą. Stengiuosi kuo daugiau komentuoti, bet tikriausiai palikau spragų, kurias gali reikėti paaiškinti, jei kas nors iš jūsų praleidžia laiką bandydamas tai suprasti. Jei tai atsitiks jums, palikite komentarą!

Čia dalyvauja šios kalbos:

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

„Python“naudojamas kolbų serveryje ir

RxTx.py

failą, kuris tvarko kodo perdavimą ir gavimą. CSS naudojamas kuriant tinklalapio stilių. Kas nori nuobodžios svetainės !? „Javascript“naudojamas bet kokiam įvykių tvarkymui (mygtuko paspaudimui ir pan.). HTML yra pagrindinis tinklalapio elementas. Galiausiai, „JQuery“/„Ajax“naudojama bendrauti tarp tinklalapio ir „Python“vidinės programos.

Jei visos šios kalbos skamba bauginančiai, nesijaudinkite! Žinojau tik tai, kad Python įsitraukė į šį projektą, kuris buvo ta kalba, kurioje reikėjo mažiausiai koduoti, eik ir suprask … Pakanka pasakyti, neskubėkite peršukuoti kodo, jei taip nusprendėte. Jei nenori, nereikia!

Toliau pateikiama katalogų struktūra, kurią pasirinkau naudoti šiame tinklalapyje. Prie šio veiksmo pridėtame aplanke, kuriame yra ZIP, yra visas šios struktūros šaltinio kodas.

Išleidimo jungiklis-> comm-- DataRW.py-- keys.py-- RxTx.py-> tinklalapis-statinis ----- favicon.ico ----- style.css-- šablonai ----- index.html ----- tvarkaraštis.html-- app.py-- data.file

„Outlet Switch“aplanką galite įdėti bet kurioje „Pi“vietoje. Kai būsite pasiruošę paleisti žiniatinklio serverį, atidarykite „Pi“terminalą ir

cd

(pakeisti katalogą) į tinklalapio katalogą. Tada įveskite

python3 app.py

į terminalą. Jei nebuvo klaidų, turėtumėte gerai eiti!

P. S. Būkite kantrūs, jei susidursite su klaidomis. Prieš įkeldama visus bandžiau sutraiškyti.

4 žingsnis: pabandykite

Pabandyk!
Pabandyk!

Dabar, kai vykdote kodą, galite pajusti žiniatinklio sąsają po ranka. Sistemos valdymas yra labai paprastas:

  • Naudodami žiniatinklio sąsają, galite pridėti tiek pardavimo vietų, kiek norite.
  • Ištrinti taip paprasta, kaip spustelėti „Redaguoti“, pasirinkti norimas ištrinti parduotuves ir spustelėti „Ištrinti“.

Aukščiau pateiktas „YouTube“vaizdo įrašas parodo, kaip iš tikrųjų pridėti naują pardavimo vietą prie savo sąrašo. Apibendrinant tai, ką rodo:

  • Pirmiausia laukelyje Pavadinimas įveskite pardavimo vietos pavadinimą
  • Spustelėkite arba palieskite lauką Pavadinimas, kad programa galėtų patikrinti, ar pavadinimo dar nėra. Negalite turėti pavadinimų tuo pačiu pavadinimu
  • Patvirtinus, įjungimo ir išjungimo kodo mygtukai įjungiami.
  • Paspauskite ir palaikykite įjungto nuotolinio valdymo pulto mygtuką ir greitai spustelėkite mygtuką ĮJUNGTI sąsajoje. Laikykite nuotolinio valdymo pulto mygtuką, kol dvejetainis kodas užpildys gretimą lauką.
  • Pakartokite ankstesnį OFF kodo veiksmą.
  • Spustelėkite Gerai ir dabar esate pasiruošę perjungti šį lizdą!

Kaip minėta įžangoje, projektas nėra 100% baigtas mano reikmėms. Didžiausias komponentas, kurį dar turiu užbaigti ir įgyvendinti, yra planavimo galimybė. Aš planuoju leisti vartotojui sudaryti tvarkaraštį, kuris leistų lizdus automatiškai įjungti ir išjungti nustatytu laiku.

5 veiksmas: derinimas ir „RxTx.py“failas

Derinimas ir RxTx.py failas
Derinimas ir RxTx.py failas
Derinimas ir RxTx.py failas
Derinimas ir RxTx.py failas
Derinimas ir RxTx.py failas
Derinimas ir RxTx.py failas
Derinimas ir RxTx.py failas
Derinimas ir RxTx.py failas

Vienintelis žinomas sistemos apribojimas yra tai, kad yra įvairių pardavėjų pardavimo vietų nesuderinamumo tikimybė. Įjungimo ir išjungimo kodo pranešimai yra 25 bitai mano sistemai, o jei sistemos pranešimo ilgis skiriasi, ji iš karto nesuderinama su šiuo projektu. Jei tiksliai vykdėte instrukcijas ir vis tiek kyla problemų, kad tai veiktų, tai būtų geriausias būdas išspręsti problemą.

  • Įsitikinkite, kad „Pi“įdiegtas „matplotlib“. Tai galite padaryti įvesdami į „Pi“terminalą:

    • python3

    • importuoti matplotlib

    • Jei gaunate klaidą, turite įdiegti „matplotlib“.
    • Išeikite iš „Python“apvalkalo naudodami

      išeiti ()

  • Norėdami įdiegti matplotlib, įveskite

    sudo pip3 įdiegti matplotlib

  • į terminalą
  • Atsisiųskite pridėtą test.py failą ir padėkite jį šalia „R“failo „RxTx.py“
  • Atidarykite „Python“terminalą ir pakeiskite katalogą į „Comm“aplanką.
  • Tipas

    python3 test.py

  • Kai sakoma „** Pradėtas įrašymas **“, paspauskite ir palaikykite įjungimo arba išjungimo mygtuką nuotolinio valdymo pulte, kol įrašymas baigsis.
  • Programa įkelia matplotlib figūrą, kuri atrodo panašiai kaip aukščiau. Padidinkite, kol pamatysite pasikartojantį signalą, kaip parodyta aukščiau esančiose nuotraukose.
  • Apskaičiuokite bendrą kiekvieno pranešimo loginį 1 ir loginį 0, kai pranešimas yra viena aukščiau matomo pasikartojančio signalo iteracija. Jei iš viso yra 25, greičiausiai RxTx.py failas nėra kaltas. Jei susiduriate su kažkuo kitu nei 25, būtinai pakomentuokite žemiau, ir aš pakeisiu RxTx.py failą, kad jis būtų atviresnis (arba nedvejodami išbandykite savo jėgas).

Ką daryti, jei nematau pasikartojančio signalo?

Jei nematote pasikartojančio signalo, vienas iš dviejų dalykų yra neteisingas. Pirmiausia patikrinkite, ar visos jungiamųjų laidų jungtys yra tinkamai prijungtos. Jei viskas atrodo gerai, galite turėti blogą imtuvą. Ar nusipirkote mano siūlomą? Kai nusipirkau pirmąjį imtuvo lustą, jis buvo labai triukšmingas. Toks triukšmingas, kad negalėjau gauti aiškaus signalo. Tada grąžinau tą mikroschemą ir pasiėmiau tą, kurią susiejau, ir ji negalėjo veikti geriau.

6 žingsnis: Mėgaukitės

Jūs žinote, kad galite įjungti/išjungti lizdus iš savo telefono, planšetinio kompiuterio, kompiuterio ar kito žiniatinklio palaikančio įrenginio! Leiskite man žinoti, ką manote komentaruose!

Rekomenduojamas: