Domotica met Arduino... En JavaScript! (5 / 6 stap)

Stap 5: Sockets met de server en de Arduino gebeurtenisafhandeling


Nu we onze socket gebeurtenis-handler hebben / emitter aan de kant van de client, moeten we ervoor zorgen dat werken aan serverzijde, vergeet niet dat wij al geïnstalleerd socket.io module op de tweede stap, dus we moeten alleen de volgende regels toe te voegen aan onze server.js-bestand instellen:

 var socket = require('socket.io');<br>// Creating a socket var io = socket(server); // Retrieving client info via socket when a new connection (only one for this project) is established io.sockets.on('connection', function(socket) { // Get dimmable light value from the UI and send it to the arduino socket.on('dimmable-led', function(value) { console.log('Dimmable LED value is now: ' + value); dimmable_led.brightness(value); }); // Living room and other rooms lights can be controlled via UI socket.on('living-room-light', function(state) { console.log('Living room light is: ' + state); living_room_light_pin_led.toggle(); }); socket.on('other-rooms-lights', function(val) { other_rooms_light_pin_led.toggle(); }); }); 

Zoals u zien kan, zijn we nu gebeurtenisafhandeling van de client, ophalen van berichten en de arduino reageren op hen, waardoor de LED dimmen en schakelen aan / uit de woonkamer en de andere kamers lichten.

Na dit moeten we uitstoten van gebeurtenissen naar de client te wijzigen van de UI bij het ophalen van gegevens/veranderingen van de arduino, dus in onze code arduino moeten zal toevoegen en veranderen sommige van de regels.

