Målet med projektet är att få till en enkel och billig lösning med Tagg, Basen bygger på Arduino, kommunikationen ska gå över Ethernet. Till en början så kommer jag att bygga kommunikation över fysisk nätverkskabel, senare är tanken att detta ska köras med Wifikortet ESP8266 (Vilket jag har beställ och väntar på) men tills dess så kör jag med kabel.
Jag kommer att uppdatera denna post löpande med koder, nyttjad hårdvara allt eftersom jag hinner med.
Status:
2014-12-17 – Buggfixar och delning av V2 stabil kod. En hel del jobb finns dock kvar med att snabba upp koden och bryta ner den som funktioner.
2014-12-07 – Arduinon kommunicerar nu direkt med Veran och en virtuell on/off switch
2014-12-04 – Har kommit en bra bit med projektet redan! har fått kommunikationen från RFID läsaren till Webbserver riktigt stabil. kommer att fortsätta under helgen med detta.
Önskat resultat:
- Larma på och av med Tagg. – Check 2014-12-17
- Kommunikation över Ethernet. – Check 2014-12-04
- Taggens ID skickas över Ethernet – Check 2014-12-04
- Direkt styrning av Vera Lite. – Check 2014-12-07
Touchknapp + Tagg för att larma på eller av- Knapp + tagg för att larma på eller av – Check 2014-12-07
- Larmstatus via LED. – Check 2014-12-07
Följande komponenter behövs för att komma igång med projektet:
- Arduino Uno Rev 3
- Ethernet Shield
- RFID reader (RS232 UART 13.56MHZ RFID Reader Writer)
- Taggar och kort.

Efter att ha letat lite på tillverkarens hemsida av RFID Läsaren så hittade jag ett bra exempel som jag valde att utgå ifrån, koden visar där hur man skickar en 0X02 för att sätta läsaren i ett läge så att alla kort som hittas skickas vidare på COM porten. Läsaren är mycket träffsäker och rapporterar alltid korrekt id.
Textfilen innehåller allt som behövs för att läsa en tagg till COM porten, jag behövde inte göra någon konfiguration i koden utan koden är precis samma som leverantören har på sin hemsida.

Efter att ha lyckats få till RFID läsningen bra så började jag att konfigurera nätverksdelen i projektet, koden bygger på exempel som finns i Arduino applikationen default. utan större modifiering så hämtar den nu IP adress från DHCP server samt kopplar upp till ett Powershell script som agerar webbserver.

Under uppstart så har jag valt att konfigurera Arduinon att skicka ”uppstartCardReader” till min webbservern, när detta är utfört så ska Arduinon gå vidare in i Loopen där sedan kortläsaren kommer att ligga.

Det va nu det svåra i projektet började, att skriva om koden från RFID och Ethernet till en enda lösning. Det första problemet va att Arduinon inte kopplade upp kortläsaren alls när den gick in i loopen. Lösningen på detta blev att granska båda koderna och se vad som missats när jag gjorde om koden. Felet va att jag helt enkelt…. missade att öppnat en seriell kommunikation mot kortläsaren i setup delen av Arduinon. Så fort detta va gjort så kunde jag nu få in data via COM porten. Men nu uppkom nästa problem eftersom kortläsaren är tidskritisk, jag började med att skicka varje HEX byte som lästes från kortet direkt till webbservern, detta gjorde att jag in han få in all information konsekvent. Så lösningen fick bli att samla alla HEX i en enda lång textsträng, och sedan skicka data till servern. Detta gjorde att jag nu fick 100% success på läsningarna.

Nedan är resultatet av en inläst tagg som sedan skickats över Ethernet från Arduinon till en webbserver. Siffrorna ska egentligen vara en HEX, detta kommer att korrigeras så fort jag går igenom koden igen. Eftersom jag nu kan skicka taggen som en enda lång sträng så skulle det även vara möjligt att börja kommunicera direkt med min Vera Lite.

