Guide: Arduino sensorer till Veran med MySensors

mysensors

Idag ska vi prata om hur vi kan ansluta Arduino sensorer till Veran. Det är väldigt spännande eftersom det öppnar upp en helt ny värld av billiga sensorer till Veran. Klicka på Read More knappen så berättar vi mer!

Vi börjar med att skriva lite om Arduino. Vad är en Arduino? (På bilden nedan visas en Arduino Uno R3)

ArduinoUno_R3_Front[1]

Arduino är en öppen källkodsplattform. En Arduino är som en liten dator på ett kort som du kan programmera till att göra vad du vill att den ska göra. Du kan styra elmotorer, ljus, ljud, relän, m.m och även ta in information via en Arduino. T.ex. temperatur, fuktighet, luftkvalitet o.s.v via dess analoga och digitala in och utgångar.

Låter krångligt? Nej inte så farligt faktiskt. Att själva koppla upp en tempsensor och visa temperaturen på en Arduino är ingen raketforskning. Men går vi steget längre som MySensors gör, genom att skicka vidare datat till en gateway som sedan pratar med din Vera och lägger upp dessa Arduinos som enheter i Verans gränssnitt. Då pratar vi om en annan nivå. Men som tur var så är det redan nån som har gjort det grovjobbet åt oss 🙂

MySensors.org är ett projekt som använder en gateway som byggs på en Arduino. Denna gateway pratar med Veran via ett plugin som du installerar på din Vera. Sen bygger du ihop olika sensorer och kopplar dessa till en Arduino. Denna Arduino kommer även ha ett litet trådlöst ”nätverkskort” som pratar på 2.4 GHz med din Arduino gateway som förmedlar informationen till din Vera.

Så vilka enheter kan jag använda med MySensors? Det finns en hel mängd t.ex.

Dammsensor.

dust

 

Energimätare som läser av din elmätare.

pulseVera

Barometer.

baroVera

Distansmätare.

distVera

Rfid-läsare.

rfid

Och många fler. Längre ner kommer vi att göra en temperatursensor som även klarar av att mäta fuktighet

Så vad kostar allt? Vill man så går det att komma undan väldigt billigt då mycket finns på Ebay. Du kan hitta länkar till allt du behöver här. http://www.mysensors.org/store/ Men orkar du inte vänta så har även m.nu en hel del Arduino grejer.

Nu kommer vi förutsätta att du redan är bekant med hur du programmerar din Arduino. Om du inte har någon tidigare erfarenhet så rekommenderar jag att börja med ett startkit.

Detta är vad vi ska gå genom nedan i denna artikel.

 

Bygga ihop en Arduino ethernet gateway

 

Vi börjar prata om Arduino gatewayen. Denna Arduino gateway kommer agera förmedlare. Alla sensorer kommer prata trådlöst via 2.4 GHz på ISM bandet till gatewayen. Och gatewayen kommer prata via ett nätverkskort till Veran.

Du kan även bygga en gateway som pratar via USB med din Vera. Jag har valt att bygga en ethernet gateway. Den pratar via nätverket till Veran.

På bilden nedan ser du en W5100 ethernet shield. Den passar rakt över en Arduino Uno R3 som jag har valt att använda som gateway. Så ingen lödning för denna krävs.

$_12[1]

Min gateway behöver ytterligare en sak, nRF24L01+. Vilket är den trådlösa modulen som pratar på 2.4 GHz via ISM bandet med dina andra Arduinos.

nrfTop[1]

Värt att nämna är att den inte heller kräver lödning om du inte vill löda. Det finns nämligen speciella kablar med honor och hanar som passar på stiften som Arduino sensorerna använder. Så plug and play kan man säga. 🙂

amhkjp1343094714224[1]

Så nu ska vi koppla ihop gatewayen. Ethernet sheilden trycks bara på själva Arduinon så den behöver ingen mer inkoppling än så. Men själva nRF24L01+ modulen kräver 7 anslutna kablar. Koppla in modulen enligt nedan. När det står A1 så betyder det analog port 1, står det bara t.ex. 6 så betyder det digital port 6.

gateway

När du kopplat in allt rätt är det dags att flasha in programmet till gatewayen. Börja med att ladda hem den senaste versionen här: http://www.mysensors.org/download/ Starta Arduino IDE som du använder för att ladda upp programmet till din Arduino med. Klicka på File och Preferences för att sedan kolla efter ”Sketchbook location”. Det är där du ska lägga filerna som du nyss laddade hem.

Nu kan du öppna EthernetGateway under MySensors som ligger under File och Sketchbooks menyn.

Det enda du behöver redigera i själva koden för gatewayen är din ipadress du vill att din gateway ska ha och om du vill ändra porten.

#define IP_PORT 5003        // The port you want to open
IPAddress myIp (192, 168, 178, 66);  // Configure your static ip here

Nu kommer en liten luring, ethernet kortet och nRF24L01+ modulen kan bråka när de är inkopplade samtidigt. Så därför krävs en förändring i filen RF24_config.h som ligger i XXX/libraries/MySensors/utility mappen. Öppna RF24_config.h och tabort // som finns framför #define SOFTSPI. Nu kan du ladda upp programmet i din Arduino. Efter det är klart så måste du ändra tillbaka i RF24_config.h så att det återigen står //#define SOFTSPI i filen. Annars kommer du få problem när du programmerar dina andra Arduino sensorer.

