Smart Home controller met Sensorflare en Spark Core van deeltje: Lees uw sensor-waardes op Sensorflare (7 / 12 stap)

Stap 7: Beschrijving van de code

Variabelen declareren:

Allereerst is het inbegrepen de bibliotheek op de manier die is beschreven voor. Dientengevolge is de volgende regel in de code opnemen.

 #include "sensorflare/sensorflare.h" 

Voor elke pin dat we verklaren willen als een PWM-uitgang en afstandsbediening via Sensorflare zal worden verwezen een "PWMout"-object en de specifieke pin verbonden. In het voorbeeld dat is aangesloten ontvangen een led op A0, dan het object aangeroepen pwm als parameter A0. De lichtsterkte wordt gecontroleerd op afstand door een generatie van een PWM-signaal met taakcyclus tussen 0 en 255.

 SensorFlare::PWMOut pwm(A0); 

Nu is het noodzakelijk om een object voor elke variabele declareren welke waarde die wij willen kunnen toegang via Sensorflare-platform. De variabelen kunnen worden gepubliceerd op de Spark Core wolk als privé (alleen u kundig voor toegang tot hun waarden zitten zal) of publiek (elk gebruiker van Spark toegang tot hun waarden uit de wolk). Klik vervolgens wordt in het voorbeeld verklaard 2 object varTem en varPin die zal verwijzen naar 2 variabelen die respectievelijk als openbare op vonk en toegang van uw account van de Sensorflare door de temperatuur van de namen en de pir zal worden gepubliceerd. Een andere varLight van één object dat verwijst naar een particuliere variabele op de wolk vonk en zal toegang vanuit uw Sensorflare account door het licht van de naam.

 //Both methods initialized the variable that will be published as PUBLIC <br>SensorFlare::VarPublish varTem("temperature"); SensorFlare::VarPublish varPir("pir","PUBLIC"); //Initialized the variable that will be published as PRIVATE SensorFlare::VarPublish varLight("light","PRIVATE"); 

Moeten worden verklaard de variabelen, die later zal worden gepubliceerd.

 float temperature; float light; int status; 

Tot slot moet worden declareren alle andere die wilde in het programma worden gebruikt.

 int tem_pin=A3; int light_pin=A4; int pir_pin=D0; int new_status; bool change; 

Setup:

De setup-functie een alleen wordt uitgevoerd en wordt meestal gebruikt voor het initialiseren van de variabelen, pin modi en functies. Het is noodzakelijk om de methode "begin()" van elk object dat is gedefinieerd voor te roepen.

 pwm.begin(); varTem.begin(temperature); varLight.begin(light); varPir.begin(status); 

Extra pin dat niet zal afstandsbediening en zullen de digitale invoer Pin voor de PIR-sensor.

 pinMode(pir_pin,INPUT); 

Loop

De functie loop lus opeenvolgend, waardoor uw programma te wijzigen en te reageren.

De opgenomen analoge sensor (temperatuur en foto resistor) biedt, in hun respectieve analoge ingangen van een kern, een spanning tussen 0 tot 3,3 v die in verhouding staan tot de variatie van de temperatuur en licht in de omgeving. De kern gebruikt een analoog digitaal conversie 12 bits die een signaal van 0 tot en met 3, 3V in waarden van 0 tot en met 4095 kaart wanneer de "analodRead()"-functie wordt aangeroepen. Eerst en vooral, het moet worden berekend van de spanning die correspondeert met de waarde lezen.

De specifieke LM335 temperatuursensor geeft een spanning evenredig met de temperatuur in Kelvin met een gevoeligheid van 10mV/K. Dan is de temperatuur in Kelvin zal worden bereikt door de spanning te converteren naar de eenheden van de mV en verdeeld tussen de gevoeligheid. Aftrekken voor definitieve uitdrukking van de temperatuur in de verwachte eenheid (° C), die de conversie van Kelvin is gemaakt door de 273.15 (de bijbehorende 0 in graden Kelvin).