Op de code van de woonkamer:

 photoresistor.on('change', function() { if(this.scaleTo([0, 100]) < 60){ living_room_light = !living_room_light; living_room_light_pin_led.on(); io.sockets.emit('photoresistor-change'); // this is new console.log('photoresistor-change'); } }); <br> 
 living_room_button.on("release", function () {<br> living_room_light = !living_room_light; living_room_light_pin_led.toggle(); io.sockets.emit('living-room-light-pushbutton', null); //this is new console.log('living-room-light-pushbutton'); }); 

Op de andere kamers-code:

 other_rooms_light_button.on("release", function () { other_rooms_light = !other_rooms_light; other_rooms_light_pin_led.toggle(); io.sockets.emit('other-rooms-change'); console.log('other-rooms-change'); }); 

Voeg de volgende regel aan het begin van de callback van de.on("data",...)-functie op de temperatuur meten net code:

 io.sockets.emit('temperature', this.celsius.toFixed(2)); 

En op de achtertuin lichte code:

 backyard_light_button.on("release", function() {<br> backyard_light = !backyard_light; if(backyard_light) { backyard_light_pin.high(); console.log("Backyard light is on"); io.sockets.emit('backyard-light-change', 1); //this is new } else { backyard_light_pin.low(); console.log("Backyard light is off"); io.sockets.emit('backyard-light-change', 0); //this is new } }); 

Thats it, onze code moet werken nu, ga naar de opdrachtregel en de server wordt uitgevoerd

 node server 

En ga in uw browser naar http://localhost:3000, die moet u een UI als weergegeven in de bijgevoegde foto, zijnde kundig voor interactie met uw Arduino met de UI en vice versa.

Ik gehecht mijn eigen script.js-bestand, zodat u een kijkje kunt nemen.

Gerelateerde Artikelen

Inleiding tot de domotica met Arduino en RF-signalen!

Inleiding tot de domotica met Arduino en RF-signalen!

Vandaag ga ik Toon u een inleiding op huisautomatisering met RF-signalen.Stel je het midden van de winter, het is koud en donker buiten, maar dankzij automatisering u wakker worden met een warme en lichte kamer met een warme kop koffie stomen langs d
MyHome - domotica met Arduino en XBee

MyHome - domotica met Arduino en XBee

*** update ***Ver 2.0-toegevoegd Nexa outlet zuigkrachtregeling-toegevoegde één draad temperatuursensoren-toegevoegde controle van materiaal via de gebeurtenissen van de kalender van Google***********************Hoi allemaalDit is het verhaal over mi
Domotica met Raspberry Pi, Arduino, Domoticz, MySensors.

Domotica met Raspberry Pi, Arduino, Domoticz, MySensors.

Hallo collega-makers,Dit is mijn eerste Instructable op Home Automation. Het idee is het bouwen van een controller en draadloze knooppunten controle en monitor.Na een heleboel hit en proef met veel verschillende controllers zoals OpenHab, DomotiGa, g
Home Automation met behulp van RF-Transceiver met Arduino Micrcontroller

Home Automation met behulp van RF-Transceiver met Arduino Micrcontroller

Dit project laten zien voor het ontwerp en de ontwikkeling van een Home Automation systeem met behulp van RF-Transceiver gecontroleerd door Arduino Micrcontroller. De gebruiker zal verschillende indoor apparatuur zoals bollen, deuren en fans met behu
Bedien uw Tv, Dvd en Audio systeem met Arduino en Android

Bedien uw Tv, Dvd en Audio systeem met Arduino en Android

Hallo iedereen, dit is mijn tweede instructable en mijn eerste in het Engels, dus, sorry voor de fouten.Ik wil delen dit project die het gaat over hoe u kunt uw Tv, DVD en uw audiosysteem met Arduino en een app voor Android gemaakt met app uitvinder.
IoT stopcontact met Arduino en ESP8266

IoT stopcontact met Arduino en ESP8266

In dit instructable, ik u tonen hoe verbeterde toegankelijkheid, intelligentie en connectiviteit toevoegen aan een gewone stopcontact. Dit wordt gedaan met een combinatie van microcontrollers, Arduino, diverse sensoren, ESP8266 en een mix van softwar
Home Automation met Arduino, Buttons, LCD, EEPROM en slimme telefoon

Home Automation met Arduino, Buttons, LCD, EEPROM en slimme telefoon

Nu kunnen we de controle van romp huis met slimme telefoonStap 1: Hardware vereist voor domotica kunt u verschillende dingen, ik kies schakelen of relayIn dit project u zal bepalen switcher door mobiele .if mobiele niet aanwezig is kunt u ook bediene
LED kubus met Arduino en aangepaste PCB

LED kubus met Arduino en aangepaste PCB

dit instructable details over het ontwerp en bouwproces voor een 5 x 5 x 5 LED-kubus, instelbaar met behulp van een Arduino, die zich op een aangepaste printplaat bevindt.Extra informatie, foto's en video's vindt u op mijn website.Het afgewerkt produ
Een Levitating bol draait gloed en knippert met Arduino

Een Levitating bol draait gloed en knippert met Arduino

Een levitating little Death Star in Instructables nodigde me aan het nieuwe project met Arduino. Drie beleidsterreinen werden besloten en bewaard als onderscheid met de voorloper.Doe het zelf met geen (of minder) ready-made.Draaiende houden.Maak gloe
PHloat2 DIY zuur water testen sculptuur & kit met arduino

PHloat2 DIY zuur water testen sculptuur & kit met arduino

pHloatpHloat is een DIY kit die is gemaakt voor gebruik in combinatie met een pre-owned / reeds bestaande arduino microcontroller. Het doel is het testen van de pH-niveaus in de lokale rivieren, meren en stromen als gevolg van de toestroom van lucht-
Kamertemperatuur in Dot-Matrix beeldscherm met Arduino en LM35

Kamertemperatuur in Dot-Matrix beeldscherm met Arduino en LM35

Hey daar!Dit is mijn eerste instructable, en ik zal je laten zien hoe u een temperatuursensor en een Dot-Matrix beeldscherm met arduino in real-time kunt interface.Ik heb bijgevoegd de arduino schets, die nogal groot in één oogopslag is, maar als u o
Aan de slag met Arduino - twee speler Arduino Pong

Aan de slag met Arduino - twee speler Arduino Pong

In deze tutorial gaan we een arduino gebaseerde controller die we gebruiken kunnen om te bepalen van een spel voor 2 spelers van pong bouwen.We gaan een paar van dial potentiometers (het draaien van knoppen) gebruiken om te controleren de pong vleerm
Mood Lamp met Arduino

Mood Lamp met Arduino

Hallo! In deze tutorial leert u om een mood lamp met arduino.Ik weet dat je hebt misschien een heleboel mood lamp projecten met arduino gezien, maar ik was zeer tevreden met hen niet, omdat ze allemaal heel abrupt de kleur wijzigen. Dus, heb ik beslo
AtoZ van RC hobby + DIY radio met ARDUINO

AtoZ van RC hobby + DIY radio met ARDUINO

Wikipedia omschrijft RC-voertuig alsEen afstandsbediening voertuig is een voertuig dat op afstand wordt bestuurd door een betekent dat de beweging met een externe oorsprong niet tot het apparaat beperkt. Dit is vaak een bedieningsorgaan radio, kabel