To enable soft-spi you just have to edit RF24_config.h which can be found in your XXX/libraries/MySensors/utility folder. Just remove the commented slashes (//) before ”#define SOFTSPI”.

Nu är det dags att installera plugin på din Vera. Börja med att ladda ner dessa filer: https://github.com/mysensors/Vera. Du behöver inte ladda ner filerna i mapparna för att plugin ska fungera. När du laddat ner de 10 filerna som krävs så ladda upp dessa till Veran genom att navigera till Apps\Develop Apps\Luup Files och lägga till de 10 filerna du laddat ner och klicka på GO.

uploadFiles

Om du är osäker på vilka filer du ska ladda ner så är det dessa:

D_Arduino1.xml
D_Arduino1.json
I_Arduino1.xml
L_Arduino.lua
S_Arduino.xml
D_ArduinoNode1.xml
S_ArduinoNode.xml
D_ArduinoNode1.json
D_ArduinoRelay1.xml
D_ArduinoRelay1.json

Nu ska själva enheten skapas, klicka på Create Device och ange filen D_Arduino1.xml under Upnp Device Filename och klicka på Create Device knappen.

createDevice

Om du inte ser MySensors plugin i gränssnittet så klicka på Reload knappen uppe i högra hörnet för att ladda om tjänsterna.

Nu bör du se ett nytt plugin som ser ut något som bilden nedan.

mysensors_plugin

Nu ska du ställa in ipadressen till din Arduino gateway i plugin inställningarna, klicka på skiftnyckeln uppe i högra hörnet och klicka på fliken Advanced och ange ipadressen och portnumret du angav när du programmerade din Arduino gateway.

ipConfig[1]

Stäng och spara dina ändringar med den röda knappen uppe till höger.

Nu har du en fungerande ethernet gateway om du inte ser några felmeddelanden när enheten laddas.

Bygga en Arduinosensor med temperatursensor och hygrometer


dht22

Jag har valt att börja bygga en temperatursensor med hygrometer med bra noggrannhet, DHT-22 heter denna. Det finns även en DHT-11 som är liknande fast med lite mindre noggrannhet och som är lite billigare.

dht11vsdht22

Det vi börjar med när vi ska skapa en sensorenhet till MySensors, är att koppla ihop radiodelen.

Koppla ihop radiodelen


Nedan ser du hur du ska koppla in radiodelen. Där det står 5v->Reg 3.3v är att om du använder en Arduino som inte har 3.3v ut så måste du använda en regulator för att få till rätt spänning. Läs mer om det här: http://www.mysensors.org/build/connect_radio Men använder du en Arduino Uno R3 så har den 3.3v utan att behöva en regulator.

kopplaradionrfTop[1]

Koppla ihop temperatursensorn


När den är inkopplad så är det dags för DHT-22 modulen. Vilket är enkelt eftersom den endast har 3 anslutningar.

dht22koppla humsketch[1]

Nu när du har kopplat ihop allt så är det dags att programmera Arduinon. Starta Arduino IDE och välj Sketchbooks\MySensors\HumiditySensor och ladda upp denna till din Arduino. När denna enhet är i drift drar den runt 30 mAh för mig och vid 5v in via usb porten så blir det ca 0.15 watt. Notera dock att en Arduino Uno inte är den mest strömsnåla varianten av Arduino.

Inkludera Arduino-sensorn med Veran


Nu är det dags att inkludera Arduino-sensorn med din Vera så att enheterna dyker upp i Veran. Stäng av din Arduino tempsensor om den är igång. Gå till Verans gränssnitt och klicka på Start knappen för plugin. Sätt sedan igång din Arduino tempsensor.

mysensors_plugin

Om allt går som det ska så kommer Veran börja jobba med att lägga till dina enheter i gränssnittet. Om du inte ser några nya enheter i Veran efter du väntat några minuter, så klicka på Reload knappen uppe till höger i Verans gränssnitt för att ladda om tjänsterna. Dessa enheter finns nu tillgängliga för mig.

arduinohum arduinotemp

MySensors är ett väldigt bra projekt tycker jag, det är kul att se att det finns personer som har energin till att göra en sån här grej helt gratis dessutom. På http://www.mysensors.org så kan ni läsa mer infomation om projektet och de har även ett forum där medlemmar kan få hjälp av varandra.

Har du problem med räckvidden kan du även kolla in artikeln vi skrev om räckvidd.

Jag kommer förmodligen även att skriva en guide till en Rfid läsare som jag håller på att bygga just nu. Lycka till med era Arduinosensorer! 🙂

8 reaktioner på ”Guide: Arduino sensorer till Veran med MySensors”

  1. Pingback: Problem med räckvidden för dina Arduinos? MySensors | Vi Automatiserar.se

  2. Pingback: RFID läsare till Veran via MySensors |

  3. Pingback: Projekt – Arduino – Hämta Verans Mode V1.0 |

  4. Pingback: Fibaro HC2 & MySensors – Proof of Concept | blog.m.nu

  5. Pingback: Z-Wave kontroller som larm? |

  6. Pingback: Fyndig musdetektor |

    1. Hmm om jag kommer ihåg rätt så körde jag med 1.6. Det var ett tag sen jag skapade någon ny enhet via mysensorns nu.

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *