Turinys:
Video: „Smart Power Strip“, pagrįsta „Beaglebone Black“ir „OpenHAB“: 7 žingsniai (su nuotraukomis)
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
!!!!! Žaisti su elektros tinklu (110/220V) yra pavojinga, būkite labai LABAI atsargūs !!!
Yra keletas išmaniųjų maitinimo juostų dizaino, pagrįstų „Raspberry Pi“ir dviem „Arduinos“, kuris parodytas paveikslėlyje „Senas dizainas“.
Šis naujas dizainas skiriasi nuo šių senų dviem būdais:
- Kadangi „Raspberry Pi“gali valdyti „nRF24“naudodamas savo SPI, nėra efektyvu „Arduino“įdėti į tarpą. Taip pat man labiau patinka „Beaglebone Black“plokštė, nes ji yra pigi ir galinga, o ypač turi daugiau periferinių įrenginių (pvz., GPIO, SPI) nei „Raspberry Pi“.
- Senuose dizainuose vienintelis būdas valdyti maitinimo šaltinį yra naudojant žiniatinklio sąsają (ty „OpenHAB“). Tačiau tai padaryti yra labai nepatogu, jei maitinimo blokas yra po ranka. Todėl šioje konstrukcijoje maitinimo blokas turi atskirą jungiklį kiekvienam lizdui, ir žmonės gali įjungti/išjungti kiekvieną lizdą su „OpenHAB“arba be jo (jei naudojate „OpenHAB“, „OpenHAB“būsena bus atnaujinta, kai tik perjungiamas fizinis jungiklis).
1 žingsnis: demonstracija
2 žingsnis: apžvalga
Mano išmanųjį maitinimo bloką sudaro dvi dalys: vartai ir maitinimo blokas (parodyta paveikslėlyje „Mano dizainas“).
Vartų pusėje yra:
- „Beaglebone Black“lenta
- NRF24L01+ modulis
- „OpenHAB + MQTT“(pranešimų magistralė)
Maitinimo bloko pusėje yra:
- Trys standartiniai jungiklių ir išėjimų kombinacijos (su 3 grupių dėžute)
- „Arduino pro“mini lenta
- NRF24L01+ modulis
- Trys relės moduliai
Išsami informacija bus aprašyta toliau.
3 žingsnis: Vartai - aparatinė įranga
Medžiagos:
„Beaglebone Black“lenta
NRF24L01+ modulis
10uF kondensatorius („RadioShack“, „ebay“ir kt.), Siekiant pagerinti priėmimo patikimumą.
Čia parodau ryšį tarp „Beaglebone Black“ir radijo modulio. Aš taip pat parodau savo grandinę, tačiau duonos lenta taip pat atliks darbą.
Norint naudoti „Bealebone Black“SPI ir nRF24 modulį, reikia atlikti du veiksmus.
- Įgalinti SPI „Beaglebone Black“
- Gaukite NRF24L01+ RADIJUS, DIRBANČIUS BEAGLEBONE BLACK
4 žingsnis: Vartai - programinė įranga
Kalbant apie „Beaglebone Black“programinę įrangą, bendra struktūra parodyta 1 paveiksle.
Kadangi jame veikia „Debian“, programinę įrangą labai lengva įdiegti naudojant komandą apt-get.
„OpenHAB“yra pagrįsta „Java“, todėl būtina įdiegti „Java VM“. Išsamesnės informacijos ieškokite „OpenHAB“diegime (jis skirtas „Raspberry Pi“, bet apt-get veikia abiem plokštėms). Jei norite įgalinti „OpenQAB“MQTT, failą „org.openhab.binding.mqtt-x.y.z.jar“reikia įdėti į „OpenHAB“šaltinio aplanko aplanką „addons“. Reikalingi trys konfigūracijos failai (pridedami žemiau), kur „openhab.cfg“, „test.sitemap“ir „test.items“turėtų būti dedami į aplanką „configuractions“, „configurators/sitemaps“ir „configurations/items“, atitinkamai. Tada „OpenHAB“galima paleisti įvedus „./start.sh“.
MQTT autobusui naudoju „Mosquitto“, kuris yra atviro kodo MQTT tarpininkas. „Mosquito“versija apt-get yra gana sena, todėl atsisiunčiu šaltinio kodą, kad galėčiau sudaryti ir įdiegti.
- Gaukite šaltinio kodą iš oficialios svetainės aukščiau.
- Šaltinio kodo aplanke sukurkite naują aplanką pavadinimu „build“.
- Eikite į „build“, įveskite „cmake..“
- Tada grįžkite į viršutinį aplanką, įveskite „make“ir „make install“
Galiausiai, šliuzo programa yra tiltas tarp MQTT magistralės ir nRF24 modulio, o architektūra parodyta 2 paveiksle. Yra dvi eilės, kiekviena viena kryptimi (ty viena, skirta CMD valdymui nuo OpenHAB iki maitinimo lizdo, viena - atvirkštine kryptimi). Iš esmės tai yra paprastas gamintojo/vartotojo logikos įgyvendinimas. Šliuzo šaltinio kodą rasite čia, jame naudojamos kai kurios C ++ 11 funkcijos (norėdami įdiegti naujesnį GCC „Beaglebone Black“, žr. Šį straipsnį) ir daroma prielaida, kad „nRF24 lib“yra įdiegta (žr. Ankstesnį veiksmą).
5 žingsnis: „Power Strip“- aparatinė įranga
Medžiagos:
„Arduino pro“mini lenta.
NRF24L01+ modulis.
10uF kondensatorius („RadioShack“, „ebay“ir kt.), Siekiant pagerinti priėmimo patikimumą.
Trys 10K rezistoriai („RadioShack“, „ebay“ir kt.), Skirti jungikliui.
Trys relės moduliai.
Trys standartiniai jungiklių/išėjimų deriniai ir dėžutė, aš juos nusipirkau iš „Lowe's“.
110–5 VDC modulis, skirtas „Arduino“ir relėms maitinti.
Sumažinkite 5–3 V nuolatinės srovės įtampą, kad įjungtumėte nRF24.
Ryšys parodytas 1 paveiksle.
!!!!! Jei norite naudoti tą patį jungiklio/išleidimo junginį kaip ir aš, būtinai nukirpkite „pertrauką“(žr. 2 paveikslą) !!!!! Tai labai svarbu, nes priešingu atveju galite sunaikinti visą grandinę !!!
3 paveikslėlyje parodyta baigta maitinimo juosta, kaip matote, dėžutėje yra gana netvarka (nes nerandu pakankamai didelės lentynos maitinimo juostos su atskiru jungikliu), bet ji veikia ^_ ^!
6 žingsnis: „Power Strip“- programinė įranga
„Arduino“naudoju tą pačią „nRF24“biblioteką, kaip ir „Beaglebone Black“(čia „librf24-bbb“aplankas skirtas „Beaglebone Black“, o tas, kuris yra šakniniame aplanke, skirtas „Arduino“), tačiau taip pat galite naudoti tvirtesnę/galingesnę „Arduion“versiją čia.
Čia pridedamas mano maitinimo šaltinio pusės šaltinio kodas, naudokite „Arduino IDE“(arba bet kokias kitas alternatyvas) ir tinkamą programuotoją, kad įdiegtumėte jį „Arduino pro mini“.
7 žingsnis: Išvada
Mėgautis!!!