Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Kun tämä anturiasemaverkko on konfiguroitu isäntä/orja -tilaan, voit tehdä valaistuksen ja turvaohjauksen kotonasi. Nämä anturiasemat (tässä projektissa Node01, Node02) on kytketty isäntäasemaan (Node00), joka on liitetty paikalliseen wifi -verkkoon. Olen asentanut Node01: n varastohuoneeseeni ja Node02: n autotalliini ohjaamaan valoja ja liikkeitä. Pääasema on asennettu ruokailuhuoneeseemme, joka on yhdistetty wifi -reitittimeemme. Olen asentanut kellon autotalliin ja pienen summerin isäntäasemalle, jotta se soi, kun jokin verkon anturiasema havaitsee liikkeen.
Verkoston pääominaisuudet ovat:
- On mahdollista määrittää verkko, jossa on enemmän kuin kaksi anturiasemaa (orja -asemat) (Node01, Node02, Node03,…)
- Koska langattomia lähetinvastaanottimia käytetään antennilla, verkko pystyy kattamaan laajan alueen
- Voit hallita koko verkkoa matkapuhelimella
- Lähetä sähköposti (Gmail -tili), kun havaitaan liike ja hälytystila on käytössä. Joten jos otat Gmailin push -ilmoitukset käyttöön matkapuhelimessasi, tiedät, milloin verkko havaitsee liikkeen
domoottisiin tarkoituksiin:
- Kytke valot päälle, kun havaitaan liike / kytke valot aina päälle (koko verkkoon tai jokaiseen orja -asemaan)
- Muuta aikaa minuutteina, jolloin valot syttyvät sen jälkeen, kun kullekin orja -asemalle on havaittu liike
turvallisuussyistä:
- Ota hälytystila käyttöön ja poista se käytöstä
- Jokainen orja -asema voi lähettää signaalin isäntäasemalle (Node00), kun hälytystila on käytössä ja liike havaitaan
- Isäntäasema voi aktivoida kellon ja lähettää sähköpostiviestin, kun jokin näistä signaaleista vastaanotetaan miltä tahansa orja -asemalta ja hälytystila on käytössä. Pääasema (Node00) on yhdistetty internetiin wifi -yhteydellä koko järjestelmän ohjaamiseksi matkapuhelimella. Se on määritetty kuten WifiWebServer
Vaihe 1: Materiaaliluettelo
Luettelo materiaaleista, joita olen käyttänyt Node01: n ja Node02: n (orja -asemat) rakentamiseen, on seuraava:
- Mega 2560 R3 -levy
- Muovinen tuki MEGA 2560 R3: lle
- HC-SR501 PIR-anturi
- Muovinen tuki HC-SR501: lle
- 5V rele
- Langaton lähetinvastaanotinmoduuli 2.4G 1100m NRF24L01+PA+LNA antennilla LKY67
- 8 -nastainen NRF24L01 -sovitin (NRF24L01: n ominaisuuksien parantamiseksi)
- HLK-PM01 AC DC 220V-5V Mini virtalähde
Luettelo Node00: n (master -asemien) rakentamiseen on seuraava:
- Mega 2560 R3 -levy
- Muovinen tuki MEGA 2560 R3: lle
- WiFi -moduuli NodeMCU Lua Amica V2 ESP8266
- Langaton lähetinvastaanotinmoduuli 2.4G 1100m NRF24L01+PA+LNA antennilla LKY67
- 5V-3.3v VCC-sovitinkortti NRF24L01: lle (NRF24L01: n ominaisuuksien parantamiseksi)
- Sovitin AC-DC, 9V, 1A (2, 1 mm x 5, 5 mm)
Lisäksi olen käyttänyt seuraavaa materiaalia:
- 2 -nastaiset 5 mm PCB -liittimet
- Hyppyjohdot
- Leipälauta MB-102 (800 yhteystietoa)
- Mini Solderless Breadboard 170 kosketinta
- Johtosarjojen ja resistenssien sarja
- PCB -levyt
- Tina juotosraudasarja
- Liimapistooli
- Läpinäkyvä metakrylaatti
- Bell
Vaihe 2: Node01: n ja Node02: n yhdistäminen ja ohjelmointi (orja -asemat)
Luonnoksen "SlaveSation.ino" ohjelmoimiseksi tarvitsin RF24 -kirjaston ja RF24 -verkkokirjaston.
Yllä olevassa vuokaaviossa näet anturiaseman logiikan ja orja -anturiaseman ja isäntäyksikön välillä vaihdetut viestit.
Ennen kuin lataat luonnoksen, sinun on määritettävä orjasolmun osoite oktaalimuodossa
const uint16_t this_node = 01; // Solmumme osoite oktaalimuodossa (orja): 01, 02, 03…
LEDien merkitys kussakin orja -asemassa on seuraava:
- Sininen led. Se palaa, kun PIR -anturin nasta on korkea.
- Vihreä led. Se syttyy, kun hälytys on kytketty.
Vaihe 3: Node00: n (Master Station) yhdistäminen ja ohjelmointi
Node00 -asemalta löytyy kaksi erilaista taulua:
- MEGA 2560 R3 -levy. Tätä laitetta käytetään vastaanottamaan viestejä orja -asemalta, kun liike havaitaan langattoman tiedonsiirron avulla. Se aktivoi kellon, kun havaitaan liike ja hälytys kytketään. Voit lopettaa kellon vain katkaisemalla hälytystilan. Lisäksi se lähettää orja -asemille viestejä NodeMCU: sta liiketunnistuksen ottamiseksi käyttöön tai poistamiseksi käytöstä, valojen sytyttämiseksi aina, valojen sammuttamiseksi aina…
- NodeMCU Lua Amica V2 ESP8266 -levy. Se toimii Wifi -verkkopalvelimen tapaan lähettää ja vastaanottaa komentoja etäpaikasta matkapuhelimen verkkosivun avulla. Lisäksi lähettää sähköpostiviestejä, kun havaitaan liike ja hälytystila on käytössä.
Molemmat laitteet on ohjelmoitu kommunikoimaan keskenään Master (NodeMCU)/Slave (MEGA) -konfiguraatiossa I2C -synkronisen sarjaprotokollan kautta Wire Libraryn avulla. I2C -protokolla sisältää kahden linjan käyttämisen tietojen lähettämiseen ja vastaanottamiseen: sarjakellotapin (SCL) ja sarjatietonapin (SDA), joiden kautta tietoja lähetetään kahden laitteen välillä.
Kuten piirustuksesta näkyy, kaksi M2A 2560 R3 -kortin I2C -tiedonsiirtonastat ovat:
- SDA -> nasta 20 SDA
- SCL -> nasta 21 SCL
ja muut NodemMCU: ssa olevat ovat:
- SDA -> digitaalinen nasta 1
- SCL -> digitaalinen nasta 2
Ennen kuin lataat luonnoksen ESP8266: lle, sinun on asennettava ESP8266 -kortti. Tätä varten sinun on kirjoitettava "https://arduino.esp8266.com/stable/package_esp8266com_index.json" Arduino IDE: n asetusikkunan "Hallituksen ylimääräiset URL -osoitteet" -kohtaan. Tämän jälkeen sinun on avattava levynhallinta ja asennettava "esp8266"
Käytän ulkoista virtalähdesovitinta (9V, 1A) MEGA 2560 R3 -kortille (DC -virtaliitin, 2, 1 mm x 5, 5 mm) ja liitän NodeMCU -kortin MEGA -kortin 3V3 -nastaiseen.
Vaihe 4: WifiWebServer (NodeMCU Master Stationissa)
NodeMCU -laitteeseen (Node00 tai master -asema) ladattu luonnos on määritetty kuten kotipalveluverkkoon yhdistetty Web -palvelin. On mahdollista käyttää etäyhteyttä, jos määrität reitittimen portinsiirron.
Ennen kuin lataat WifiWebServerV3.ino -luonnoksen NodeMCU: hon, sinun on tehtävä seuraava:
- Päivitä portti, jonka aiot määrittää reitittimellesi (portin edelleenlähetys), jotta voit käyttää etäyhteyttä NodeMCU: hon
- Päivitä käyttäjä ja salasana päästäksesi kotisi wifi -verkkoon
- Päivitä Gmail-tilisi käyttäjätunnus ja salasana lähettääksesi sähköpostiviestejä, kun havaitaan liike ja hälytys on kytketty
- Päivitä sähköpostiosoite, josta saat sähköpostit
Jos haluat päivittää käyttäjän, salasanan ja portin, jota palvelin kuuntelee, sinun on etsittävä seuraava koodi WifiWebServerV3.ino -luonnoksesta ja päivitettävä se:
const char*ssid = "*** sinun ssid ***";
const char*password = "*** salasanasi ***"; WiFi -palvelinpalvelin (80);
Päivittääksesi sähköpostiosoitteesi, johon saat sähköpostiviestejä, sinun on etsittävä seuraava koodi ja päivitettävä se:
const char*to_email = "*** sähköpostiosoite, josta saat viestin ***";
Jos haluat päivittää Gmail-tilisi käyttäjän ja salasanan vastaanottamaan sähköpostiviestejä, sinun on etsittävä seuraava koodi tiedostosta "Gsender.h" ja päivitettävä se:
const char*EMAILBASE64_LOGIN = "*** sähköpostiosoitteesi koodaus BASE64 ***";
const char*EMAILBASE64_PASSWORD = "*** salasanan koodaus BASE64 ***"; const char*FROM = "*** sähköpostiosoitteesi ***";
Tietojen koodaamiseen tai purkamiseen BASE64: ssä olen käyttänyt sivustoa www.base64encode.org
Jos tarvitset lisätietoja sähköpostiviestien lähettämisestä ja vastaanottamisesta ESP8266: n kanssa, tästä on "ohjeet" tästä
Kun voit tehdä sen, voit testata reitittimen yhteyden. Jos laite on yhdistetty, sinun on varattava sille määritetty IP -osoite. Lisäksi on hyvä keskustella Internet -palveluntarjoajan kanssa staattisen IP -osoitteen asettamiseksi reitittimeesi.
Pääset wifi -reitittimen lähellä olevalle verkkosivulle kirjoittamalla vain reitittimesi osoittaman paikallisen IP -osoitteen käyttämäsi portin jälkeen verkkonavigaattorissa. Esimerkiksi: 192.168.40.15:800. Jos yrität käyttää etäyhteyttä, sinun on kirjoitettava reitittimesi IP -osoite käyttämäsi portin mukaisesti kuten yllä.
Web -sivu, jonka näytän sinulle kuvissa, on ohjelmoitu ohjaamaan verkkoa, jossa on kaksi orja -asemaa.
Järjestelmä on alun perin määritetty ohjaamaan enintään 5 orja -asemaa, mutta voit muokata sitä. Etsi vain seuraava koodi WifiWebServerV3.ino- ja SlaveStation.ino -sivustoista
#define number_max_slaves 5
Verkkosivu on alun perin jaettu neljään osaan:
- Osio "Tila", josta näet, onko hälytys kytketty vai ei
- Osa "Hälytyslaskuri", jossa näkyy liiketunnistuksen lukumäärä kussakin orja -asemassa
- Osa "Hälytys", johon voit kytkeä tai irrottaa (KYTKE HÄLYTYS/POISTA HÄLYTYS) hälytyksen ja nollata hälytyslaskurin (NOLLAA LASKURIT)
-
Osio "Valaistus", jossa voit ohjata kunkin orja -aseman valoja. Voit hallita seuraavia:
- Sytytä valot kaikissa orja -asemissa / kytke valot päälle vain, kun kaikilla orja -asemilla havaitaan liike (VERKKO AINA PÄÄLLÄ / VERKKO, KUN LIIKUU)
- Muuta valojen syttymisaikaa minuutteina jokaisella orja -asemalla (NODExx ON 1 MINUTE/NODEXX ON 2 MINUTE)
- Kytke kunkin orja -aseman valot päälle (NODExx AINA PÄÄLLÄ)
- Kytke kunkin orja -aseman valot päälle vain, kun havaitaan liike (NODExx_MOV)
Sinun ei tarvitse muuttaa mitään, koska se toimii riippumatta määritetyistä orja -asemien nimistä. Lisäksi se tunnistaa automaattisesti verkkoon kytkettyjen orja -asemien määrän.
Voit tietysti ladata luonnoksen ja muokata helposti koodia, joka tarvitaan oman web -ohjaussivun näyttämiseen.
Vaihe 5: Alusta alkaen…
Tässä on vaiheet, jotka sinun on noudatettava verkon rakentamisessa:
- Osta kaikki materiaalit luettelon, jonka annan sinulle vaiheessa 1, mukaisesti
- Liitä komponentit piirroksen mukaisesti, jonka voit ladata vaiheista 2 ja 3.
- Rakenna laatikot kullekin orja -asemalle ja isäntäasemalle. Olen rakentanut metakrylaattirasioita.
-
Määritä jokainen orja -asema:
Lataa ja lataa luonnos "SlaveStation.ino" yhdeksi MEGA 2560 R3 -kortiksi. Sinun tarvitsee vain muokata luonnosta ja päivittää orja -aseman osoite, kuten näet vaiheessa 2
-
Määritä pääasema:
- Lataa ja lataa luonnos "SlaveStation.ino" yhdeksi MEGA 2560 R3: ksi. Sinun ei tarvitse muuttaa mitään riippumatta verkon orjasolmujen määrästä. Luonnos on aluksi konfiguroitu enintään 5 orja -asemalle.
- Lataa ja lataa luonnos "WifiServerV3.ino" NodeMCU: hon. Sinun on päivitettävä luonnos vaiheen 4 ohjeiden mukaisesti
- Määritä reitittimesi käyttämään etäyhteyttä NodeMCU: hon (portin edelleenlähetys, staattinen IP…)