Basic Home Automation med Phidgets (5 / 10 steg)

Steg 5: Mer om koden




Koden använder ajax och json för att synkronisera webbgränssnittet till SBC och mongoose för webbservern (båda nödvändiga jquery och mongoose källfilerna finns i projektmappen för dig). Detta gör att webbsidan så att visa verklig tid uppdaterar från SBC: N på ett ganska rent sätt.

homeAutomation.c är hjärtat i det, så låt oss börja där.

Globals

Överst i filen homeAutomation.c är de globala definitionerna. Måste du ange serienumret för SBC: en du använder, sätta i systemlösenord (det som används för att logga in på webbgränssnittet), index för sensorer och index för det ljus du styr. I det här fallet serienumret är 250000, lösenordet är lösenord, ljussensorn är på ingång 0, sund sensorn är på ingång 2 och är lampan tänd utgång 0.

#define SbcSerial 250000
#define SbcSystemPassword "PASSWORD"
#define LightSensorIndex 0
#define SoundSensorIndex 2
#define Output_Light1Index 0

När du lägger till fler Phidgets, du kan lägga till dem till de globala makrona också.

Vi sätter vissa kalibrering siffrorna och skapat en global CPhidgetInterfaceKitHandle för våra Sbc, som vi döpt till McflySbc.

Tolkning av inkommande data och kalibrering

Vissa kalibreringsvärden sätts också där uppe. Ljussensorns värden ändra från Phidget till Phidget så kolla klistermärket bifogas sensorn för m och b värden och skriv de i.

#define LightCalibrationMValue 1.478777
#define LightCalibrationBValue 33.67076

Funktionen get_data hanterar de ajax-kanaliseras önska meddelanden, som sensorn värden. När du lägger till fler sensorer du ska lägga dem i denna kod i en annan " else if (!strncmp(request_info->query_string, "sound", reqlen))... " gillar villkor uttalande. Du kan kopiera och klistra in befintliga och redigera formeln i inre om det uttalande som behövs. Kolla användarhandboken för enheten för särskilda formler och värden, men ljus- och de är redan klar.

Styra utdata

Funktionen get_data skickar meddelanden till SBC att ändra utdata staterna (som att vända en ljus på eller av). Förfrågningar kommer in via Ajax, som "light1On" och "light1Off" och lämpliga utdata staten ligger på SBC. Du kan ansluta fler lampor i denna mode (ersätter 1 med stigande nummer), eller något annat du vill styra i hemmet (men var försiktig när du arbetar med el och se till att du vet vad du gör, eller be någon som gör, innan jävlas med elektriska strömmar).

Händelsehanteraren

Event_handler ansluter den set_data och get_data fungerar när Ajax blir en send_message eller SbcAttach begär, respektive. Inget att röra runt med här.

Fästa i gränssnittet Kit

window.onload = function() {sätter upp i gränssnittet kit på SBC med proportionerlig, anger sensorn ändra utlösaren till 1 för anslutna sensorer och datan klassar också. När du lägger till fler sensorer måste du lägga till dem i listan och sätta datahastigheten till något i lägre hundratals utbud. För insatsvaror är inte i bruk, har vi ställt datahastigheten till 1000ms.

Index.html är ansiktet av programmet... som de flesta webbsidor, du vet hur det fungerar.

Vi använder jquery och några mycket enkla css. Den jquery filen är tillgänglig online och i källfilerna för detta projekt. Style.css är ganska grundläggande så det inte kommer att förklaras här, men gärna leka med den eller använda en egen formatmall. Du kan kolla in en CSS tutorial på W3 skolor.

Ställa in Ajax-begäranden

Vi börjar med några javascript som anger intervallet för dataförfrågningar SBCn via Ajax. Alla sensorer måste lastas direkt och sedan kontrolleras regelbundet. Du kan ange olika sensorer att ha olika intervall genom att sätta dem i olika setInterval metoder och ändra den andra parametern är antalet millisekunder mellan dataförfrågningar. Se till att ge alla dina sensorer ett unikt och beskrivande namn. Observera att i det här exemplet kommer vi också att avkänning om vårt ljus bifogas SBC är på eller av.

Vi har också element med ID "light1On" och "light1Off" att när du klickar på vi vill skicka en förfrågan via Ajax till SBC. Vi anger funktionen onclick här. Varje element (knappen eller bilden eller vad du vill att orsaka utdata till ändra) behöver ett eget unikt och beskrivande.

var turnon1 = document.getElementById("light1On");

var turnoff1 = document.getElementById("light1Off");

turnon1.onclick = function() {

$("light1On").load('/ajax/send_message?light1On');

$("light1On").load('/ajax/return false;?light1On');

}

turnoff1.onclick = function() {

$("light1Off").load('/ajax/send_message?light1Off');

$("light1Off").load('/ajax/return false;?light1Off');

}

}

