Inhoudsopgave:

IoT-netcontroller. Deel 9: IoT, domotica: 10 stappen (met afbeeldingen)
IoT-netcontroller. Deel 9: IoT, domotica: 10 stappen (met afbeeldingen)

Video: IoT-netcontroller. Deel 9: IoT, domotica: 10 stappen (met afbeeldingen)

Video: IoT-netcontroller. Deel 9: IoT, domotica: 10 stappen (met afbeeldingen)
Video: ESP32 Tutorial 15 - DC Motor Speed Control with ESP32 L293D | SunFounder's ESP32 IoT Learnig kit 2024, Juli-
Anonim
IoT-netvoedingscontroller. Deel 9: IoT, Domotica
IoT-netvoedingscontroller. Deel 9: IoT, Domotica

Vrijwaring

LEES DIT EERST

Deze Instructable beschrijft een project dat gebruikmaakt van netstroom (in dit geval UK 240VAC RMS), terwijl er alle zorg is besteed aan het gebruik van veilige praktijken en goede ontwerpprincipes, er is altijd een risico op mogelijk dodelijke elektrische schokken bij het werken met deze voedingsspanningen en voor waarvoor de auteur geen enkele aansprakelijkheid kan aanvaarden indien bij het volgen van de inhoud persoonlijk letsel of materiële schade ontstaat. U maakt dit project dus op eigen risico.

Preambule

Dit artikel, het 9e in een serie over domotica, documenteert hoe u een Sonoff 10A IoT-netvoedingscontroller kunt maken en integreren in een bestaand domoticasysteem, inclusief alle benodigde softwarefunctionaliteit om de succesvolle implementatie in een huishoudelijke omgeving mogelijk te maken.

Invoering

Zoals hierboven vermeld, beschrijft deze Instructable hoe u een IoT-netvoedingscontroller kunt maken en integreren met behulp van de Sonoff 10A van iTead. Het apparaat zelf wordt geciteerd als zijnde geschikt voor 10 ampère bij 90 ~ 250 VAC, maar deze implementatie verlaagt het tot dat van 5 ampère via de gezekerde stekker die de binnenlandse Britse hoofdvoeding van 240 VAC RMS levert.

De ontwerpmethodologie integreert naadloos in het op MQTT/OpenHAB gebaseerde IoT-netwerk dat wordt beschreven in deze serie over domotica die voortbouwt op hergebruikte code die hier vandaan komt. Het kan ook het verlies van elk IoT-netwerkelement aan en kan volledig zelfstandig worden gebruikt. In de stand-alone modus wordt de bediening van het apparaat bereikt door simpelweg op de bedieningsknop aan de bovenkant van de behuizing te drukken, waarmee de doorgaande voedingsuitgang wordt geschakeld.

Om deze lokale besturing van het Sonoff-apparaat mogelijk te maken, wordt GPIO14 uit de behuizing gehaald en als trigger-ingang gebruikt. Om de veiligheid te garanderen, wordt deze ingang gevoed via een opto-coupler-circuit en ondergebracht in een plastic behuizing, zodat de operator op geen enkel moment wordt blootgesteld aan netspanningen.

Ten slotte beschrijft het proza ook hoe het ESP8266-apparaat in de Sonoff 10A opnieuw moet worden geprogrammeerd met behulp van de Arduino IDE en geeft het volledige circuitdetails van een apparaat dat kan worden gebruikt om op betrouwbare wijze doelcode te programmeren.

Welke onderdelen heb ik nodig?

