Dags att fortsätta och kanske slutföra detta projekt... Dock hittade jag lite nya prylar som dykt upp sen jag sist höll på med detta så det blir (minst) en revision till av mitt kort.
Tanken tidigare var att mäta elförbrukning genom att koppla noderna till S0-/pulsutgång på elmätare och mäta tiden mellan pulserna (oftast 1000 pulser/kWh). Dock såg jag att det nu går att få tag på hyfsat billiga elmätare med Modbus RTU (asynkron seriell data över RS-485). Detta gör ju S0-pulserna helt ointressanta då jag via Modbus kan få reda på fler mätvärden och i absoluta siffror utan att vara tvungen att mäta tidsintervall på pulser och hålla koll på ackumulerat värde för total förbrukning.
Via Modbus kan jag direkt få ut spänning, ström, effekt (aktiv/reaktiv/skenbar), effektfaktor, frekvens, och total förbrukning. På trefas-mätarna får jag dessutom alla värden per fas + förhållanden mellan faserna. Mycket roligare alltså och ett måste att ha nu...
Jag köpte ett par elmätare (en 1-fas och en 3-fas) för att labba lite med och implementationen av Modbus var inga problem. Däremot fick jag skumma störningar på RS485-trådarna när jag kopplar in 3-fasmätaren, oavsett var i kedjan jag kopplar in den eller hur lång kabel jag har. Det är iof. inget problem eftersom störningarna har samma polaritet så A och B tar ut varandra eftersom RS485 är differentiell men ändå inget jag tycker borde vara där. Lyckades inte lista ut anledningen till störningarna så jag la på lågpassfilter på A och B bara för att bli av med störningarna.
scope_24.png
scope_35.png
I övrigt kommer jag at byta ut WiFi-modulen jag använt tidigare (Microchip WiFly RN-171) till Bluegiga WF121. Problemet med de förra är att de "emulerar" en seriell lina. Man konfigurerar den genom att gå in i kommandoläge för att ställa in destination (TCP/UDP, IP, port) och när man sedan går ur kommandoläget så kommer modulen att skicka allt som kommer på RX via TPC-/UDP-paket. Jag vill dock kommunicera med flera olika saker. Dels broadcasta mätdata på nätverket, dels periodiskt synka tiden på varje nod via NTP. Dessutom har jag firmware-uppdatering av noderna över WiFi så jag centralt kan säga åt en/flera noder att de ska hämta ny firmware via HTTP. I och med detta så blir det rätt bökigt att hålla på och konfigurera om modulen varje gång jag vill prata med olika saker. De nya modulerna har ett vettigt binärt API där man kan kommunicera med flera olika saker samtidigt. Dessutom har de nya modulerna stöd för SPI istället för UART viket jag tycker är trevligare och går att implementera mycket effektivare i XCore-processorn än UART.
Bland annat på grund av detta blev det till att designa om noderna. De största förändringarna är:
* En annan XCore-CPU med mer I/O då jag behöver lite fler 1-bitars portar och jag hade dem liggande.
* Ny WiFi-modul. Jag behåller dock stöd för den förra eftersom jag får plats med det på kortet.
* Stödet för XBee borttaget.
* Lagt till RS-485 transceiver. Behåller dock S0-stöd om jag skulle vilja använda det någonstans.
* Bytt RJ-45 mot skruvterminaler för 1-wire kommunikation.
Jag har skickat en beställning på några prototypkort som borde komma nästa vecka. Jag ville ha korten hyfsat snabbt så jag valde en tillverkare här i Europa, Eurocircuits i Tyskland som har tillverkning i Ungern (om jag inte minns fel). De är ju inte lika billiga som kineserna men jag slipper vänta en månad på mina kort och den här gången var det värt det...
c-top.png
c-bot.png
Jag blev positivt överraskad av Eurocircuits web-gränssnitt för att lägga beställningar. Mycket smidigt system för att ställa in parametrar inkl. uppladdning av Gerberfiler och grafisk presentation av lagren så man kan se att allt hamnat rätt i stacken. De kör även en online-DRC med grafisk presentation av ev. saker som inte stämmer överens med valda inställningar.
c-ec.png
Det kanske skulle vara dags att nämna lite om vad detta är till för också?
Jag gillar siffror och att mäta saker, inte bara nödvändigtvis för att ha någon nytta av det utan även för att det bara är kul...
När jag köpte mitt hus för många år sedan så körde jag till en början med pelletspanna och där fanns mycket kul att mäta på. Jag tror jag hade ett 20-tal mätpunkter på anläggningen. Allt jag mätte fanns i samma rum så det behövdes bara en insamlingsdator och ett antal meter kabel.
Till slut tröttnade jag på att sköta pelletsbrännaren så jag installerade luftvärmepumpar istället. Nu hade jag ju dock inget att mäta på pelletspannan längre utan började fundera på mätning av värmepumparna. Problemet är dock att de är utspridda och att dra långa kablar var inget alternativ. Alltså borde det bli ett trådlöst sensornätverk för att samla in data från flera ställen i huset och garaget...