Jag kommer att uppdatera löpande i tråden, så fort jag har snyggat till Arduino koden och fått till nått mer så kommer jag även att lägga ut den, så är det någon annan är intresserad av att bygga detta själv så kommer det snart mer.
2014-12-07:
Har nu modifierat koden och adderat knapp, dioder samt skapat direkt kommunikation med Veran, Arduinon aktiverar en Virtuell ON/OFF switch inne i veran. Tyvärr så har jag fått en hel del problem på vägen som kommer ändra min design… Jag fick helt skippa touchknappen och istället använda en vanlig micro brytare. Dioden visar då senaste statusen som skickades till Veran från Arduinon.
Eftersom jag nu inte hittade nått bra sätt att särskilja så att veran enbart accepterade vissa taggar så kommer jag att skissa lite mer innan jag kan färdigställa detta.
Genom att hålla ner knappen och visa taggen så larmar man nu på.
Genom att enbart visa kortet så skicka en avstängning till Veran.
Koden kommer så fort jag kommit på hur jag ska hantera olika taggar…
2014-12-17 – Uppdatering
Lösningen är nu redo att delas, för tillfället så fungerar RFID till Vera Lite på ett mycket enkelt sätt.
Har nu kommit så långt att jag litar på lösningen, kommer att göra om koden helt innan jag driftsätter och gör en snygg paketering. I nuvarande version så hårdkodas taggarna i Arduinon, senare så ska detta flyttas direkt till RFID läsaren eller till Veran.
* Möjlighet att hårdkoda 5 giltiga taggar i Arduinon.
För att lägga till egna taggar ändra detta i koden, för att se id ladda upp programmet och öppna serie kommunikation, kontrollera vad din tagg rapporterar under loopen ”Ogiltig tag hittad” 12312123 följande placerar du sedan under korrekttagg.
Tänk på att ändra följande i koden:
KorrektaTaggarX – Taggar som ska vara giltiga i systemet.
Mac – Unik Mac adress
IP Address – IP på din Arduino så vida en dhcp inte ges.
server – IP till din vera anges här controller.
Ändra båda länkar nedan så att ID stämmer med id inne i din vera. dvs DeviceNum=”Ditt ID”
MyWebRequest1 = ”GET /data_request?id=variableset&DeviceNum=43&serviceId=urn:upnp-org:serviceId:VSwitch1&Variable=Status&Value=1 HTTP/1.1”;
MyWebRequest1 = ”GET /data_request?id=variableset&DeviceNum=43&serviceId=urn:upnp-org:serviceId:VSwitch1&Variable=Status&Value=0 HTTP/1.1”;
Arduino Projektet: RFIDV2stabil
Skriv gärna om det är nått mer ni vill att jag ska försöka få med i lösningen eller kom med åsikter 🙂
// Markus

Skribent:
Markus Jakobsson har i mer än 10 år delat med sig av erfarenhet inom smarta hem på bloggen. Han har testa det mesta och lärt sig massor på vägen, något han delat med dig här på bloggen.
Du kanske uppskattade och fick nytta av det här inlägget och vill hjälpa sidan Automatiserar.se?
Swisha gärna en slant till kaffe på 0705470065 om du vill stötta bloggen.
Då visar du oss att det du läste på Bloggen skapar värden och uppskattas.
Vi kan dessutom fortsätta driva sidan helt utan reklam.
Du kan även stötta bloggen genom att köpa någon av våra smarta hållare.
Alla bidrag vi får går till att täcka driftkostnaderna hos webbhotellet och köpa sensorer till bloggen.
Om bloggen:
Markus driver sidan helt på fritiden och ideellt. Därigenom är jag helt oberoende och kan ärligt skriva om allt bra och dåligt på tekniker vi testar på bloggen.
Vi hoppas att du som läsare hittat ett inlägg som hjälper dig att automatisera mera.
TIPS:
Vill gärna tipsa om ett inlägg där du hittar grupperad information om smarta hem: Automatiserar.se/smarta-hem/
Skulle du mot förmodan inte hittat det du sökte kommer du troligen hitta det här: Automatiserar.se/sok-om-hemautomation/
Vill du diskutera smarta hem så har vi en kanal på Facebook med +7000 medlemmar: Smartare hem & Hemautomation | Facebook
Sedan början av 2023 har vi skapat mer material på Youtube kanalen: Stötta oss gärna genom att kolla in filmerna där och följa kanalen
Stort tack för att du tog dig tid att läsa vårt inlägg.
Med vänliga hälsningar Markus Jakobsson
Allt går att automatisera!
Pingback: SMS gateway / Vera |
Pingback: Guide – Vera UI7 – My Modes | Vi Automatiserar.se