Mitt automatiserade hem: Raspberry Pi + Node-Red + MQTT & Amazon Echo

Nov 5, 2022 category

I vår senaste min automatiserade hemfunktion tar Dave McLaughlin oss genom sin resa och utvecklar sitt eget smarta hemsystem. Med några DIY -uppgraderingar till befintlig Home Automation -hårdvara och lite smart programvaruintegration har han byggt ett fascinerande system …

I början

Efter att ha använt Homeser och ett antal trådbundna och trådlösa enheter medan jag i Storbritannien bytte till trådlöst när jag flyttade utomlands till Indonesien 2005. När jag bodde i en hyrd lägenhet behöver jag en lösning som inte kräver några andra kablar än kanske Ethernet i samma rum.

Jag bestämmer mig för ett Z-Wave-system och lägger senare till WEMO-lampmoduler också. För Z-Wave-sidan av saker valde jag HomePro-apparatmodulerna för uttag och Everspring Lamp-moduler för belysningen. Ingen av dessa två moduler var billiga.

Jag sprang med denna installation fram till mitten av 2016, men följande problem ledde till en förändring. Först var Z-Wave temperamentsfullt med 2 enheter längst ner i OU-lägenheten, även om jag hade en apparatmodul halvvägs mellan den fungerade bara pålitligt. Jag skulle ständigt ha pressat på den Homeser Touch -baserade surfplattan för att få min sängljus att gå av. Senare skulle jag ha två enheter som kontrollerade lampor sprängs och misslyckas. En av IC: erna som var en del av strömförsörjningen hade delat sig vidöppen.

Nästa huvudvärk var WEMO -lampmodulerna. Det enda sättet att få dessa att fungera var med IFTTT genom sina homeser och WEMO -kanaler. Så länge min internetanslutning var bra fungerade det ok, om än lite långsamt ibland. Inte exakt en 10 på WAF -skalan.

I början av 2016 stötte jag på en webbplats som drivs av Peter Scargill som brukade driva ett elektronikdesignföretag för många år sedan från Tyneside. Vid den tiden använde jag hans APPCon -kabeldragna styrenheter för hemmautomation baserat på de lilla 8 -bitars PIC -mikrokontrollerna. Jag hade hundratals meter med 4 Core Alarm Cable Run över hela min lägenhet. Systemet var pålitligt men försökte dölja allt kabeln inte gick bra med min partner vid den tiden.

Snabbspolning fram till 2016 och Peter var tillbaka och gjorde hem automatisering med de lilla ESP8266 -baserade styrenheterna.

Dessa är baserade på en Cortex M4 -kärna med inbyggd 802.11 WiFi och har en SDK som möjliggör utveckling med Eclipse samt ett Arduino IDE -alternativ.

Eftersom mina HomePro-enheter var besvärliga bestämde jag mig för att återinträda internerna och behålla de mekaniska delarna. Så jag tog fram den gamla PCB och gjorde alla mätningar så att jag kunde göra min egen 2 stack PCB -enhet i ungefär samma som den gamla. Den lägre PCB är strömförsörjningen och det fasta tillståndsreläet.

Jag valde de fasta tillståndsreläerna när de slår på nollövergången och undviker problem med att dra ner AC och få strömförsörjningen att doppa. Detta fungerar felfritt och jag kan byta upp till 8 ampere med detta arrangemang. mer än tillräckligt för den avsedda användningen av dessa moduler.

Dessa bilder visar den nya brädesstacken och de gamla brädorna i modulen och slutligen de nya brädorna installerade i HomePro -höljet.

Det finns en LED på brädet för att visa status och jag borrade ett litet hål för att låta detta ses från utsidan. Det blinkar snabbt tills det får en WiFi- och MQTT -anslutning. Använd knappen på framsidan kan du trycka på och hålla detta i cirka 3-5 sekunder strax efter POWER UP och detta aktiverar en APN och webbsida som du kan använda för att konfigurera enheten. Enklare än att försöka göra detta över den seriella anslutningen. Peter och Aiden har övervägt allt med detta.

Nu måste belysningen sorteras. Everspring -enheterna som jag hade köpt från Storbritannien för ett par år sedan brukade visa ett irriterande fel. De skulle ibland börja stänga av och sedan tillbaka igen. Det var helt slumpmässigt. Jag ersatte en enhet med en ny och samma sak hände. En dag såg jag att på/av -felet inträffade när spänningen i lägenheten sjönk under 209VAC – Indonesien är inte särskilt bra när det gäller stabiliteten i elnätet. Jag öppnade en av enheterna och fann att de använde en mycket billig utbud av strömförsörjning baserad på en kondensator/motståndsdropptyp. Dessa är bra när du har en stabil strömförsörjning men de gillar det verkligen inte när spänningsingången är för låg.

