Arduino och MQTT

Bestämde mig för att försöka lära mig lite mer om Arduino och MQTT. Tyckte det dels lät lite spännande, och att man kanske kan få ner priset på sina sensorer i framtiden.

Idag hade jag 30 minuter över och kunde försöka fixa till det sista i programkoden som jag labbat med i Arduinon. Det visade sig fungera bra och den publicerar nu temperatur och fuktighet till MQTT servern. Min MQTT-server består av en Raspberry Pi 2 med Rasbian installerad som kör Mosquitto (MQTT Brokern). Nästa steg är att OpenHab, som ligger på en annan Raspberry Pi server, ska prenumerera på dessa värden och anväda dessa i sitt regelverk samt publicera värderna i gränssnittet (så som surfplattor och telefoner).

Hårdvaran jag använder är en vanlg Arduino UNO och en Ethernet Shield. Jag köpte också en temperatur och fuktighetssensor från Kjell. Dock blev denna rätt dyr jämför med vad jag hade räknat med. Men tanken är att enheten med Ethernet Shielden endast ska användas som gateway och inte som själva sensorn. Sensorerna ska istället använda sig av ett trådlös koppling för att få ner priset, fanns att köpa på tradera för ca 60 kr. Det finns även billigare kopior av Arduinos orginal UNO R3 som är något billigare.

Får återkomma med lite mer detalljer när jag provat sista steget med OpenHab.

Läs mer om MQTT och Arduino här:
http://mqtt.org/
http://www.arduino.cc/

Guide: Lägga till en Z-Wave enhet

Jag har köpt in ytterliggare två enheter och nedan beskivs de steg jag tog för att få in av av dom i systemet. Klicka på "Läs Mer" för att se hela guiden. Guiden förutsätter att du kör OpenHab i en RaspberryPi (det är iallafall där jag kör). Även att det finns ett script som heter "openhab.sh" som används för att starta upp OpenHab.

Först av allt så behöver jag stoppa OpenHab.
sudo /etc/init.d/openhab.sh stop

Sedan behöver vi starta Z-Wave gränssnittet:
sudo /etc/init.d/z-way-server start

Läs mer

Nuvarande regeluppsättning i OpenHab

Man har lekt runt lite med regelverket i hemautomationsapplikationen "OpenHab" och försökt satt upp lite regler. Jag ska försöka förklara reglerna nedan. Klicka på "Läs mer" för att se reglerna i sin helhet. Ni kan läsa mer om "Hemautomations"-projektet genom att klicka här, eller gå in i menyn "Hemautomation" ovan.

Länk till syntax för tiden (cron): http://www.nncron.ru/help/EN/working/cron-format.htm

  • DetectedMotion()
    • Kontrollerar vilken tid på dygnet det är om klockan är mellan 00.00 - 05.00, så ska den sätta en "counter" om att det faktiskt är mitt i natten som den identiferat en rörelse.
    • Den kontrollerar sedan helt oberoende av tiden, den faktiska ljusnivån. Är ljusnivån under 60 lux så ska lamporna tändas.
  • LightOffNightMotion()
    • Kontrollerar och släcker ljuset varje kvart mellan 00.00 - 05.00. Dock hanterar den först en counter också, så princip släcks det efter ungefär 30 minuter efter att en röresle harupptäckts.
  • SystemStarted()
    • Skickar ett mail när applikationen OpenHab startats.
  • WorkDayTurnLightsOn()
    • Under vanliga veckodagar ska lamporna redan vara tända när väckarklockan ringer. Så man ser något medans man gnuggar sig i ögonen...
  • WorkDayTurnLightsOff()
    • Under arbetsveckan ska lamporna släckas kl 22.00, får då har vi oftast gått och lagt oss.
    • De ska även släcka precis när jag har gått till jobbet, så de inte står på i onödan hemma.

Läs mer

Om Projektet

Eftersom man i grund och botten är väldigt teknikintresserad lämpar det sig naturligt att även inkludera lite teknik i det nya huset. Tanken är att testa lite "Hemautomation" och försöka implementera det i huset till en rimlig nivå. Första steget är att hantera lampor/sensorer med don av typen "Z-wave" i ett centralt system där hjärtat är en liten dator som delar ut detta till telefoner/ipad/hemsida. Jag kommer även ge mig på att att skapa regelverk för automatisering av dessa, tex att vi ett visst klockslag släcka lampor, eller att tända lampor när man kommer hem.

Det finns många olika system att välja mellan och jag har valt att satsa på "Z-wave" som har tvåvägskommunikation till skillnad från tex "Nexan" vars enheter endast kan ta emot signaler. Med "Z-wave"-enheterna kan jag skicka signalen "Tänd Lampa", och enheten skickar tillbaka "Jag har tänt". Detta är inte möjligt med "Nexan" då vi endast kan skicka signalen "Tänd Lampa", men vi har ingen aning om den faktiskt har tänt.

Mjukvaran som ska hantera alla regler och kopplingar är gratis, jag kommer att testa något som kallas "OpenHab". Jag kommer att installera allting på en lite minidator som kallas "Raspberry PI B+" med operativsystemet "Rasbian". För att datorn ska kunna prata med alla mina "Z-wave"-enheter måste datorn kompletteras med ett transreciver kort för att kuna ta emot/skicka signaler. 

Idag har jag ett fungerade system som läser av en "Multisensor" för fuktighet/temperatur/ljusstyrka/rörselse och jag kan tända/släcka fyra stycken lampor samt publicera informationen på webben och i alla våra telefoner/surfplattor. Jag kommer gå in lite mer i detalj på hur allt hänger ihop lite senare, dvs när jag har tid att skriva.

Skärmdump på min nuvarande uppsättning i OpenHab:

 

 

Hårdvara:

 

OpenHab

OpenHab är en mjukvara som kan hantera flera olika hemautomationssystem och sy ihop alla system till ett. OpenHab har ett kraftfullt regelsystem som sträcker sig över alla olika hemautomationssystem som applikationen kan hantera. En av de stora fördelarna är att det är "OpenSource" och att det drivs av en stor och stadigt växande community.

Läs mer om OpenHab på deras hemsida:
http://www.openhab.org/features.html

Mjukvara

Här kommer vi presentera information om mjukvaran som används i Hemautomationsprojektet.

Fler artiklar...