/ajax/get_data?light

Observera att vi behåller id namnet på elementet (som "light", "output_light1" och "light1Off") samma som meddelandet som skickas via Ajax till c programmet. Så id visas också i slutet av Ajax begäran (dvs. /ajax//ajax/send_message?light1On?light för elementet "light" och /ajax/else if (else if(!strncmp(request_info->query_string, "[SENSORNAME]", reqlen)?light1On för elementet "light1On"). Du kan ändra dessa meddelanden, och sedan se till variabeln i slutet av Ajax begäran motsvarar vad som finns i c-programmet, men ni kan föreställa er hur förvirrande det skulle få, så vi rekommenderar att hålla dem samma.

Webbsidan Slutligen, kroppen. Tabellcellerna där vi vill sensor värdena som ska visas ges ID Vi använde bara att upprätta ajax begäran. Detta gör det så att deras innehåll uppdateras med varje ny SbcAttach begäran, beskrivs lite tidigare.

Också, tabellcellerna som vi vill använda för att styra lampor ges lämpligt ID ("light1On" och "light1Off") så att när de klickas onclick funktionen skickar Ajax begäran.

Du kan lägga till fler rader för olika sensorer, ger den cell där du vill dina data visas det id som du har valt (som "temperatur", om du hade en temperaturgivare).

Se Steg
Relaterade Ämnen

Smart Home Automation med Android + Ethernet Internet + Arduino

Hemautomation blir mer och mer populära, prisvärda och fascinerar människor. Internet erbjuder sådana möjligheter som aldrig förr. Imponera på dina vänner visar på Smartphone som du kan växla på/av-lampa i din lägenhet miles bort och samtidigt se det...

DIY Smart Home Automation med Android

Smart Home Automation Låt användaren för att styra hem från hans eller hennes telefon och tilldela åtgärder som bör hända beroende på tid eller andra sensormätningar som ljus, temperatur eller ljudet från alla enheter i nätverket hemautomation.VAD KA...

Gest baserat Home Automation med Intel Edison (Intel IoT))

Gest baserade hemautomation är det nya sättet att interagera med elektriska apparater tillgängliga på vårt hus. I detta projekt kommer vi att använda sensorer i stället för kamera för gestigenkänning, eftersom det ger bättre konsistens, miljö oberoen...

Smart Home Automation med Voice command

Detta är en steg för steg handledning bygga kretsen för "Smarta hem Automation med Voice Command" funktionen.Ladda ner vår gratis Arduino projektkod här.Krav:• Arduino Uno• LED• Resistor (220 ohm)• Bluetooth-modul (BlueSmirf / BlueMate Silver)•...

Uber Home Automation med Arduino & Pi

[REDIGERA] Jag skapade ett forum för att samarbeta på gateway kod.http://homeautomation.proboards.com/Board/2/openha...För några år sedan, blev jag en hundägare för första gången. Kändes inte som lämnar Cody i kenneln ensam hela dagen. Jag hade en we...

Home Automation med Raspberry Pi, Arduino, Domoticz, MySensors.

Hej Fellow beslutsfattare,Detta är min första Instructable på Home Automation. Tanken är att bygga en controller och trådlösa noder för att kontrollera och övervaka.Efter en massa hit och prov med många olika styrenheter som OpenHab, DomotiGa, sedan...

Hur: Lägga till röst-Feedback till din Home Automation med länka den en!

