Intelly keuken (5 / 7 stap)

Stap 5: Code uitgelegd

Apparaat-id en het apparaat geheim worden gebruikt voor het verifiëren van het fysieke object (zoals Edison, Arduino, Raspberri PI,..) met Lelylan. Als u de referenties van het apparaat open op het Dashboard, selecteer het zojuist gemaakte apparaat, klik op instellingen en kopieer de apparaat-ID en het geheim van het apparaat.

/ * Apparaatinstellingen * /

var apparaat = {id: '', geheime: ''}

Lelylan gebruik MQTT, een publiceren abonneren protocol voor het Internet van dingen. Om te communiceren met de Edison Lelylan maken die u wilt instellen van twee onderwerpen: één ontvangen berichten van Lelylan (inTopic) en verzenden van berichten naar Lelylan (out/opic). Deze onderwerpen zijn uniek en geïdentificeerd door de apparaat-id.

var inTopic = ' apparaten /' + device.id + '/ krijgen' / / ontvangen van berichten,

outTopic = ' apparaten /' + device.id + '/ set'; berichten publiceren

Elk apparaat in de Lelylan wordt gekenmerkt door een type, die op zijn beurt wordt geïdentificeerd door een lijst van eigenschappen, functies en statussen (meer informatie op de dev center). Voor dit project dat we het type slimme pan met de status van de eigenschappen gemaakt (onder leiding van in- of uitschakelen), beperken temperatuur (pan inhoud graden), kwaliteit lucht (gar-detectie) en temperatuur (na die het alarm verhogen zal).

Wat we doen is controleren de ontvangen (of sturen) bericht en de JSON met een specifieke eigenschap id ontleden (of maken). Op deze manier kunnen we begrijpen de ontvangen eigenschap of bijwerken van de fysieke waarden in Lelylan.

Voor dit voorbeeld gebruiken we de slimme pan is type-ID 55055efb5a06678498000001)

var type = {}

'status': {id: '55055eff5a06673360000001'},

'temperatuur': {id: '5505607f5a06673360000004'},

"lucht": {id: '550560935a06673360000005'},

'tempLimit': {id: '550560a65a0667cff2000001'},

};

Stel de server van de Lelylan MQTT (MQTT server IP en poort) en apparaat (id en geheim) waar om verbinding te maken. Wij ook een beveiligde verbinding dankzij de Edison rekenkracht (niet mogelijk met een Arduino bijvoorbeeld) ingeschakeld.

var instellingen = {}

gastheer: '178.62.108.47', / / MQTT server IP

haven: '8883', / / MQTT-serverpoort

gebruikersnaam: device.id, / / device.id als de gebruikersnaam van de client

wachtwoord: device.secret, / / device.secret als clientwachtwoord

Protocol: 'ssl', / / beveiligde verbinding

rejectUnauthorized: valse

}

In dit gedeelte definiëren we de gebruikte pinnen om te controleren de led, om de temperatuur en om de kwaliteit lucht (gasdetectie) te krijgen.

/ * LED definitie * /

var digitalPin3 = nieuwe mraa. GPIO(3); digitalPin3.dir (mraa. DIR_OUT);

var ledState = true;

/ * Temperatuur definitie * /

var analogPin0 = nieuwe mraa. AIO(0); / * Gas detectie definitie * /

var analogPin1 = nieuwe mraa. AIO(1);

Op dit moment openen we de verbinding van de MQTT en we kunnen beginnen met het verzenden van de temperatuur en lucht kwaliteit waarden te Lelylan. Hier volgt de code voor het lezen en verzenden van de temperatuur naar Lelylan, waar we lezen van de huidige waarde en het maken van een JSON te sturen via MQTT naar Lelylan (samengesteld uit de id van de temperatuur en de temperatuur). Soortgelijke logica leeft voor de gas-sensor.

var client = mqtt.connect(settings); client.on ('verbinden', function {}

functie readTemp() {}

var analogValue = Math.round(analogPin0.read(), 2);

setTimeout (readTemp, 10000);

console.log ('de temperatuur te publiceren Lelylan');

Message = {"Eigenschappen": [{"id": type.temperature.id, "waarde": analogValue}]};

client.publish (out_topic, JSON.stringify(message)); […]

Op dit punt als de temperatuur de gedefinieerde limiet viaduct, de led is ingeschakeld en wijzigingen worden naar Lelylan verzonden.

Als (analogValue > tempLimit) {}

console.log ("Turn op licht (temperatuur) -", analogValue);

boardLight.write(255);

Message = {"Eigenschappen": [{"id": type.status.id, "waarde": "aan"}]};

client.publish (out_topic, JSON.stringify(message));

} else {}

console.log ("Zet licht (temperatuur) -", analogValue);

boardLight.write(0);

Message = {"Eigenschappen": [{"id": type.status.id, "waarde": "off"}]};

client.publish (out_topic, JSON.stringify(message));

}

Het laatste fragment van code wordt gebruikt om in te schrijven voor alle berichten afkomstig van de vorm Lelylan, dynamisch het bijwerken van de limiet van de temperatuur van het web. Op deze manier die wij de waarde rechtstreeks vanuit Lelylan Dashboard of een mobiele app variëren kunnen.

client.Subscribe(in_topic);