De helderheid, de intensiteit van het licht, kan worden berekend aan de hand van de betrekkingen van de sensor die is verstrekt in het vóór de sectie van de handleiding. Ten eerste is de foto-weerstand waarde in KΩ, waarna de gelijkwaardige helderheid in Lux.

 // Temperature sensor float tem= analogRead(tem_pin); // read the value from the sensor // The returned value from the Core is going to be in the range from 0 to 4095 // Calculate the voltage from the sensor reading float voltage = (tem * 3.3) / 4095; float deg =voltage* 100; // multiply by 100 to get degrees in K temperature = deg - 273.15; // subtract absolute zero to get degrees Celsius //Luminosity float photocell= analogRead(light_pin); // read the value from the sensor // The returned value from the Core is going to be in the range from 0 to 4095 // Calculate the voltage from the sensor reading float Vphotocell = ((photocell * 3.3) / 4095); float rl=(Vphotocell*10)/(3.3-Vphotocell);//Photoresistor value in KΩ float value=500/rl;//luminosity light= (int) value; 

De PIR verstrekt een digitaal signaal (1 wanneer wordt gedetecteerd dat een verhuizing en 0 als er geen bewegende presenteren) die wordt gelezen door de bijbehorende digitale ingang van de kern. De interessante gebeurtenis in dit geval is wanneer de sensor een beweging detecteert, vertegenwoordigen door een overgang van 0 naar 1 (de variabele status zal veranderen hun waarde 1) in de respectieve input wanneer start onderweg en een overgang van 1 naar 0 wanneer stop (de variabele status zullen 0). Vervolgens zal een evenement worden gepubliceerd elke keer dat een overgang in de specifieke pin is gebeurd. De code detecteert de PIR-overgang en publiceren elke keer dat dat gebeurde. Want dit is gebruikt de methode "Publish(Variable,period)" waarin de variabele te publiceren is de status en het is publiceren onmiddellijk wanneer de methode is opgeroepen door Selecteer een periode voor 0.

 //Find the change of state of the PIR sensor. Recognize move new_status=digitalRead(pir_pin); if (status!=new_status){ status=new_status; change=TRUE; } //Publish every time that exist a change in the pin on which is connect the PIR output if (change==TRUE) { varPir.Publish(status,0);//Publish the variable at the called method time change=FALSE; } 

De temperatuur en helderheid moeten worden gepubliceerd periodiek - in dit geval elke 15 seconden is genoeg. De "Publish(Variable,period)"-methode wordt aangeroepen voor elk object waarmee elke variabele die willen worden gepubliceerd door gekoppelde de respectieve variabele te publiceren en een periode van 15 seconden.

 varTem.Publish(temperature,15); varLight.Publish(light,15); 

Gerelateerde Artikelen

Smart Home controller met Sensorflare en Spark Core van deeltje: uw macht bedieningsorganen met Sensorflare

Smart Home controller met Sensorflare en Spark Core van deeltje: uw macht bedieningsorganen met Sensorflare