Hej alla,Idag ska jag visa dig, lägga till röst-feedback till din Home Automation.Detta kommer alltid att vara en bra tillsats till din hem-Automation-projekt med länk det en eftersom din Linkit ONE skulle lämna en feedback som en "Jag har vänt på ly...

KAOS - Home Automation med röststyrning

Innan jag börjar projektbeskrivningen skulle jag vilja tacka Audrey och Nicole för att ge mig Intel Edison styrelsen med en massa sensorer.I detta Instructable har jag använde Intel Edison för hemautomation med komplett röststyrning. I grund och bott...

Lätt DIY Home Automation (med servo växlar)

detta Instructable handlar om en av livets enkla åtgärder, vända en strömbrytare på och av.På oomlout gör vi det många gånger om dagen, så många faktiskt kom till en punkt där vi frågade oss "Kan vi inte få en Arduino att göra detta?". Naturligt...

Introduktion till Home Automation med Arduino och RF-signaler!

Idag ska jag visa dig en introduktion på hemautomation med RF-signaler.Föreställa sig mitten av vintern, det är kallt och mörkt ute, men tack vare automation du vakna upp till ett varmt och ljust rum, med en varm kopp kaffe ångande vid sidan av sänge...

Små Home Automation med Intel Edison och Microsoft Azure

Sakernas Internet står för "Sakernas Internet" som är en utveckling av Internet där det planeras för varje enhet ha nätverksåtkomst, så att de kan skicka och ta emot data. Och ännu viktigare, att identifiera themselvesto andra enheter.Detta kan...

Home Automation med en Smartphone (TV, Arduino, ljus, säkerhet, projektor, DVD-spelare...)

Dessa dagar de hemautomation enheterna och hem styrning system är mycket populära. Även i gemenskapen av DIY-ers. Så bestämde mig att göra min egen hem kontroll enhet genom att använda Arduino. Enheten kan styras med en mobiltelefon, och här använde...

Arduino MEGA 2560 Home automation med 8 kanal relay

Nästa webbsidorna för de schematiska och kod.Steg 1: Schematiskt Här ser du schematiskt.Bör vara mycket lätt att förstå.Anslut bara det som schematiskt visar.Steg 2: KodenDu måste inkludera SPI och Ethernet bibliotek.Förmodligen måste du ändra IP-adr...

PIR Home Automation

SENSZY (Version 1) - Home Automation med PIRJag är sjuk och trött på att trycka på knappar för att stänga på ljus och fan av mitt rum, så jag tänkte på att göra en automation krets för mitt rum, men jag ville inga knappar att trycka ännu ingen skärm...

SMS-baserade Home Automation system med 1SHEELD

Hej vänner, detta min första instructable och bara vände 16yr gamla för två månader sedan.I detta instructable jag visar hur man gör 5 kanal SMS baserade Home Automation system med 1sheeld. Jag har byggt min egen billigt SSRs med triacs med uppgift L...

DIY Home Automation för nybörjare. Absolut ingen kodning eller lödning behövs. Android/Arduino för att växla saker på och av

Denna instructiable är att den absoluta nybörjaren. Om du kan hantera en vass kniv utan att skära kan fingrarna av dig göra och anpassa denna hemautomation controller.Dessa instruktioner är också on-line på www.pfod.com.au under Android / Arduino för...

ESP8266 Home automation Del1

Alla hört om Home automation. Det är ett intressant tema och många tyckte om att göra hemmet lite smartare. I detta instructable jag visa er mitt sätt att göra ditt hem smartare och några råd att inse det. Jag arbetar med den populära ESP8266 nod-MCU...

ZigBee Home Automation

Bli en ZigBee Home Automation gateway Kinoma skapa och kontrollera din belysning.Steg 1: översiktMånga apparater hemma inkluderar trådlösa lampor som stöder ZigBee hemautomation, en trådlös standard som möjliggör smarta objekt att arbeta tillsammans...

ESP 8266 Wifi kontrollerade Home Automation

ESP8266 är en stor sak för att börja Wifi och IOTDet är också billigt och användas för att göra cool projekt som är anslutna till Internet. Lär dig hur man gör ett enkelt IOT projekt med den. ESP8266 WiFi modul är en fristående SOC med integrerad TCP...