Så beväpnad med HomePro -enhetsdesignen började jag skapa en ny PCB för att passa de befintliga kapslarna. ESP12 var belägen på ena sidan och AC-DC-strömmen på den andra. Det fasta tillståndsreläet var också på samma sida som strömförsörjningen. En prog och på/av -knapp monterades också så att jag kunde installera programvaran initialt. Webbgränssnittet skulle användas för att konfigurera det senare. Du kan se ESP -sidan av PCB nedan. Spåret i PCB är att öka separationen av växelströmmen från lågspännings DC -sidan. De stora kuddarna är AC in och AC ut till lampan.

Så nu hade jag ett antal uppgraderade apparatmoduler och belysningskontroller, men hur skulle jag kontrollera allt detta? Det var dags att gå i pension mitt gamla Homeseer 2 -system. Datorn var nejSlutet på problem och att vara Windows 10 skulle det bestämma att det skulle uppdatera sig själv utan mitt tillstånd. Dags att flytta till Linux.

Så baserat på bloggen från Peter bestämde jag mig för att få ut min Raspberry PI3 med dess 7 ″ LCD och skjuta upp nodröd. Nod-Red för dem som inte har sett detta är en mycket trevlig och stabil drag- och droppkontrollprogramvara. Till att börja med var det skrämmande att installera men efter ungefär en vecka med spel började jag upptäcka att det var väldigt lätt att ta sig till. Om du har några programmeringsfärdigheter, kommer du att känna dig som hemma med skriptet. Alla moduler tillhandahålls som Java-skriptkälla och det finns ett enormt och ständigt ökande bibliotek för det på den nodröda webbplatsen.

Därefter behövde jag en MQTT -mäklare eftersom programvaran från Peter kommunicerar med detta protokoll. När du har installerat och använt MQTT inser du snabbt hur effektivt det är i ditt nätverk. Det finns inget behov av undersökningsenheter eller ens att känna till enhetens IP -adress. Mäklaren tar hand om detta. De som är bekanta med XAP kommer att förstå detta.

Med hjälp av nodröd ställer jag in olika timers (tack till Peter igen för hans bigimer) och slå på lamporna på natten. Med hjälp av ett WEMO -plugin hade jag nu också kontroll över WEMO -lamporna om än bara på och av. Utvecklaren av Node-Red-plugin har lovat dimningskontroll vid någon tidpunkt.

OK, så jag hade nodröd och MQTT-installation men nu behövde jag ett sätt att styra lamporna och switcharna med både röst och någon form av mekaniskt eller beröringsgränssnitt. Jag sprang över några trådlösa switchar från ENOCEAN på Element14-webbplatsen så jag beställde ett par av dem tillsammans med Raspberry PI-ene-modulen som ansluter till GPIO-stiften på PI och använder UART för att kommunicera med nod-RED och ett plugin.

Växlarna har en förmån genom att det inte finns något batteri att installera eller ta hand om. De använder energi skörd genom en spole och magnet som är aktiverad när du trycker på knappen. De kommer tyvärr inte med några väggarmaturer så du måste designa din egen. De tillhandahåller en växelknapp STL -fil som du kan få 3D -tryckt så jag använde detta och skapade min egen montering för dem. Detta serverar två syften, ett för att täcka den gamla omkopplaren på väggen och säkerställa att den förblir i ON -läget så att lampmodulerna alltid är på och för det andra för att hitta kontrollerna på en bekant plats.

Med hjälp av Node-Red Enocean-kontakten får jag en meddelande nyttolast med knappstaterna. Genom att analysera detta i en nodröd switch kan jag skicka lämpligt kommando till ljuset eller switchen etc. Detta är ett exempel på den nyttolast som skickas av enocean-omkopplaren. Det är kodat i JSON -format så enkelt att analysera. ID och V är vad vi är intresserade av.

{“nyttolast”: {“id”: “002d0932”, “v”: “a0 down”, “enhet”: “”, “rssi”: -76, “typ”: “stat”, “eep”: ” F6-02-03 “,” man “:” enocean_gmbh “,” desc “:” rocker switch “,” rv “:” 30 “,” rawbyte “:” 55000707017af630002d09323001ffffffffff4000d “},” _MSGID “:”: “:” 36D4C8F.C192B4B4C ” }