client.on ('bericht', function (onderwerp, bericht) {}

var prop = JSON.parse (bericht) .properties [0];

console.log ('Ontvangen bericht', status); / * Stel de temperatuurgrens * /

Als (prop.id == typelight.tempLimit.id) {}

tempLimit = prop.value;

boardLight.write(255);

console.log ('de temperatuurgrens is ingesteld op', tempLimit);

}

client.publish (out_topic, JSON.stringify(message));

console.log ('Bericht ontvangen (onderwerp)', onderwerp, '(message)', message);

});

Gerelateerde Artikelen

Kid's keuken

Kid's keuken

De keuken van dit speelgoed werd gemaakt door eerste kopen een keukenkast uit een overschot winkel. Toe te voegen en improviseren met verschillende dingen.Stap 1: Het uitsnijden van voor de plaatsing van wastafel en kraan.Stap 2: Wastafel en kraanEen
Grote keuken Facelift

Grote keuken Facelift

Uw keuken een facelift met nieuwe kabinetsdeuren geven.Ik zal uitleggen hoe je de rode deur in de foto, met geïntegreerde Trek (handvat), die u als een accent aan uw keuken of zorg genoeg toevoegen kunt ter vervanging van al uw oude deuren.Je hebt ee
Kleding van Peg keuken Hack

Kleding van Peg keuken Hack

Wat doet een clothes-peg in de keuken?Het klinkt misschien als een grap, maar dit is wat ik heb gedaan.Stap 1: Items Een paar wasknijpersDubbelzijdig tape (of een siliconen lijm)TekenreeksEen schaarKunt u gemakkelijk verkrijgen deze items ergens in u
Keuken meshouder

Keuken meshouder

Mijn vrouw wilde een soort messenblok. Maar we hebben meerdere verschillende soorten en soorten messen.Het eerste idee was om te kopen een magnetische meshouder, maar deze houder niet passen in onze keuken... zei mijn vrouw.Zo heb ik het mijn zelf bo
Sappige bollen Snack - gemakkelijk keuken Science

Sappige bollen Snack - gemakkelijk keuken Science

Dit is een makkelijke en leuke manier om te spelen met je eten! Als je kieskeurig kinderen hebt, kan u doen sommige sap van vruchten en groenten en maakt u deze "caviar" gelei van te maken.Dit omvat slechts twee ingrediënten! .. .en een kopje ol
GOEDE morgen (koffie) keuken zeep

GOEDE morgen (koffie) keuken zeep

ik heb het maken van zeep voor ongeveer 12 jaar nu. Als ik zeg "het maken van zeep" Ik bedoel echte zeep... niet de glycerine, of smelt en pour soort als u kopen bij de ambachtelijke winkel (al hoewel ik de gelegenheid te gebruiken voor sommige
PVC keuken Helper Hack

PVC keuken Helper Hack

Hield van het idee van de helpers van de keuken maar niet waarderen hun prijskaartjes. Zag een heleboel hacks en allermeest zij betrokken houtbewerking die nodig extra hulpmiddelen; niet precies onze kopje thee. Toen kwam de aha! moment; PVC - zo mak
Keuken-bijkeuken-laden

Keuken-bijkeuken-laden

Rijdend door de buurt, zag ik een paar "te koop" tekenen in de voortuin van een buurman. Ik stopte om te praten met hem, en wordt een gepensioneerde algemene aannemer, hij had verzameld sommige oude instrumenten, waarvan sommige had onbruikbaar
Flat Pack keuken Tang

Flat Pack keuken Tang

Deze keuken tool zal u helpen besparen ruimte in uw lades. In plaats van het kopen van een volledige set van keuken Tang, die u annuleerteken uitsluitend toepassing lepels of vorken dat u al in uw keuken hebt en gebruik ze als een tang.Stap 1: Wat he
Groot in een kleine keuken koken

Groot in een kleine keuken koken

Naar het buitenland gaan was iets dat ik had geen scrupules over. Andere cultuur? Eh, prima. Andere taal? Ik zal het uitzoeken. Maar een of andere manier hebben van een andere keuken was wat mij wierp. Na het doorbrengen van maanden en maanden reorga
Keuken renovatie op een begroting

Keuken renovatie op een begroting

Nou, mijn vrouw en ik kocht een huis, en de keuken moest worden gebracht uit de jaren 80 en in de 21e eeuw, maar we hadden niet $10-15 k om te besteden aan een pro om dat te doen. Dit is onze poging om de beste die we met ongeveer $2000-3000 konden!
Keuken rollen huis

Keuken rollen huis

alles wat u nodig hebt is een paar stroken hout, een rechthoekig stuk hout, een sterke lijm en een paar nails(optional) maken dit stuk. Word lid van de strips om rechthoekige mesh zoals structuren maken en koppelen aan de onderkant van een rechthoeki
Keuken Unit hydrocultuur

Keuken Unit hydrocultuur

Dit Instructable is cool voor mij als ik heb gedaan dit voor een paar jaar nu en love it. Samen met een vriend (die heeft jaren waarde van hydro groeiende ervaring) kwamen we met dit ontwerp die is laag in macht te gebruiken, grote bij het kweken van
Massieve beton-keuken

Massieve beton-keuken

Een vriend van mij gevraagd om hem een massieve betonnen keuken,... in feite hij geschaafd te hebben een keukeneiland in 2 meter met 4 meter... dus ik had om dit te doen... een nieuwe uitdaging ;)Stap 1: Bouw van de framwork / schimmel Dus kader was