Hallo iedereen! Dit instructable toont u hoe u uw smart-apparaten met behulp van Sensorflare en Particle core kunt controleren. De mogelijkheden zijn vele... U kunt Particle kern - een beetje bestuur van de ontwikkeling van de Wi-Fi om uw hardware (b
433MHz Smart Home Controller met Sensorflare en een RaspberryPi

433MHz Smart Home Controller met Sensorflare en een RaspberryPi

In dit instructable tonen we hoe een zender 433 Mhz gebruik control uw huis's RF apparaten wel Sensorflare met behulp van een RaspberryPi.Onderdelen vereist:433Mhz zendermoduleRaspberryPi (ieder model)Jumper dradenelk apparaat van RF gecontroleerdact
Tijd-of-gebruik Air Conditioning met een Vera Smart Home Controller

Tijd-of-gebruik Air Conditioning met een Vera Smart Home Controller

Dit Instructable zal tonen hoe te lopen uw huis die HVAC minder vaak tijdens "Time-of-Use" piek uren en potentieel macht rekeningen in halve op extreme dagen snijden. Ik dit met behulp van een smart home controller VeraLite geïmplementeerd en ge
DIY Smart Home Automation met behulp van Android

DIY Smart Home Automation met behulp van Android

Smart Home Automation laat de gebruiker te bepalen van het huis van zijn of haar telefoon en acties die afhankelijk van tijd of andere sensor lezingen zoals licht, temperatuur of geluid vanaf elk apparaat in het netwerk van de Home Automation gebeure
Smart Home Automation met Voice command

Smart Home Automation met Voice command

Dit is een stapsgewijze tutorial bouw van het circuit voor 'Smart Home Automation met Voice Command' functie.Download onze gratis Arduino Project Code hier.Vereisten:• Arduino Uno• LED• Weerstand (220 Ohm)• Bluetooth-Module (BlueSmirf / BlueMate Zilv
Smart Home Automation met Android + Ethernet Internet + Arduino

Smart Home Automation met Android + Ethernet Internet + Arduino

Domotica wordt meer en meer populair, betaalbare en fascineert mensen. Internet biedt dergelijke mogelijkheden als nooit tevoren. Maak indruk op uw vrienden tonen op Smartphone, dat u kunt aan/uit-lamp in uw appartement mijl afstand schakelen en tege
Smart Home Monitoring met behulp van Edison

Smart Home Monitoring met behulp van Edison

Voor frequente reizigers en degenen die hebben meerdere huizen en degenen die hebben om te schakelen tussen hen vaak, is Smart Home profiel een Home Automation-oplossing die is opgelost zijn behoefte om nogmaals zijn persoonlijke voorkeurenStap 1: Se
NES-controller met 8gb geheugen / leds verlichting van het logo

NES-controller met 8gb geheugen / leds verlichting van het logo

All hail The Nes, niets kan worden gedaan om het te maken beter. Dus ik dacht, is dit zo cool! Ik heb alleen gekregen glimlacht wie heeft gezien. Mensen heb leds in als dit voor, en usb memorys, maar niet zoals dit, en niet met een reguliere originel
Bluetooth WS2811 Controller met Windows Phone en Launchpad van de MSP430G2

Bluetooth WS2811 Controller met Windows Phone en Launchpad van de MSP430G2

Kijk naar de video, dan zie je wat je hier krijgt.Tegen de hype van Android en Arduino is mijn project gebaseerd op Windows Phone 8 en een microcontroller van Texas Instruments.Ik heb niets tegen een randgroep, en ik ben zo blij over dit :-)Indien u
Controle FlappyBird met een ballon, het gebruik van de Barometer Arduino Sensor voor Input

Controle FlappyBird met een ballon, het gebruik van de Barometer Arduino Sensor voor Input

in dit instructable zullen we creëren een druk knop als input voor games, die vergelijkbaar met een gewone digitale knop is maar in plaats van schrijven 1 of 0 we zal schrijven de variatie in druk als we druk op of vrijgeven en de flappy bird dienove
LinKit één-Water niveau Controller met WIFI weergave en instellingen

LinKit één-Water niveau Controller met WIFI weergave en instellingen

Water niveau controller al gedaan met behulp van de Arduino Uno en migreren naar Linikit een. Maar niet tevreden omdat ik niet alle middelen in Linikit een gebruiken. Zo plan voor het gebruik van de functies van de Linikit een volledig. Dus is draadl
40 x RGB LED Controller met 8-bits PWM en selecteerbaar patronen

40 x RGB LED Controller met 8-bits PWM en selecteerbaar patronen

UPDATE: Deze controller is vervangen door de veel beter 48 kanaal Mono / 16 kanaals RGB LED Controller, met USB-aansluiting en compatibiliteit van de ColorMotion . Bezoek http://www.chromationsystems.com/48channled.html voor meer informatie koppeling
LinKit one - Home Automation met Bluetooth Controller Android App

LinKit one - Home Automation met Bluetooth Controller Android App

Alle opties zijn voorzien van slimme telefoons. Slimme telefoons maken ons werk zeer gemakkelijk en maakt ons lui. Draai in- en uitschakelen met behulp van slimme telefoon met Blauwe tand huistoestellen is in de markt, maar de kosten hoog. Dus DIY Bl
Rocket's opdracht Centreren - met behulp van Spark Core

Rocket's opdracht Centreren - met behulp van Spark Core

Toevoegen leven voor een oude poster in huis met behulp van een vonk kern, die Wi-Fi module postzegel-en kleinbedrijf is voor interactie met de fysieke dingen en Neo-pixels die zijn uiterst kleine slimme LED's.In mijn geval is het een poster van mijn