Följande bild visar switchen som har fyra utgångar baserat på MSG.payLoad.v -värdet i telegramet från enocean -omkopplaren. Dessa riktas sedan till lämplig enhet. Jag använder vippfunktionen i MQTT -firmware för att slå på och stänga av enheten från samma switch. Detta innebär att jag har upp till 4 switchtillstånd från varje enocean -modul.

Nu börjar den roliga delen eftersom jag har ett Amazon Echo och jag har alltid velat kontrollera mitt hem med röstkommandon. Du kan skylla på SCIFI för detta

Det finns inget direkt Echo-stöd, åtminstone inte utan att ha en HTTPS-anslutning till din nodröd och det är tyvärr omöjligt med min Internetleverantör så jag behövde ett alternativ. Med hjälp av denna Amazon Echo Habridge från att köra på samma Raspberry PI3 kunde jag inte ställa in röstaktiveringsljus etc. Habidge emulerar ett Philips Hue -api så att Echo ser enheterna du ställer in. Här är ett exempel på en enhet som kallas främre rumfläkt.

Genom att uttala följande på Echo kan fläkten slås på. “Alexa, slå på främre rumfläkten” eller av genom att säga ”Alexa, stäng av främre rumfläkten”

HABRIDGE skickar kommandona till Node-RED via en HTTP-begäran och jag analyserar sedan URL för värdena. Detta är ett enkelt skript som visas nedan.

Hur man gör detta med lågkostnadsmoduler

Efter att ha designat mina egna PCB: er för att ersätta modulerna behövde jag ett sätt att lägga till ytterligare switchmoduler och ljusstyrenheter.

Mitt egna hemgjorda enheter kostar cirka 15 dollar att göra med alla PCB och delarna tillsammans. Så fortfarande låg kostnad.

#
Förhandsvisning
Produkt
Betyg
Pris

1

Jane Choi Raspberry PI 4 B Model B 8 GB Starter Kit (8 GB RAM) -Motherboard 64 GB SD-kort, kylningFläkt,…

121 recensioner

£ 222.99

Köp på Amazon

2

Raspberry PI 400 4GB officiellt startpaket, Storbritanniens layout

215 recensioner

£ 110,56

Köp på Amazon

3

Freenove Ultimate Starter Kit för Raspberry Pi 4 B 3 B+ 400, 561-sidars detaljerade tutorials, Python C …

2 835 recensioner

£ 42,95

Köp på Amazon

För att få detta ännu lägre kom jag över Itead Studio Slampher och S20 Smart Switchar. Dessa är cirka 12 US $ vardera för S20-modulerna och $ 8,50 för ljuskontrollerna så betydande mindre än någon av Z-Wave-modulerna på marknaden. De kommer med Iteads egen firmware som styrs från en iOS- eller Android -app men jag ville kunna använda Peters kod. Peter hade gjort en del forskning om detta och fann att med mindre ändringar i sin kod skulle det programmera in i Itead -enheterna och arbetet. Du behöver en USB till UART med 3.3V -utgång för att göra detta men det är tillräckligt enkelt om du kan utöva ett lödkolv. Den enda nackdelen är att ITead -modulerna kommer med en 512KB -blixt och för att låta Peters kod göra OTA -uppdateringar, måste vi ändra detta till 8 MB. Memory IC: er är cirka $ 3 för 5 på eBay. Beväpnad med en Hot Air omarbetningsstation (låna en vänner om du inte har en) är jobbet snabbt och riskerar inte skadorna på brädorna. Följande bild visar Soic IC -toppen till vänster efter att ha tagit bort den gamla och den nya monterade.

Du måste också löda på en rubrik till den enda raden med 4 hål på PCB. Detta tillämpar kraft på styrelsen och låter dig programmera den med den anpassade MQTT -firmware. Jag har en detaljerad blogg om hur man gör detta.

S20 -modulerna ser väldigt smarta och moderna ut. Strömbrytaren låter dig slå på och stänga av den lokalt. De som visas här är Euro -uttag men Itead kommer att erbjuda både amerikanska och Storbritanniens alternativ mycket snart.

Slampher -modulerna är ES27 -baserade lampkontroller så inte idealiska för Storbritannien för närvarande men de fungerar mycket bra.

Med tanke på att de erbjuder Switch -modulerna som Storbritannien skulle jag förvänta mig att en bajonettversion snart kan komma med. Jag föredrar faktiskt skruvtypen nu för enklare installation.

Dessa är enkla att öppna och modifiera som tidigare med ett ytterligare steg annat än ersättningen av Flash IC och det är att flytta en enda noll ohm länk fr

Leave a Reply

Your email address will not be published. Required fields are marked *