Turinys:
- Prekės
- 1 žingsnis: nustatykite „Raspberry Pi“
- 2 žingsnis: Prijunkite aparatūrą
- 3 žingsnis: pridėkite kodą
- 4 žingsnis: pabandykite
- 5 veiksmas: derinimas ir „RxTx.py“failas
- 6 žingsnis: Mėgaukitės
Video: Kaip valdyti lizdus naudojant „Raspberry Pi“: 6 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Š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“
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ą
Š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
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
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:
Pasidaryk pats -- Kaip sukurti robotą vorą, kurį galima valdyti naudojant išmanųjį telefoną naudojant „Arduino Uno“: 6 veiksmai
Pasidaryk pats || Kaip sukurti voratinklio robotą, kurį galima valdyti naudojant išmanųjį telefoną naudojant „Arduino Uno“: Gaminant „Spider“robotą, galima sužinoti tiek daug apie robotiką. Kaip ir robotų kūrimas yra įdomus ir sudėtingas. Šiame vaizdo įraše parodysime, kaip sukurti robotą „Voras“, kurį galime valdyti naudodami savo išmanųjį telefoną (Androi
Kaip valdyti „Bluetooth“(HC-05) naudojant „Arduino“: 5 žingsniai
Kaip valdyti „Bluetooth“(HC-05) su „Arduino“: Sveiki, mano draugai, šioje pamokoje mes išmoksime valdyti nuolatinės srovės variklį išmaniuoju telefonu ar planšetiniu kompiuteriu. Norėdami tai padaryti, naudosime L298N variklio valdiklį ir „Bluetooth“modulį (HC- 05). Taigi pradėkime
Kaip valdyti nuolatinės srovės variklį naudojant L298n ir Arduino: 5 žingsniai
Kaip valdyti nuolatinės srovės variklį naudojant L298n ir Arduino: Sveiki visi. Pristatome save. Mano vardas Dimitris ir aš esu iš Graikijos. Aš labai myliu „Arduino“, nes tai protinga lenta. Pasistengsiu kuo geriau tai apibūdinti, kad tai būtų patogu visiems. Taigi pradėkime
Kaip valdyti įrenginį naudojant „Raspberry Pi“ir relę - PAGRINDAI: 6 žingsniai
Kaip valdyti įrenginį naudojant „Raspberry Pi“ir relę - PAGRINDAI: Tai yra pagrindinė ir paprasta pamoka, kaip valdyti įrenginį naudojant „Raspberry Pi“ir relę, naudinga kuriant daiktų interneto projektus. Ši pamoka skirta pradedantiesiems, ji yra draugiška sekite, net jei neturite jokių žinių apie aviečių naudojimą
Visuino Kaip naudoti mygtuką kaip įvestį valdyti tokius dalykus kaip LED: 6 žingsniai
Visuino Kaip naudoti mygtuką kaip įvestį valdyti tokius dalykus kaip LED: Šioje pamokoje mes sužinosime, kaip įjungti ir išjungti šviesos diodą naudojant paprastą mygtuką ir Visuino. Žiūrėkite demonstracinį vaizdo įrašą