Innehållsförteckning:

IoT Mains Controller. Del 9: IoT, Hemautomation: 10 steg (med bilder)
IoT Mains Controller. Del 9: IoT, Hemautomation: 10 steg (med bilder)

Video: IoT Mains Controller. Del 9: IoT, Hemautomation: 10 steg (med bilder)

Video: IoT Mains Controller. Del 9: IoT, Hemautomation: 10 steg (med bilder)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Juli
Anonim
IoT Mains Controller. Del 9: IoT, Hemautomation
IoT Mains Controller. Del 9: IoT, Hemautomation

varning

LÄS DETTA FÖRST

Denna instruktion beskriver ett projekt som använder nätström (i det här fallet UK 240VAC RMS), medan man har varit noga med att använda säker praxis och goda designprinciper finns det alltid en risk för potentiellt dödlig elektrisk chock när man arbetar med dessa matningsspänningar och för som författaren inte kan ta något ansvar om personskada eller egendomsskada inträffar när man följer dess innehåll. Följaktligen gör du detta projekt på egen risk.

Inledning

Den här artikeln, den nionde i serien om hemautomation, dokumenterar hur man skapar och integrerar en Sonoff 10A IoT -nätkontroller i ett befintligt hemautomatiseringssystem, inklusive all nödvändig mjukvarufunktionalitet för att möjliggöra framgångsrik distribution i en hemmiljö.

Introduktion

Som nämnts ovan beskriver denna instruktionsbok hur man gör och integrerar en IoT -nätkontroll med Sonoff 10A från iTead. Enheten själv anges vara klassad som 10 ampere @ 90 ~ 250VAC, men denna implementering avvärderar den till 5 ampere via den smälta kontakten som tillhandahåller inhemsk brittisk huvudförsörjning på 240VAC RMS.

Designmetoden integreras sömlöst i det MQTT/OpenHAB -baserade IoT -nätverket som beskrivs i denna serie om hemautomatisering som bygger på återanvänd kod härifrån. Det kan också hantera förlusten av alla IoT -nätverkselement och kan fullt ut drivas fristående. I fristående läge uppnås kontrollen över enheten genom att helt enkelt trycka på kontrollknappen på ovansidan av höljet, vilket växlar framåtmatningen.

För att möjliggöra denna lokala kontroll av Sonoff -enheten tas GPIO14 ut ur fodralet och används som en triggeringång. För att säkerställa säkerheten matas denna ingång via en optokopplingskrets och är placerad i ett plasthölje så att operatören inte vid något tillfälle utsätts för nätspänning.

Slutligen beskriver prosan också hur man omprogrammerar ESP8266-enheten i Sonoff 10A med Arduino IDE och ger fullständiga kretsdetaljer för en enhet som kan användas för att på ett tillförlitligt sätt programmera målkod.

Vilka delar behöver jag?