Sonoff-netvoedingscontroller

  1. 1 van Sonoff 10A hier
  2. 1 uit 7805L 5v spanningsregelaar hier
  3. 1 uit 240/6VAC 1.5VA Transformator hier
  4. 2 off 0.1 keramische condensatoren hier
  5. 1 off 1000uF @25v Elektrolytische condensator hier
  6. 1 uit Bruggelijkrichter 2W01 hier
  7. 2 off 4K7 weerstanden hier
  8. 1 off 330R weerstand hier
  9. 1 uit SPST-knop hier
  10. 1 uit Mulitcomp BM12W ABS Behuizing hier
  11. 1 uit TIL111 opto-coupler hier
  12. 1 uit 3-weg aansluitblok hier
  13. 1 off 2-weg gecodeerde molex connector hier/hier
  14. 1 off 3-weg gecodeerde molex connector hier/hier
  15. 1 off 5-weg gecodeerde molex connector hier/hier
  16. 1 van 5-Way molex pinnen hier
  17. 1 korting Winbond SPI Flash (W25Q32FVSIG) hier
  18. 1x 20mm zekeringhouder + kapje hier
  19. 1 off 20mm fast blow 500mA zekering hier
  20. 2 uit Polyamide kabelwartels hier
  21. 1 off UK Netstekker (BS1363/A) hier
  22. 1 off UK Main socket (BS1363/A) hier
  23. 7 stuks M3 16 mm CS nylon schroeven, (incl. 10 moeren) hier/hier
  24. 2 off Zip-banden hier
  25. 1 off veroboard (0,1" pitch) hier
  26. 1 uit Diverse lengtes 22swg vertind koperdraad hier
  27. 1 off 3M White UK-netsnoer hier
  28. 10 korting op Molex socket crimps hier

Sonoff-programmeur

  1. 1 uit LD33CV 3v3 spanningsregelaar hier
  2. 1 off TO-220 koellichaam hier
  3. 1 off Heatsink-pasta hier
  4. 1 off 10uF @16v Elektrolytische condensator hier
  5. 1 off 0.1 keramische condensator hier
  6. 1 uit SPDT-knop hier
  7. 1 off 4K7 weerstand hier
  8. 1 off 2-weg gecodeerde molex connector hier/hier
  9. 1 off 3-weg gecodeerde molex connector hier/hier
  10. 5 off Molex socket crimps hier
  11. 1 off 6-Way molex socket hier
  12. 1 uit SPST-knop hier
  13. 1 off 2.1mm PSU-aansluiting hier
  14. 1 off veroboard (0,1" pitch) hier
  15. 1 off USB naar seriële adapter (FTDI) hier

Welke software heb ik nodig?

  1. Arduino IDE 1.6.9 hier
  2. Arduino IDE geconfigureerd om de ESP8266 te programmeren. Kijk hier; De Arduino IDE instellen om de ESP8266-01 te programmeren

Welke hulpmiddelen heb ik nodig?

  1. Soldeerbout,
  2. Boor & diverse bits (inclusief getrapte gatensnijder voor kabelwartels en bedieningsknop),
  3. Schroevendraaiers (diversen),
  4. Verstelbare sleutels (twee stuks, bekbreedte >25 mm, voor kabelwartels),
  5. Bestanden (diversen),
  6. stevige bankschroef,
  7. Hitte geweer,
  8. DMM (bij voorkeur CAT IV).

Welke vaardigheden heb ik nodig?

  1. Een goed begrip van elektronica en elektrische veiligheid / ontwerp / bedrading enz.,
  2. Kennis van Arduino en zijn IDE,
  3. Goede fabricagevaardigheden (solderen, vijlen, boren enz.),
  4. wat geduld,
  5. Enig begrip van uw thuisnetwerk.

Behandelde onderwerpen

  • Invoering
  • Circuitoverzicht
  • Sonoff RetroMods
  • Constructie- en montagedetails
  • Sonoff programmeeradapter
  • Overzicht softwaresysteem
  • Software-overzicht
  • OpenHAB-configuratie
  • Uw IoT-apparaat testen
  • Conclusie
  • Gebruikte referenties

Serielinks

Naar deel 8: WiFi IoT-temperatuur- en vochtigheidssensor. Deel: 8 IoT, Domotica

Naar deel 10: IR-afstandsbediening via IoT. Deel 10 IoT, Domotica

Stap 1: Circuitoverzicht

Circuitoverzicht
Circuitoverzicht
Circuitoverzicht
Circuitoverzicht
Circuitoverzicht
Circuitoverzicht
Circuitoverzicht
Circuitoverzicht

Overzicht

Zoals in de inleiding hierboven vermeld, was om de netcontroller lokaal aan en uit te kunnen schakelen een ingang naar de on-board ESP8266 van de Sonoff nodig. Het introduceren van een dergelijke externe ingang vereist dat de Sonoff ABS-behuizing wordt doorbroken en creëert daarom een potentieel schokgevaar. Om dit te verhelpen heb ik optische isolatie gebruikt, zodat er geen mogelijkheid is van blootstelling aan netstroom buiten de behuizing van het netcontrolesysteem.

Wat volgt is een beschrijving van het opto-isolatiecircuit (in foto 1 hierboven).

Circuitdetails

De opto-isolatieschakeling krijgt zijn voeding rechtstreeks van het net dat op het toestel is aangesloten. De 240VAC RMS wordt toegepast op stepdown/isolatietransformator TR1 via J1 een pheonix-contact MKDSN2, 5/3-5.08 polyamide 3-weg terminal nominaal 16A bij 400V geschikt voor een kabel van 2,5 mm (sq) CSA en F1 a 500 mA 20 mm snelle zekering. De 6VAC die beschikbaar is op de secundaire wikkelingen van TR1 wordt met de volledige golf gelijkgericht door diodebrug B1.

Deze gelijkgerichte uitgang met volledige golf wordt vervolgens gestabiliseerd en geregeld door C1, C2 C3, R3 en IC1 een shuntregelaar uit de 7805L-serie, wat een goede, schone 5v-voedingsrail oplevert.

De 5v-rail wordt vervolgens gebruikt om de invoer naar OK1 een TIL111 opto-isolator te regelen via een extern gemonteerde witte SPST-knop die is aangesloten op J3. De uitgang van de TIL111 is gekoppeld aan de Sonoff GPIO14 ingang via R2 een 4K7 pull-up weerstand. Zo wordt een isolatie van meer dan 340V bereikt (dwz piekspanning = (240VAC*sqroot(2))).

Stap 2: Sonoff RetroMods

Sonoff RetroMods
Sonoff RetroMods
Sonoff RetroMods
Sonoff RetroMods
Sonoff RetroMods
Sonoff RetroMods

Om het Sonoff 10A-apparaat te integreren, is het noodzakelijk om achteraf enkele wijzigingen aan te brengen.

De eerste is om een 5-weg 0.1 pitch molex-connector toe te voegen, zoals weergegeven in foto 1 hierboven. Dit geeft toegang tot GPIO14 op de Sonoff zodra de beschermkap is vervangen zoals in foto's 2 en 3 hierboven.

Hoewel hierboven niet weergegeven, heb ik ook de seriële TX/RX-lijnen naar voren gebracht om in-situ programmering mogelijk te maken (zie kabelboom SK1..3 in stap 1 hierboven).

De tweede wijziging is om de grootte van het SPI Flash-apparaat te vergroten van de standaard 1 MByte naar 4 MBytes, dit is om voldoende ruimte te bieden voor de IoT-webserverbestanden die in SPIFFS kunnen worden bewaard.

Ik heb hier het SMD SPI-flashapparaat (W25Q32FVSIG) van Ebay gekocht

Om de flitser te vervangen heb ik tijdelijk de Sonoff LED verwijderd zoals op foto 4 om een betere toegang tot het SMD-apparaat te geven. Om de flitser te desolderen, heb ik een warmtepistool gebruikt, zoals weergegeven in foto 5 hierboven. Daarna zowel de 4MByte Flash als de LED opnieuw gesoldeerd (foto 6).

Stap 3: Constructie- en montagedetails

Constructie- en montagedetails
Constructie- en montagedetails
Constructie- en montagedetails
Constructie- en montagedetails
Constructie- en montagedetails
Constructie- en montagedetails
Constructie- en montagedetails
Constructie- en montagedetails

Ik heb de lichtnetcontroller ingesloten in een Mulitcomp BM12W ABS Box (foto 1 hierboven). Deze behuizing heeft geïsoleerde messing M3-inzetstukken waardoor meerdere toegang tot de unit mogelijk is zonder de bevestigingsschroefdraad in gevaar te brengen, zodat de interne zekering indien nodig kan worden vervangen of interne inspectie in de loop van de tijd kan worden uitgevoerd (hetzelfde kan niet gezegd worden voor het Sonoff-apparaat, dat is in feite een eenmalige close met behulp van zelftappers).

Primaire trekontlasting voor de netvoedingskabel werd bereikt via een M16 Nylon/Polyamide 6/6 witte kabelwartel die een kabel OD Min/Max 5mm/10mm ondersteunt.

Secundaire trekontlasting was via een enkele kabelbinder die op de kabel werd geplaatst. Mocht er overmatige spanning worden uitgeoefend en de kabelwartel faalt, dan houdt de kabelbinder de kabel op zijn plaats.

Om de kabelwartels te monteren en voldoende ruimte te bieden om de Sonoff en opto-isolatie-elektronica te monteren, heb ik de interne PCB-montageribben gestript zoals hierboven weergegeven (foto 2).

Alle elektronica was stevig gemonteerd via M3 nylon CS-schroeven om ervoor te zorgen dat de isolatie met de buitenkant van de behuizing werd gehandhaafd. De opto-isolatie-elektronica is gemonteerd met 5 bevestigingspunten om te zorgen voor een goede mechanische sterkte als de unit valt, waardoor wordt voorkomen dat de massa van de isolatietransformator het veroboard-circuit verbreekt.

De voeding naar de unit werd bereikt via de UK Standard kleurgecodeerde witte 3-aderige PVC-geïsoleerde meeraderige kabel (32/0,2 mm sq) 1 mm (sq) CSA. met een buitendiameter van 7,2 mm die 10A kan dragen.

De unit was aangesloten op het Britse lichtnet (240VAC RMS) via een standaard 3-pins veiligheidsstekker (BS 1363/A) goedgekeurd. De stekker was gezekerd op 5A.

Alle netvoedingskabels op het opto-isolatiecircuit waren aangesloten via pheonix-contact MKDSN2, 5/3-5.08 polyamide-aansluitingen met een nominaal vermogen van 16 A bij 400 V en kunnen een kabel van 2,5 mm (sq) CSA dragen, waardoor er voldoende capaciteit is voor twee kabels in elke positie.

Er zijn geen netsnoeren vertind, alleen gedraaid om te voorkomen dat de aders uit elkaar gaan staan voordat ze in het connectorblok worden gestoken. Het vertinnen van netsnoeren is een gevaarlijke praktijk omdat het soldeer na verloop van tijd 'ontspant', waardoor de kabel uiteindelijk losraakt in het aansluitblok.

Opmerking:

  • OD = Buitendiameter.
  • VAC = Volt wisselstroom
  • RMS = Root Mean Square
  • CSA = dwarsdoorsnede
  • CS = verzonken

Stap 4: Sonoff programmeeradapter

Sonoff programmeeradapter
Sonoff programmeeradapter
Sonoff programmeeradapter
Sonoff programmeeradapter
Sonoff programmeeradapter
Sonoff programmeeradapter
Sonoff programmeeradapter
Sonoff programmeeradapter

Er zijn twee aspecten waarmee rekening moet worden gehouden bij het herprogrammeren van de Sonoff 10A via de Arduino IDE;

  1. Uw Arduino IDE configureren om de ESP8266 te programmeren,
  2. De handeling van het programmeren van de hardware zelf.

Uw Arduino IDE configureren om de ESP8266. te programmeren

Om uw Ardino IDE te configureren, volgt u de instructies hier De Arduino IDE instellen om de ESP8266-01 te programmeren

De hardware programmeren

Dit is een proces in meerdere stappen, zoals in alle gevallen bij de ESP8266. Hier wordt de Sonoff-voeding op het bord toegepast via een externe gestabiliseerde 3v3 DC-voeding en NIET via de netvoeding. Er is een USB-naar-serieel apparaat nodig om gegevens van en naar de Sonoff te verzenden en te ontvangen. Verbind TX en RX zoals getoond in Pic 2 & 4.

Programmeerstappen (algemeen)

  1. Zorg er eerst voor dat er geen externe netspanning op de Sonoff staat,
  2. Houd de knop op het Sonoff-apparaat ingedrukt. (foto 1 hierboven, gemarkeerde knop voor opnieuw flitsen),
  3. Breng externe DC 3v3-voeding aan op pin 1. (foto 2 hierboven),
  4. Laat de Sonoff-knop los,
  5. Het apparaat kan nu op de gebruikelijke manier opnieuw worden geprogrammeerd via de Arduino IDE.

Om het een beetje gemakkelijker te maken, heb ik het bovenstaande programmeerapparaat gemaakt (foto's 3 en 4) dat via de kabelboom SK1…3 op de Sonoff is aangesloten (zoals beschreven in deze Instructable Stap 1.). Dit zorgde voor een eenvoudigere programmering van de ESP8266. Het bood ook een manier om GPIO14 als invoer te testen door het gebruik van R1 een 4K7 pull-up weerstand en knop S1.

Met behulp van het bovenstaande programmeerapparaat (Afbeeldingen 3 & 4) De programmeerstappen zijn:

  1. Houd de re-flash-knop op de Sonoff ingedrukt,
  2. Pulseer de 3v3-voeding door kort op S2 te drukken
  3. Laat de knop voor opnieuw flitsen los,
  4. Het apparaat kan nu worden geprogrammeerd.

OPMERKING - WAARSCHUWING:

Tijdens de herprogrammering van Sonoff mag er in GEEN geval stroom worden geleverd via het lichtnet

Stap 5: Softwaresysteemoverzicht

Overzicht softwaresysteem
Overzicht softwaresysteem
Overzicht softwaresysteem
Overzicht softwaresysteem

Dit IoT Mains Controller-apparaat bevat voor het grootste deel dezelfde zes belangrijke softwarecomponenten als in Instructable WiFi IoT-temperatuur- en vochtigheidssensor. Deel: 8 IoT, Domotica en getoond in foto 1 hierboven, met wat aanpassingen.

SPIFFS

Dit is het (opgewaardeerd tot 4 MBytes) ingebouwde SPI Flash Filing System en wordt gebruikt om de volgende informatie te bewaren (zie foto 2 hierboven);

  • Pictogrammen en 'Mains Controller Configuration Home Page' html: Wordt bediend door het IoT-apparaat wanneer het geen verbinding kan maken met uw IoT WiFi-netwerk (meestal vanwege onjuiste beveiligingsinformatie) en biedt de gebruiker een manier om de lichtnetcontroller op afstand te configureren zonder de noodzaak om nieuwe SPIFFS-inhoud opnieuw te programmeren of te uploaden.
  • Beveiligingsinformatie: dit bevat de informatie die bij het opstarten door het IoT-apparaat wordt gebruikt om verbinding te maken met uw IoT WiFi-netwerk en MQTT Broker. Informatie die wordt verzonden via de 'Startpagina voor configuratie van de hoofdcontroller' wordt naar dit bestand geschreven ('secvals.txt').

Opmerking: om het apparaat in eerste instantie in te stellen, zie hier voor volledige details over het gebruik van SPIFFS met de Arduino IDE.

mDNS-server

Deze functionaliteit wordt aangeroepen wanneer het IoT-apparaat geen verbinding kan maken met uw WiFi-netwerk als WiFi-station en in plaats daarvan een WiFi-toegangspunt is geworden, vergelijkbaar met een binnenlandse WiFi-router. In het geval van een dergelijke router zou u er normaal gesproken verbinding mee maken door het IP-adres van iets als 192.168.1.1 (meestal afgedrukt op een label op de doos) rechtstreeks in de URL-balk van uw browser in te voeren, waarna u een inlogpagina zou ontvangen om in te voeren de gebruikersnaam en het wachtwoord waarmee u het apparaat kunt configureren. Voor de ESP8266 in AP-modus (Access Point-modus) gebruikt het apparaat standaard het IP-adres 192.168.4.1, maar als de mDNS-server actief is, hoeft u alleen de mensvriendelijke naam 'MAINSCON.local' in de browser-URL-balk in te voeren om de 'Startpagina voor configuratie van de hoofdcontroller'.

MQTT-client

De MQTT-client biedt alle benodigde functionaliteit om; maak verbinding met uw IoT-netwerk MQTT-broker, abonneer u op de onderwerpen van uw keuze en publiceer payloads naar een bepaald onderwerp. Kortom, het voorziet in IoT-kernfunctionaliteit.

HTTP-webserver

Zoals hierboven vermeld, als het IoT-apparaat geen verbinding kan maken met het WiFi-netwerk waarvan de SSID, P/W enz. is gedefinieerd in het beveiligingsinformatiebestand in SPIFFS, wordt het apparaat een toegangspunt. Eenmaal verbonden met het wifi-netwerk dat door het toegangspunt wordt geleverd, kunt u door de aanwezigheid van een HTTP-webserver rechtstreeks verbinding maken met het apparaat en de configuratie wijzigen via het gebruik van een HTTP-webbrowser. Home Page' webpagina die ook in SPIFFS wordt gehouden.

WiFi-station

Deze functionaliteit geeft het IoT-apparaat de mogelijkheid om verbinding te maken met een huishoudelijk WiFi-netwerk met behulp van de parameters in het beveiligingsinformatiebestand, zonder dit kan uw IoT-apparaat zich niet abonneren op/publiceren op de MQTT-makelaar

WiFi-toegangspunt

De mogelijkheid om een WiFi-toegangspunt te worden, is een middel waarmee u met het IoT-apparaat verbinding kunt maken en configuratiewijzigingen kunt doorvoeren via een WiFi-station en een browser (zoals Safari op de Apple iPad). Dit toegangspunt zendt een SSID = "MAINSCON" + de laatste 6 cijfers van het MAC-adres van het IoT-apparaat uit. Het wachtwoord voor dit gesloten netwerk heeft de fantasierijke naam 'PASSWORD'.

Stap 6: Software-overzicht

Software-overzicht
Software-overzicht
Software-overzicht
Software-overzicht
Software-overzicht
Software-overzicht
Software-overzicht
Software-overzicht

Preamble Om deze broncode succesvol te compileren heb je de volgende extra bibliotheken nodig;

PubSubClient.h

  • Door: Nick O'Leary
  • Doel: stelt het apparaat in staat om MQTT-onderwerpen te publiceren of zich erop te abonneren bij een bepaalde makelaar
  • Van:

Bounce2.h

  • Door: Thomas O Fredericks
  • Doel: Ingangsschakelaar de-bounce in software
  • Van:

Codeoverzicht

De software maakt gebruik van de state-machine zoals getoond in foto 1 hierboven (volledige kopie van de bron hieronder). Er zijn 5 hoofdstaten als volgt;

  • IN HET

    Deze initialisatiestatus is de eerste status die wordt ingevoerd na het opstarten

  • NOCONFIG

    Deze status wordt ingevoerd als na het opstarten een ongeldig of ontbrekend secvals.txt-bestand wordt gedetecteerd

  • IN AFWACHTING NW

    Deze status is van voorbijgaande aard, ingevoerd terwijl er geen wifi-netwerkverbinding is

  • IN AFWACHTING MQTT

    Deze status is van voorbijgaande aard en wordt ingevoerd nadat een WiFi-netwerkverbinding is gemaakt en terwijl er geen verbinding is met een MQTT-broker op dat netwerk

  • ACTIEF

    Dit is de normale operationele status die wordt ingevoerd zodra zowel een WiFi-netwerkverbinding als een MQTT Broker-verbinding tot stand is gebracht. Het is tijdens deze status dat de hoofdcontroller publiceert naar de MQTT-makelaar en opdrachten ontvangt via geabonneerde onderwerpen

De gebeurtenissen die overgangen tussen toestanden regelen, worden beschreven in afbeelding 1 hierboven. Overgangen tussen toestanden worden ook bepaald door de volgende SecVals-parameters;

  • 1e MQTT Broker IP-adres. In decimale vorm AAA. BBB. CCC. DDD
  • 2e MQTT-makelaarspoort. In geheel getal.
  • 3e MQTT Broker-verbinding probeert te maken voordat wordt overgeschakeld van STA-modus naar AP-modus. In geheel getal.
  • 4e WiFi-netwerk SSID. In vrije vorm tekst.
  • 5e wifi-netwerkwachtwoord. In vrije vorm tekst.

Zoals hierboven vermeld, als het IoT-apparaat geen verbinding kan maken als een WiFi-station met het WiFi-netwerk waarvan de SSID en P/W is gedefinieerd in secvals.txt in SPIFFS, wordt het apparaat een toegangspunt. Eenmaal verbonden met dit toegangspunt zal het de 'Startpagina voor configuratie van de hoofdcontroller' weergeven, zoals hierboven weergegeven in afbeelding 2 (door ofwel 'MAINSCON.local' of 192.168.4.1 in te voeren in de URL-adresbalk van uw browser). Op deze startpagina kan de netcontroller opnieuw worden geconfigureerd via een

MQTT Onderwerp naamgevingsconventie

In afbeelding 3 hierboven geschetst, is de naamgevingsconventie die wordt gebruikt voor de MQTT-onderwerpen en komt deze overeen met het patroon dat werd gebruikt in mijn eerdere Instructable (hier stap 5).

MQTT-onderwerpen die door dit IoT-apparaat worden gebruikt

Voor de duidelijkheid heb ik (foto 4) de onderwerpen en bijbehorende berichtenreeksen gedocumenteerd waarop dit apparaat publiceert/abonneert. De afbeelding toont ook de interactie met de witte bedieningsknop aan de buitenkant van de behuizing (hoewel ironisch genoeg is de knop rood weergegeven).

Remote Config Access in de ACTIEVE status

Eenmaal verbonden met de MQTT-makelaar is het mogelijk om de beveiligingsparameters voor het apparaat op afstand opnieuw te configureren via MQTT-onderwerppublicaties. Het bijbehorende bestand secvals.txt heeft alleen schrijftoegang.

Foutopsporing door gebruiker

Tijdens de opstartvolgorde geeft de led van het Sonoff-apparaat de volgende debug-feedback, hoewel het moet worden opgemerkt, om dit te zien, moet u de kap verwijderen en de circuits blootleggen, dus het is alleen aan te raden om dit te doen terwijl u uw code ontwikkelt en het apparaat van stroom voorziet met een 3v3-voeding;

  • 1 Korte flits: geen configuratiebestand in SPIFFS (secvals.txt),
  • 2 korte flitsen: IoT-apparaat probeert verbinding te maken met wifi-netwerk,
  • Continue verlichting: Sonoff IoT-apparaat probeert verbinding te maken met MQTT Broker,
  • Uit: Apparaat is actief en verbonden met MQTT Broker.

Opmerking 1: De 'Startpagina voor configuratie van de hoofdcontroller' maakt geen gebruik van beveiligde sockets en is daarom afhankelijk van de beveiliging van uw netwerk.

Opmerking 2: om meerdere IoT-apparaten te programmeren, moet de MQTT-reeks worden bewerkt voordat deze naar elk apparaat wordt gedownload. Dit komt omdat het id-nummer van de netcontroller is ingebed in de MQTT-onderwerpreeks. d.w.z. in de gepubliceerde software heb ik de waarde 100 gekozen: 'WFD/MainsCont/100/Relay/Command/1' en voor mijn 2 apparaten zijn ze respectievelijk genummerd 1 & 2.

  • 'WFD/MainsCont/1/Relais/Command/1'
  • 'WFD/MainsCont/2/Relais/Command/1'

Opmerking 3: Voor de volledigheid, wanneer de IoT-software in de ACTIEVE staat is, kan de Sonoff-LED worden bestuurd en de status van de opnieuw knipperende knop worden gepubliceerd. Hoewel deze alleen van waarde zijn tijdens het foutopsporingsproces, aangezien geen van beide tijdens normaal gebruik aan de gebruiker wordt blootgesteld.

Stap 7: OpenHAB-configuratie

OpenHAB-configuratie
OpenHAB-configuratie
OpenHAB-configuratie
OpenHAB-configuratie
OpenHAB-configuratie
OpenHAB-configuratie

Voor testdoeleinden heb ik besloten om de twee lichtnetcontrollers fictief in de 'Living Room' van mijn huis te plaatsen. Deze OpenHAB-pagina is te bereiken via de hoofdsitepagina zoals in foto 1.

Ik heb de OpenHAB.sitemap-configuratie aangepast die in mijn eerdere Instructable (hier) is gegeven en individuele vermeldingen toegevoegd voor 'Mains Controller 1' en 'Mains Controller 2' (foto 2 hierboven). Ik heb ook items toegevoegd (Living Room Mains Cont. 1 & 2) om RSSI-trends weer te geven die zijn gemeten bij de ontvanger van de twee nieuwe IoT-apparaten (foto 3).

Ten slotte heb ik items toegevoegd aan de.rules- en.items-bestanden om dynamische statussynchronisatie van de Sonoff mogelijk te maken en het bijwerken/animeren van mijn slechte poging tot een switch-graphic (de switch sluit wanneer deze actief is en opent wanneer deze inactief is). Pic 2 geeft een voorbeeld van MC1 actief en MC2 inactief.

Opmerking 1: Als u niet zeker weet hoe u OpenHAB moet gebruiken, zie dan hier 'OpenHAB instellen en configureren. Deel 6: IoT, Domotica'

Opmerking 2: Een kopie van de gewijzigde sitemap, regels en itemsbestanden, pictogrammen enz. wordt gegeven in het onderstaande zipbestand.

Opmerking 3: RSSI = Indicatie van ontvangen signaalsterkte. Dit is een maatstaf voor hoe goed het IoT-apparaat uw wifi-netwerk kan zien.

Stap 8: Uw IoT-apparaat testen

Image
Image
Uw IoT-apparaat testen
Uw IoT-apparaat testen

Zoals beschreven in Instructable WiFi IoT temperatuur- en vochtigheidssensor. Deel: 8 IoT, Domotica Stap 7, de eerste test van het IoT-apparaat werd uitgevoerd via een MQTT-verbinding via MQTT Spy (zoals in systeemblokdiagram pic 1 hierboven), bewaking van led-uitgang, knopingangen (zowel Sonoff-re-flash-knop als Sonoff-re-flash-knop en de witte externe knop) en debug verkeer op de seriële interface. Hierdoor kon ik alle beschikbare geabonneerde onderwerpen oefenen en de gepubliceerde reacties controleren. Hoewel dit opnieuw handmatig werd uitgevoerd en tijdrovend was, hoewel het 100% dekking van berichten/onderwerppublicaties mogelijk maakte.

Omdat de belangrijkste softwarestatusmachine (stap 6 hierboven) werd geërfd van de eerdere Instructable (deel: 8) behalve dat de software verbinding kon maken met de WiFi N/W en MQTT-makelaar, werd aangenomen dat deze correct functioneerde.

Vervolgens werden volledige tests op systeemniveau uitgevoerd met behulp van de lichtnetcontroller en de IoT-infrastructuur (opnieuw foto 1), dit keer met behulp van OpenHAB om de interactie met het IoT-apparaat te regelen. De IoT-hardware en dummy load-configuratie zijn te zien in foto 2 hierboven.

De video geeft volledige details van systeemtests en toont duidelijk de synchronisatie die wordt onderhouden tussen OpenHAB-apparaten (PC/Chrome en iPad/OpenHAB APP) in realtime. Het toont ook live berichten naar de Mains Controllers via MQTTSpy (zie hier voor meer details Het opzetten van een MQTT Broker. Part 2: IoT, Home Automation) en OpenHAB tailed systeemlog van Raspberry Pi-server via een PuTTY SSH-verbinding (zie hier voor meer details OpenHAB instellen en configureren Deel 6: IoT, domotica).

Opmerking: debug-verkeer is samengesteld voor de definitieve softwareversie.

Stap 9: Conclusie

Algemeen

Het project was relatief eenvoudig te voltooien en werkte goed. De ingebedde software was eenvoudig te produceren en was een ingekorte versie van de code die werd gebruikt voor de temperatuur- en vochtigheidssensoren van deel 8 in deze serie.

Ik was aanvankelijk van plan om alleen witte onderdelen aan te schaffen puur vanwege hun esthetische kwaliteit. Ik heb dit allemaal bereikt, behalve de bedieningsknop, probeer wat ik kon, ik kon geen goede / goedkope volledig witte knop vinden.

Sonoff 10A-apparaat

Ik heb hieronder vermeld wat ik redelijk vond voor- en nadelen van het Sonoff-apparaat

Pluspunten

  • Goedkoop.
  • Goede maatschappelijke ondersteuning.
  • Kan herprogrammeren via de Arduino IDE.

nadelen

  • Dunne behuizing.
  • Minimale I/O (naar bruikbare connectoren gebracht).
  • Het wordt heet in zijn rusttoestand.
  • Heeft slechts 1 MB aan SPI-flitser aan boord.
  • Is een PITA om te herprogrammeren als het eenmaal op zijn plaats is aangesloten.
  • Bij het integreren van nieuwe code in de Sonoff-test was de relaissluiting problematisch, aangezien het relais 5v is en de voeding die op de Sonoff wordt toegepast voor programmering 3v3 is. Relaisactivering is nog maar net waarneembaar voor het oor.

Bedenkingen

  • Het schakelt de neutrale lijn niet om. Maakt gebruik van een SPST-relais.
  • Is niet gefuseerd.
  • Slechte trekontlasting van de kabel.
  • De PCB zit niet vast in de Sonoff-behuizing.

Reageer op technisch ontwerp

Aangezien dit IoT-apparaat zou worden gebruikt om onder spanning staande Britse netvoeding (240VAC RMS) te schakelen, volgde ik zowel goede mechanische als elektrische ontwerppraktijken en zorgde ik ervoor dat het risico op schokken tot een minimum werd beperkt door geen elektrisch geleidende materialen bloot te stellen, over het specificeren van alle componenten, de-rating uitgangsbelasting, het toepassen van zekeringbescherming op zowel de hoofdcontroller als het optisch gekoppelde subsysteem, het opnemen van een goede ononderbroken aarding en het gebruik van optische/galvanische isolatie.

Mogelijke verbetering

Achteraf gezien was het handig geweest om een visuele indicatie op te nemen dat de uitgang van de Mains Controller actief was (LED of Neon). Hoewel het geen probleem is bij dagelijks gebruik, is het een standaardpraktijk om de belasting van de voeding te isoleren voordat er onderhoud wordt uitgevoerd, of een simpele druk op de lokale bedieningsknop zal de uitgang schakelen in het geval dat een lamp kan oplichten wanneer deze is aangesloten.

laatste opmerking:

Als je twee zeer slechte voorbeelden wilt zien van het omgaan met netstroom, bekijk dan de onderstaande links. Hun Darwin-awards zullen zeer binnenkort op de post gaan, daar ben ik vrij zeker van;

  • Mad Scientist verlengsnoer
  • Community-feedback 03 - Zorgen over stroomveiligheid!

Stap 10: Gebruikte referenties

Ik heb de volgende bronnen gebruikt om dit Instructable samen te stellen;

PubSubClient.h

  • Door: Nick O'Leary
  • Doel: stelt het apparaat in staat om MQTT-onderwerpen te publiceren of zich erop te abonneren bij een bepaalde makelaar
  • Van:

Bounce2.h

  • Door: Thomas O Fredericks
  • Doel: Ingangsschakelaar de-bounce in software
  • Van:

SPIFFS

https://esp8266.github.io/Arduino/versions/2.0.0/do…

Sonoff-flitser upgraden

  • https://www.andremiller.net/content/upgrading-sonof…
  • https://tech.scargill.net/32mb-esp01/
  • https://www.andremiller.net/content/upgrading-sonof…

Sonoff-schakelschema

https://www.itead.cc/wiki/images/6/6b/Sonoff_schmatic.pdf

USB UART-module (ook bekend als FTDI)

https://www.ebay.co.uk/itm/6Pin-USB-2-0-to-TTL-UART-Module-Converter-CP2102-STC-Replace-FT232-CF-/272249732398?epid=503069058&hash=item3f63593d2e:g:QVUAAOSw71BXP92B

Darwin awards (licht reliëf)

https://www.darwinawards.com/

TIL111 Opto-isolator datasheet

Aanbevolen: