Fjärravläsning av Kamstrup Omnipower elmätare (Umeå Energi m.fl.) av SM2GCT, del 2

För att kunna ta emot data krävs en enkel anpassning till det elektriska gränssnittet på HAN P1, det är helt enkelt en inverterare med en bipolär pnp-transistor och tre resistorer. Jag har använt en BC558 och 3 st 820 ohm resistorer vilket fungerade bra.

 Skärmbild från 2023 03 17 20 56 43 
Schema för anpassning av gränssnitt

Flatkabeln från RJ12-hanen som kopplas in i HAN P1 innehåller sex ledare, lite pilliga att skala och löda. Håll reda på vilken ledarfärg som hör till vilket nummer i P1-interfacet! Alla ledare utom nummer 4 används, två till +5V och två till 0V, en till inverterarens ingång. Spänningarna tas från USB till serie-interfacet, utgången på inverteraren går till interfacets RX-ingång.

DD 1RJ12plug 127069224

Skärmbild från 2023 03 17 21 25 26 
Anslutningskabel 6-pol RJ-12 med beskrivning av signaler.

Om P1-dokumentationens uppgifter stämmer så utgörs in- och utgång av optokopplare och alla ledningar är helt galvaniskt åtskilda från elnätets alla ledare. Schemat stämmer inte helt, men fungerar bra som indikation.

Skärmbild från 2023 03 17 21 29 26
  Förenklad bild över optokopplare

Jag använder sådär 10-12 m flatkabel från mätaren och ned till platsen där inverterare och USB-interfacet finns, inga problem hittills.
20230221 105801 USB serie 1
  Så här ser mitt färdiga bygge ut..

Observera att signalnivåerna är 0 till 3,3V på Rpi-ingångarna! 3,3V och 0V kan då tas i stället för 5V och 0V från 40-poliga stiftlisten på Rpi till inverteraren. (inte testat..)

Om du har tillgång till oscilloskop kan du kolla om ledning nr 5 visar den seriella signalen, den ska visa pulser mellan 0 och 5V (eller 3,3V). Signaleringen är snabb, 115200 bits/s, så varje datapaket som sänds varar bara ca 50 ms.

Om allt verkar fungera så långt är det dags att läsa in sända data i datorn. Här skiljer det sig mellan Linux och Windows. På en Linux-burk hittar du USB-interfacet på ‘/dev/ttyUSBx’ och på Win som ‘COMx’.

Här [kamread-exempel.py] kan du se exempel på ett rätt simpelt sätt att läsa in data och tolka det i Python 3.8. Här [kamread-exempel-noreadser.py] är samma exempel men med simulerad serieport.

Koden är inte alls elegant, utan är skriven för att visa en princip. Den fungerar dock och kan användas direkt under Linux Python, avkommentera de sista tre raderna så sparas tid och data i en .csv-fil som kan läsas in i LibreOffice eller motsvarande. Ändra där det skiljer mellan OS och koda på.

När USB-interfacet har aktiverats av programmet kan man eventuellt se att data kommer, en lysdiod på interfacet blinkar till ett ögonblick ifall sådan finns.

Furas hemsida använder cookies. Välj alternativ Samtycker eller Neka