Sonoff nätkontroller

  1. 1 av Sonoff 10A här
  2. 1 av 7805L 5v spänningsregulator här
  3. 1 av 240/6VAC 1,5VA transformator här
  4. 2 av 0,1 keramiska kondensatorer här
  5. 1 av 1000uF @25v elektrolytkondensator här
  6. 1 av Bridge -likriktare 2W01 här
  7. 2 av 4K7 -motstånd här
  8. 1 av 330R motstånd här
  9. 1 av SPST -knappen här
  10. 1 av Mulitcomp BM12W ABS -hölje här
  11. 1 av TIL111 optokopplare här
  12. 1 av 3-vägs kopplingsplint här
  13. 1 av 2-vägs kodad molex-kontakt här/här
  14. 1 av 3-vägs kodad molex-kontakt här/här
  15. 1 av 5-vägs kodad molex-kontakt här/här
  16. 1 av 5-vägs molex-stift här
  17. 1 rabatt på Winbond SPI Flash (W25Q32FVSIG) här
  18. 1 av 20 mm säkringshållare + lock här
  19. 1 av 20 mm snabbblås 500mA säkring här
  20. 2 av polyamidkabelförskruvningar här
  21. 1 av Storbritanniens nätkontakt (BS1363/A) här
  22. 1 av Storbritanniens huvuduttag (BS1363/A) här
  23. 7 av M3 16 mm CS nylonskruvar, (inkl. 10 av muttrar) här/här
  24. 2 av dragkedjor här
  25. 1 från veroboard (0,1 "pitch) här
  26. 1 off Olika längder 22swg förtennad koppartråd här
  27. 1 st 3M vit brittisk nätkabel här
  28. 10 av Molex sockelhylsor här

Sonoff programmerare

  1. 1 av LD33CV 3v3 spänningsregulator här
  2. 1 av TO-220 kylfläns här
  3. 1 rabatt på kylflänspasta här
  4. 1 av 10uF @16v Elektrolytkondensator här
  5. 1 av 0,1 keramisk kondensator här
  6. 1 av SPDT -knappen här
  7. 1 av 4K7 -motstånd här
  8. 1 av 2-vägs kodad molex-kontakt här/här
  9. 1 av 3-vägs kodad molex-kontakt här/här
  10. 5 av Molex sockelhylsor här
  11. 1 av 6-vägs molexuttag här
  12. 1 av SPST -knappen här
  13. 1 av 2,1 mm PSU -uttag här
  14. 1 från veroboard (0,1 "pitch) här
  15. 1 av USB till seriell adapter (FTDI) här

Vilken programvara behöver jag?

  1. Arduino IDE 1.6.9 här
  2. Arduino IDE konfigurerad för att programmera ESP8266. Kolla här; Konfigurera Arduino IDE för att programmera ESP8266-01

Vilka verktyg behöver jag?

  1. Lödkolv,
  2. Borr och olika bitar (inklusive steghålsskärare för kabelförskruvningar och manöverknapp),
  3. Skruvmejslar (olika),
  4. Justerbara skiftnycklar (två av, käftbredd> 25 mm, för kabelförskruvningar),
  5. Filer (olika),
  6. Robust skruv,
  7. Värmepistol,
  8. DMM (företrädesvis CAT IV).

Vilka färdigheter behöver jag?

  1. Ett bra grepp om elektronik och elsäkerhet i hemmet/design/ledningar etc.,
  2. Kunskap om Arduino och dess IDE,
  3. Goda tillverkningskunskaper (lödning, arkivering, borrning etc.),
  4. Lite tålamod,
  5. Viss förståelse för ditt hemnätverk.

Ämnen som behandlas

  • Introduktion
  • Kretsöversikt
  • Sonoff RetroMods
  • Konstruktion och montering Detaljer
  • Sonoff programmeringsadapter
  • Programvaruöversikt
  • Programvaruöversikt
  • OpenHAB -konfiguration
  • Testar din IoT -enhet
  • Slutsats
  • Referenser används

Serielänkar

Till del 8: WiFi IoT temperatur- och fuktighetssensor. Del: 8 IoT, Hemautomation

Till del 10: IR -fjärrkontroll via IoT. Del 10 IoT, Hemautomation

Steg 1: Kretsöversikt

Kretsöversikt
Kretsöversikt
Kretsöversikt
Kretsöversikt
Kretsöversikt
Kretsöversikt
Kretsöversikt
Kretsöversikt

Översikt

Som nämnts i inledningen ovan krävs en ingång till Sonoffs inbyggda ESP8266 för att kunna slå på och stänga av nätkontrollen lokalt. Att introducera en sådan extern ingång kräver att Sonoff ABS -höljet bryts och skapar därför en potentiell chockrisk. För att övervinna detta använde jag optisk isolering så att det inte finns någon möjlighet till exponering för elnät utanför nätkontrollsystemets kapsling.

Det som följer är en beskrivning av opto-isoleringskretsarna (i bild 1 ovan).

Kretsdetaljer

Opto-isoleringskretsen tar emot sin ström direkt från nätet som ansluts till enheten. 240VAC RMS appliceras på trappsteg/isoleringstransformator TR1 via J1 a pheonix contact MKDSN2, 5/3-5.08 polyamid 3-vägs terminal klassad vid 16A vid 400V som kan bära en kabel på 2,5 mm (kvadrat) CSA och F1 a 500mA 20 mm snabb säkring. Den 6VAC som finns på sekundärlindningarna i TR1 är helvågsriktad med diodbrygga B1.

Denna helvågsriktade uteffekt stabiliseras och regleras sedan av C1, C2 C3, R3 och IC1 en shuntregulator i 7805L -serien, vilket ger en bra, ren 5v matningsskena.

5v-skenan används sedan för att styra ingången till OK1 en TIL111 opto-isolator via en externt monterad vit SPST-knapp ansluten över J3. Utgången från TIL111 är kopplad till Sonoff GPIO14 -ingången via R2 a 4K7 pull up resistor. Således uppnås bättre än 340V isolering (dvs. toppspänning = (240VAC*kvadrat (2))).

Steg 2: Sonoff RetroMods

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

För att integrera Sonoff 10A -enheten är det nödvändigt att göra några retrospektiva ändringar.

Den första är att lägga till en 5-vägs 0,1 pitch molex-kontakt som visas på bild 1. Detta ger åtkomst till GPIO14 på Sonoff när skyddskåpan har bytts ut som på bilderna 2 och 3 ovan.

Även om det inte visas ovan tog jag också fram de seriella TX/RX-linjerna för att möjliggöra in-situ-programmering (se kabelnät SK1..3 i steg 1 ovan).

Den andra ändringen är att öka storleken på SPI Flash -enheten från standard 1MByte till 4MBytes, detta är för att ge tillräckligt med utrymme för IoT -webbserverfilerna att lagras i SPIFFS.

Jag köpte SMD SPI -flashenheten (W25Q32FVSIG) från Ebay här

För att byta blixt tog jag tillfälligt bort Sonoff -lysdioden som på bild 4 för att ge bättre åtkomst till SMD -enheten. För att avlöda blixten använde jag en värmepistol som visas på bild 5 ovan. Lödde sedan om både 4MByte Flash och LED respektive (bild 6).

Steg 3: Konstruktion och monteringsdetaljer

Konstruktion och montering Detaljer
Konstruktion och montering Detaljer
Konstruktion och montering Detaljer
Konstruktion och montering Detaljer
Konstruktion och montering Detaljer
Konstruktion och montering Detaljer
Konstruktion och montering Detaljer
Konstruktion och montering Detaljer

Jag medföljde nätkontrollen i en Mulitcomp BM12W ABS -låda (bild 1 ovan). Detta hölje har isolerade M3-insatser i mässing som möjliggör åtkomst till enheten utan att äventyra gängorna så att den inre säkringen kan bytas ut om det behövs eller intern inspektion kan göras över tid (samma sak kan inte sägas om Sonoff-enheten, vilken är i själva verket en gång endast nära med hjälp av självuttag).

Primär dragavlastning för nätkabeln uppnåddes via en M16 Nylon/Polyamid 6/6 vit kabelförskruvning som stöder en kabel OD Min/Max 5mm/10mm.

Sekundär dragavlastning var via en enda dragkedja som placerades på kabeln om överdriven belastning appliceras och kabelgenomföringen misslyckas, dragkedjan håller kabeln på plats.

För att montera kabelförskruvningarna och ge tillräckligt med utrymme för montering av Sonoff och opto-isoleringselektronik tog jag bort de interna kretskortsmonteringsribborna som visas ovan (bild 2).

All elektronik monterades säkert med M3 -nylon -CS -skruvar för att säkerställa isolering med utsidan av höljet. Opto-isoleringselektroniken monteras med 5 fästpunkter för att säkerställa en god mekanisk styrka om enheten tappas, vilket förhindrar att isoleringstransformatorns massa bryter veroboardkretsen.

Försörjning till enheten uppnåddes via UK Standard färgkodad vit 3-kärnig PVC-isolerad nätkabel med flera strängar (32/0,2 mm kvadrat) 1 mm (kvadrat) CSA. med en OD på 7,2 mm som kan bära 10A.

Enheten var ansluten till brittisk nätförsörjning (240VAC RMS) via en standard 3 -stifts säkerhetsplugg (BS 1363/A) godkänd. Kontakten var smält vid 5A.

Alla nätkablar till opto-isoleringskretsen var anslutna via pheonix-kontakt MKDSN2, 5/3-5.08 polyamidterminaler med en klass på 16A vid 400V som kunde bära en kabel på 2,5 mm (kvadrat) CSA, vilket ger gott om kapacitet för två kablar i varje position.

Inga nätkablar tennades, bara tvinnades för att förhindra att kärnorna sprids innan de sätts in i kontaktblocket. Tinning nätkablar är en farlig praxis eftersom lodet "slappnar av" över tiden så småningom gör att kabeln går förlorad i kontaktblocket.

Notera:

  • OD = Ytterdiameter.
  • VAC = Volt växelström
  • RMS = Root Mean Square
  • CSA = Tvärsnittsarea
  • CS = Counter Sunk

Steg 4: Sonoff -programmeringsadapter

Sonoff programmeringsadapter
Sonoff programmeringsadapter
Sonoff programmeringsadapter
Sonoff programmeringsadapter
Sonoff programmeringsadapter
Sonoff programmeringsadapter
Sonoff programmeringsadapter
Sonoff programmeringsadapter

Det finns två aspekter att tänka på vid omprogrammering av Sonoff 10A via Arduino IDE;

  1. Konfigurera din Arduino IDE för att programmera ESP8266,
  2. Handlingen att programmera själva hårdvaran.

Konfigurera din Arduino IDE för att programmera ESP8266

För att konfigurera din Ardino IDE, följ instruktionerna här Inställning av Arduino IDE för att programmera ESP8266-01

Programmering av hårdvaran

Detta är en process i flera steg som i alla fall med ESP8266. Här appliceras Sonoff -strömmen på kortet via en extern stabiliserad 3v3 DC -matning och INTE från elnätet. En USB till seriell enhet krävs för att skicka och ta emot data till och från Sonoff. Anslut TX och RX enligt bild 2 och 4.

Programmeringssteg (allmänt)

  1. Se först till att det inte finns någon extern strömförsörjning till Sonoff,
  2. Håll ned knappen på Sonoff -enheten. (bild 1 ovan, markerad återblixtknapp),
  3. Anslut extern DC 3v3 -matning till stift 1. (bild 2 ovan),
  4. Släpp Sonoff -knappen,
  5. Enheten kan nu omprogrammeras på vanligt sätt via Arduino IDE.

För att göra saker och ting lite enklare skapade jag programmeringsenheten ovan (bilder 3 och 4) som har anslutits till Sonoff via kabelnätet SK1 … 3 (enligt beskrivningen i detta instruerbara steg 1.). Detta möjliggjorde enklare programmering av ESP8266. Det gav också ett sätt att testa GPIO14 som en ingång genom att använda R1 a 4K7 uppdragningsmotstånd och knapp S1.

Använda programmeringsenheten ovan (bilder 3 & 4) Programmeringsstegen är,

  1. Håll ned återblixtknappen på Sonoff,
  2. Pulsera 3v3 -försörjningen genom att trycka en stund på S2,
  3. Släpp återblixtknappen,
  4. Enheten kan nu programmeras.

OBS - VARNING

Under inga omständigheter ska strömförsörjning ske via nätet under Sonoffs omprogrammeringsaktivitet

Steg 5: Programvaruöversikt

Programvaruöversikt
Programvaruöversikt
Programvaruöversikt
Programvaruöversikt

Denna IoT Mains Controller -enhet innehåller för det mesta samma sex viktiga mjukvarukomponenter som i Instructable WiFi IoT Temperature and Humidity Sensor. Del: 8 IoT, Hemautomation och visas på bild 1 ovan, med viss anpassning.

SPIFFS

Detta är det (uppgraderade till 4MBytes) inbyggda SPI Flash Filing System och används för att hålla följande information (se bild 2 ovan);

  • Ikoner och "Huvudkontroll för huvudkontrollkonfiguration" html: Serveras av IoT -enheten när den inte kan ansluta till ditt IoT WiFi -nätverk (vanligtvis på grund av felaktig säkerhetsinformation) och ger användaren möjlighet att fjärrkonfigurera nätkontrollen utan behovet av att omprogrammera eller ladda upp nytt SPIFFS-innehåll.
  • Säkerhetsinformation: Den innehåller informationen som används vid uppstart av IoT -enheten för att ansluta till ditt IoT WiFi -nätverk och MQTT Broker. Information som skickas via "Hemsida för huvudkontrollkonfiguration" skrivs till den här filen ("secvals.txt").

Obs! För att först konfigurera enheten, se här för fullständig information om hur du använder SPIFFS med Arduino IDE.

mDNS -server

Denna funktionalitet åberopas när IoT -enheten misslyckades med att ansluta till ditt WiFi -nätverk som en WiFi -station och istället har blivit en WiFi -åtkomstpunkt något som liknar en inhemsk WiFi -router. När det gäller en sådan router ansluter du vanligtvis till den genom att ange IP -adressen till något som 192.168.1.1 (vanligtvis tryckt på en etikett fäst på rutan) direkt i webbläsarens URL -fält, varefter du skulle få en inloggningssida för att komma in användarnamnet och lösenordet så att du kan konfigurera enheten. För ESP8266 i AP -läge (åtkomstpunktsläge) standardiseras enheten till IP -adressen 192.168.4.1, men med mDNS -servern igång behöver du bara ange det mänskliga namnet 'MAINSCON.local' i webbläsarens URL -fält för att se 'Hemsida för huvudkontrollkonfiguration'.

MQTT -klient

MQTT -klienten tillhandahåller all nödvändig funktionalitet för att; anslut till din IoT -nätverk MQTT -mäklare, prenumerera på de ämnen du väljer och publicera nyttolast för ett visst ämne. Kort sagt tillhandahåller den IoT -kärnfunktionalitet.

HTTP -webbserver

Som nämnts ovan kommer enheten att bli en åtkomstpunkt om IoT -enheten inte kan ansluta till WiFi -nätverket vars SSID, P/W etc. definieras i säkerhetsinformationsfilen i SPIFFS. När den väl är ansluten till WiFi -nätverket som tillhandahålls av åtkomstpunkten kan närvaron av en HTTP -webbserver direkt ansluta till enheten och ändra dess konfiguration med hjälp av en HTTP -webbläsare. Hemsida 'webbsida som också finns i SPIFFS.

WiFi -station

Denna funktionalitet ger IoT -enheten möjlighet att ansluta till ett inhemskt WiFi -nätverk med parametrarna i säkerhetsinformationsfilen, utan detta kan din IoT -enhet inte prenumerera/publicera på MQTT -mäklaren

WiFi -åtkomstpunkt

Möjligheten att bli en WiFi -åtkomstpunkt är ett sätt på vilket IoT -enheten låter dig ansluta till den och göra konfigurationsändringar via en WiFi -station och en webbläsare (t.ex. Safari på Apple iPad). Denna åtkomstpunkt sänder ett SSID = "MAINSCON" + de sista 6 siffrorna i MAC -adressen för IoT -enheten. Lösenordet för detta stängda nätverk heter fantasifullt "LÖSENORD".

Steg 6: Programöversikt

Programvaruöversikt
Programvaruöversikt
Programvaruöversikt
Programvaruöversikt
Programvaruöversikt
Programvaruöversikt
Programvaruöversikt
Programvaruöversikt

För att lyckas sammanställa denna källkod behöver du följande extrabibliotek;

PubSubClient.h

  • Av: Nick O'Leary
  • Syfte: Gör att enheten kan publicera eller prenumerera på MQTT -ämnen med en given mäklare
  • Från:

Bounce2.h

  • Av: Thomas O Fredericks
  • Syfte: Ingångsbrytare avstoppar programvara
  • Från:

Kodöversikt

Programvaran använder tillståndsmaskinen enligt bild 1 ovan (fullständig kopia av källan nedan). Det finns 5 huvudtillstånd enligt följande;

  • I DET

    Detta initialiseringstillstånd är det första tillståndet som angavs efter uppstart

  • NOCONFIG

    Detta tillstånd anges om en ogiltig eller saknad secvals.txt -fil upptäcks efter uppstart

  • Väntar på NW

    Detta tillstånd är övergående, anges medan det inte finns någon WiFi -nätverksanslutning

  • Väntande MQTT

    Detta tillstånd är övergående, anges efter att en WiFi -nätverksanslutning har gjorts och även om det inte finns någon anslutning till en MQTT -mäklare på det nätverket

  • AKTIVA

    Detta är det normala driftsläget som anges när både en WiFi -nätverksanslutning och en MQTT Broker -anslutning har upprättats. Det är under detta tillstånd nätkontrollen kommer att publicera till MQTT -mäklaren och ta emot kommandon via prenumererade ämnen

Händelserna som styr övergångar mellan tillstånd beskrivs i bild 1 ovan. Övergångar mellan stater styrs också av följande SecVals -parametrar;

  • Första MQTT -mäklarens IP -adress. I prickig decimalform AAA. BBB. CCC. DDD
  • 2: a MQTT -mäklarporten. I heltal.
  • Tredje MQTT -mäklaranslutningen försöker göra innan man byter från STA -läge till AP -läge. I heltal.
  • 4: e WiFi -nätverks -SSID. I fri form text.
  • 5: e WiFi -nätverkslösenordet. I fri form text.

Som nämnts ovan om IoT -enheten inte kan ansluta som WiFi -station till WiFi -nätverket som har SSID och P/W som definieras i secvals.txt som finns i SPIFFS blir enheten en åtkomstpunkt. När den är ansluten till den här åtkomstpunkten kommer den att visa 'Hemsida för huvudkontrollkonfiguration' som visas ovan på bild 2 (genom att antingen ange 'MAINSCON.local' eller 192.168.4.1 i webbläsarens webbadressadressfält). Denna hemsida tillåter omkonfigurering av nätkontrollen via en HTTP -webbläsare.

MQTT ämnesnamnkonvention

I bild 3 ovan beskrivs namngivningskonventionen för MQTT -ämnen och överensstämmer med mönstret som används i min tidigare Instructable (här steg 5).

MQTT -ämnen som används av denna IoT -enhet

För tydlighetens skull har jag dokumenterat (bild 4) ämnen och tillhörande meddelandesekvenser som denna enhet publicerar/prenumererar på. Bilden visar också interaktionen med den vita kontrollknappen på utsidan av höljet (men ironiskt nog visas knappen i rött).

Fjärrkonfigurationsåtkomst i AKTIVT tillstånd

När den väl är ansluten till MQTT -mäklaren är det möjligt att fjärrkonfigurera säkerhetsparametrarna för enheten via MQTT -ämnespublikationer. Den associerade filen secvals.txt har endast skrivåtkomst exponerad.

Användarfelsökning

Under uppstartssekvensen ger Sonoff -enhetsledningen följande felsökningsfeedback, även om det bör noteras, för att se detta måste du ta bort locket och avslöja kretsen så det är endast lämpligt att göra det medan du utvecklar din kod och driver enheten med en 3v3 -matning;

  • 1 Kort blixt: Ingen konfigurationsfil finns i SPIFFS (secvals.txt),
  • 2 korta blinkningar: IoT -enheten försöker ansluta till WiFi -nätverk,
  • Kontinuerlig belysning: Sonoff IoT -enhet försöker ansluta till MQTT Broker,
  • Av: Enheten är aktiv och ansluten till MQTT Broker.

Anmärkning 1: "Hemsidan för huvudkontrollkonfiguration" använder inte säkra uttag och är därför beroende av att ditt nätverk är säkert.

Not 2: För att programmera flera IoT -enheter krävs att MQTT -strängen redigeras innan den laddas ner till varje enhet. Detta beror på att id -numret för nätkontrollern har bäddats in i MQTT -ämnessträngen. dvs. i den publicerade programvaran valde jag värdet 100: 'WFD/MainsCont/100/Relay/Command/1' och för mina 2 enheter är de numrerade 1 respektive 2.

  • 'WFD/MainsCont/1/Relä/Command/1'
  • 'WFD/MainsCont/2/Relay/Command/1'

Anmärkning 3: För fullständighet när det är i AKTIVT läge gör IoT-programvaran det möjligt att styra Sonoff-lysdioden och publicera status för återblixtknappen. Även om dessa bara är av värde under felsökningen, eftersom ingen av dem exponeras för användaren under normal drift.

Steg 7: OpenHAB -konfiguration

OpenHAB -konfiguration
OpenHAB -konfiguration
OpenHAB -konfiguration
OpenHAB -konfiguration
OpenHAB -konfiguration
OpenHAB -konfiguration

För teständamål bestämde jag mig för att konceptuellt använda de två nätkontrollerna i mitt vardagsrum. Denna OpenHAB -sida kan nås via huvudsidan som på bild 1.

Jag ändrade OpenHAB.sitemap -konfigurationen som gavs i min tidigare Instructable (här) och lade till individuella poster för 'Nätkontroll 1' och 'Huvudkontroll 2' (bild 2 ovan). Jag har också lagt till poster (Living Room Mains Cont. 1 & 2) för att visa RSSI -trender uppmätta vid mottagaren av de två nya IoT -enheterna (bild 3).

Slutligen lade jag till poster i.rules och.items -filerna för att möjliggöra dynamisk tillståndssynkronisering av Sonoff och uppdatering/animering av mitt dåliga försök till en switch -grafik (omkopplaren stängs när den är aktiv och öppnas när den är inaktiv). Bild 2 ger ett exempel på MC1 aktiv och MC2 inaktiv.

Obs 1: Om du inte är säker på hur du använder OpenHAB, se här 'Konfigurera och konfigurera OpenHAB. Del 6: IoT, Hemautomation '

Not 2: En kopia av den modifierade webbplatskartan, regler och objektfiler, ikoner etc. ges i zip -filen nedan.

Not 3: RSSI = mottagen signalstyrka. Detta är ett mått på hur väl IoT -enheten kan se ditt WiFi -nätverk.

Steg 8: Testa din IoT -enhet

Image
Image
Testar din IoT -enhet
Testar din IoT -enhet

Såsom beskrivs i Instructable WiFi IoT Temperature and Humidity Sensor. Del: 8 IoT, Hemautomation Steg 7, första testet av IoT-enheten utfördes över en MQTT-anslutning via MQTT Spy (som i systemblockschema bild 1 ovan), övervakning av LED-utdata, knappingångar (både Sonoff-återblixtknapp och den vita externa knappen) och felsöka trafik på det seriella gränssnittet. Detta tillät mig att använda alla tillgängliga ämnen som prenumererade och kontrollera de publicerade svaren. Även om detta igen genomfördes manuellt och var tidskrävande, även om det möjliggjorde 100% täckning av meddelanden/ämnespublikationer.

Eftersom huvudprogramvarans tillståndsmaskin (steg 6 ovan) ärvdes från den tidigare instruerbara (del: 8) förutom hälsokontroll, kunde programvaran ansluta till WiFi N/W och MQTT -mäklaren, det antogs att detta fungerade korrekt.

Fullständig test på systemnivå slutfördes sedan med nätkontrollen och IoT -infrastrukturen (igen bild 1) den här gången med OpenHAB för att styra interaktionen med IoT -enheten. IoT -hårdvaran och dummy -belastningen kan ses på bild 2 ovan.

Videon ger fullständiga detaljer om systemtester och visar tydligt att synkroniseringen upprätthålls mellan OpenHAB -enheter (PC/Chrome och iPad/OpenHAB APP) i realtid. Det visar också direktmeddelanden till huvudkontrollerna via MQTTSpy (se här för mer information Konfigurera en MQTT -mäklare. Del 2: IoT, hemautomation) och OpenHAB -tailed systemlogg från hallonpiservern över en PuTTY SSH -anslutning (se här för ytterligare detaljer Ställa in och konfigurera OpenHAB. Del 6: IoT, Hemautomation).

Obs! Felsökningstrafik sammanställdes för den slutliga programversionen.

Steg 9: Slutsats

Allmän

Projektet var relativt enkelt att slutföra och fungerade bra. Den inbäddade programvaran var enkel att producera, eftersom den var en nedskuren version av koden som används för temperatur- och fuktsensorerna i del 8 i denna serie.

Jag tänkte inledningsvis bara skaffa vita komponentdelar enbart för sin estetiska kvalitet. Jag uppnådde detta i alla utom kontrollknappen, försök som jag kunde, jag kunde inte få en bra/billig helt vit knapp.

Sonoff 10A -enhet

Jag har listat nedan vad jag tyckte var rimliga fördelar och nackdelar med Sonoff -enheten

Fördelar

  • Billig.
  • Bra samhällsstöd.
  • Kan omprogrammera via Arduino IDE.

Nackdelar

  • Slimmat hölje.
  • Minimal I/O (fram till användbara kontakter).
  • Det går varmt i sitt viloläge.
  • Har bara 1MByte inbyggd SPI-blixt.
  • Är en PITA att omprogrammera när den är ansluten på plats.
  • Vid integrering av ny kod i Sonoff -testet var relästängningen problematisk med tanke på att reläet är 5v och matningen som tillförs Sonoff för programmering är 3v3. Reläaktivering är bara märkbar för örat.

Oro

  • Den byter inte den neutrala linjen. Använder ett SPST -relä.
  • Är inte sammansmält.
  • Dålig kabelavlastning.
  • Kretskortet är inte säkrat i Sonoff -höljet.

Kommentera teknisk design

Med tanke på att denna IoT-enhet skulle användas för att byta strömförsörjning i Storbritannien (240VAC RMS) följde jag både god mekanisk och elektrisk designpraxis och säkerställde att risken för chock minimerades genom att inte exponera några elektriskt ledande material, över att specificera alla komponenter, de-rating utgående belastning, applicering av säkringsskydd på både nätkontrollen och det optokopplade delsystemet, inkludering av bra obruten jordning och användning av optisk/galvanisk isolering.

Möjlig förbättring

I efterhand hade det varit användbart att inkludera en visuell indikation på att nätkontrollens utgång var aktiv (LED eller Neon). Även om det inte är något problem i vardagen, eftersom det är vanligt att isolera last från strömförsörjningen innan något underhåll utförs, eller ett enkelt tryck på den lokala kontrollknappen växlar utgången om en lampa kan tändas när den ansluts.

Sista noten

Om du vill se två mycket dåliga exempel på att hantera el, kolla in länkarna nedan. Deras Darwin -utmärkelser kommer på posten snart, jag är helt säker;

  • Mad Scientist förlängningssladd
  • Samhällsåterkoppling 03 - Hänsyn till energisäkerhet!

Steg 10: Referenser används

Jag använde följande källor för att sätta ihop denna instruerbara;

PubSubClient.h

  • Av: Nick O'Leary
  • Syfte: Gör att enheten kan publicera eller prenumerera på MQTT -ämnen med en given mäklare
  • Från:

Bounce2.h

  • Av: Thomas O Fredericks
  • Syfte: Ingångsbrytare avstoppar programvara
  • Från:

SPIFFS

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

Uppgraderar Sonoff -blixt

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

Sonoff Circuit Diagram

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

USB UART -modul (även kallad 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 (lättnad)

https://www.darwinawards.com/

TIL111 datablad för opto-isolator

Rekommenderad: