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.

RFID- Larmat

 

 

 

 

 

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:

Rfid, Ethernet, Arduino Uno Rev3

Rfid, Ethernet, Arduino Uno Rev3

 

 

 

 

 

 

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.

Arduino – RFID

Kommunikation över COM porten.

Kommunikation över COM porten.

 

 

 

 

 

 

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.

Konfigueration av Ethernet klient.

Konfigueration av Ethernet klient.

 

 

 

 

 

 

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.

Första post mot webservern.

Första post mot webservern.

 

 

 

 

 

 

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.

Sammankoppling av Ethernet och RFID

Sammankoppling av Ethernet och RFID

 

 

 

 

 

 

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.

 

Första taggen skickades nu korrekt till webservern upprepade gånger.

Första taggen skickades nu korrekt till webservern upprepade gånger.

 

 

 

 

 

 

 

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.

RFID- Larmat

 

 

 

 

 

Genom att hålla ner knappen och visa taggen så larmar man nu på.

 

RFID-Larmat

 

 

 

 

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

Projekt RFID => Vera Lite.
Ge ett betyg på innehållet