Moniteur de paramètres environnementaux distance Intel Edison IoT (3 / 4 étapes)

Étape 3: Programmation en JavaScript avec XDK

  • Dans votre projet, modifiez le fichier main.js :
    main.js (s’il vous plaît télécharger le fichier joint, le code était probablement cassé après avoir collé ici)
 /* main.js Part of "Intel Edison IoT remote parameters monitor" Copyright 2015 Biagio Sesta, Algol Team This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/license>. Steps for installing MRAA & UPM Library on Intel IoT Platform with IoTDevKit Linux* image Using a ssh client: 1. echo "src maa-upm http://iotdk.intel.com/repos/1.1/intelgalactic" > /etc/opkg/intel-iotdk.conf 2. opkg update 3. opkg upgradeUSAGE: **************** go to http:/<address_of_your_edison>/:1377/sensors*/ var fs = require('fs'); var http = require('http'); var dispatcher = require('httpdispatcher'); var bind = require('bind'); var PORT = 1377;var mraa = require("mraa");//Button connected to D2 connector var buttonDigitalPinD2 = new mraa.Gpio(2); buttonDigitalPinD2.dir(mraa.DIR_IN);//Lcd library var LCD = require ('jsupm_i2clcd'); var myLCD = new LCD.Jhd1313m1(0, 0x3E, 0x62);var colorRed = {R: 255, G: 0, B: 0}; var colorBlue = {R: 0,G: 0,B: 255}; var colorWhite = {R: 40,G: 40,B: 40};//light sensors parameters //GROVE Kit A0 Connector --> Aio(0) var myAnalogLightPin = new mraa.Aio(0);//air quality sensors parameters //GROVE Kit A3 Connector --> Aio(3) var myAnalogAirPin = new mraa.Aio(3);//Temperature sensor parameters //GROVE Kit A1 Connector --> Aio(1) var myAnalogPin = new mraa.Aio(1); var B = 3975;/* Function: getSensorsValues() Description: Read values from sensors and return them as an array */ function getSensorsValues() { 'use strict'; //setInterval(function () { var ambientValues = {}; ambientValues.temp = getTemperature(); ambientValues.light = getLight(); ambientValues.airQuality = getAirQuality(); return ambientValues; //}, 4000); }console.log("Sample Reading Grove Kit Temperature Sensor");/* Function: getTemperature() Description: Read values from temperature sensor and return it */ function getTemperature(){ var a = myAnalogPin.read(); console.log("Analog Pin (A1) Output: " + a); //console.log("Checking...."); var resistance = (1023 - a) * 10000 / a; //get the resistance of the sensor; //console.log("Resistance: "+resistance); var celsius_temperature = 1 / (Math.log(resistance / 10000) / B + 1 / 298.15) - 273.15;//convert to temperature via datasheet ; console.log("Celsius Temperature: " + celsius_temperature); //return celsius temperature with 2 decimal digits return celsius_temperature.toFixed(2); }/* Function: getLight() Description: Read values from light sensor and return it */ function getLight(){ var light = myAnalogLightPin.read(); return light; }/* Function: getAirQuality() Description: Read values from air quality sensor and return it */ function getAirQuality(){ var airQuality = myAnalogAirPin.read(); return airQuality; }/* Function: printToLcd() Parameters: ambientValues array of sensor values Description: write the values to LCD connected to the board */ function printToLcd(ambientValues){ myLCD.clear(); var outputColor = {}; //cold if (ambientValues.temp < 15) outputColor=colorBlue; //warm else if (ambientValues.temp >= 15 && ambientValues.temp <30) outputColor=colorWhite; //hot else outputColor=colorRed; myLCD.setColor(outputColor.R, outputColor.G, outputColor.B); //console.log("Temp: " + ambientValues.temp); myLCD.write("Temp:" + ambientValues.temp); myLCD.setCursor(1,0); myLCD.write("Air:" + ambientValues.airQuality); myLCD.write(" Lux:" + ambientValues.light); }/* Function: handleRequest() Parameters: request, the http request. response, the http resposne Description: function that handles the request from a web browser */ function handleRequest(request, response){ try { //log the request on console console.log(request.url); //Disptach dispatcher.dispatch(request, response); } catch(err) { console.log(err); } }/* Function: onGet() Parameters: path to dispatch, callback function that handles the response Description: function that handles the request from a web browser */ dispatcher.onGet("/sensors", function(req, res, chain) { var ambientValues = getSensorsValues(); printToLcd(ambientValues); /*next step is a workaround to use node.js template feature with Intel XDK if I start main.js typing node main.js, the application binds the template correctly if I load main.js with built in feature of XDK, the application does not find sensors.tpl in relative path but it needs absolute path */ var tpl = "sensors.tpl"; //check if the application find the tamplate in relative path if(!fs.existsSync(tpl)) tpl='/home/root/.node_app_slot/sensors.tpl'; bind.toFile(tpl, { temperature: ambientValues.temp, light: ambientValues.light, airQuality: ambientValues.airQuality }, function(data) { res.writeHead(200, {'Content-Type': 'text/html'}); res.end(data); }); }); //GROVE Kit Shield D2 --> GPIO2 /* Function: startButtonWatch() Description: Check the value of button every 300ms */ function startButtonWatch() { 'use strict'; var buttonValue = 0, last_b_sensor_value; setInterval(function () { buttonValue = buttonDigitalPinD2.read(); if (buttonValue === 1 && last_b_sensor_value === 0) { console.log("button pressed"); var ambientValues = getSensorsValues(); printToLcd(ambientValues); } else if (buttonValue === 0 && last_b_sensor_value === 1) { console.log("Button released"); } last_b_sensor_value = buttonValue; }, 300); }//Create a server var server = http.createServer(handleRequest); //Lets start our server server.listen(PORT, function(){ //Callback triggered when server is successfully listening. Hurray! startButtonWatch(); console.log("Server listening on: http://localhost:%s", PORT); }); 
  • Modifier package.json
 { "name": "IoTParametersMonitor", "description": "", "version": "1.0.0", "main": "main.js", "engines": { "node": ">=0.10.0" }, "dependencies": { "bind":"latest", "httpdispatcher":"latest" } } 
  • Créer une nouvelle sensors.tpl de fichier dans le dossier racine de votre projet, ce fichier est un modèle utilisé pour lier les valeurs des capteurs vers une page html envoyée à votre navigateur (Télécharger le fichier joint)

Articles Liés

Intel Edison IoT WiFi Termostate #IntelMaker

Intel Edison IoT WiFi Termostate #IntelMaker

Intel Edison IoT WiFi TermostateÉtape 1: IntroIl s'agit d'un Edison Intel based Thermostat, WiFi IoT connecté, que vous pouvez régler la température souhaitée localement à l'aide d'un potentiomètre et voir cela sur RGB écran LCD et à distance via la
Intel Edison IoT Hackathon - Jane, une assistante de soins pour personnes âgées

Intel Edison IoT Hackathon - Jane, une assistante de soins pour personnes âgées

Merci aux gens à Intel, j'ai eu la chance de construire un amusant projet du Intel Edison IoT hackathon à Boston. Le projet est un prototype de Jane, un assistant de soins personnes âgées IoT qui aide les patients sur assistée maison soins de vie. Le
Télémètre (basic) avec Intel Edison

Télémètre (basic) avec Intel Edison

Hé tous, ce projet contribue à mettre en place télémètre et d'un projet simple pour s'y habituer. Pour ce faire, j'ai utilisé le code j'ai trouvé en ligne et testé dehors. Voici donc le projet.(NOTE:-vous devez avoir complètement configuration Intel
Intel Edison IoT : Lampe automatique (relais, HC-SR04)

Intel Edison IoT : Lampe automatique (relais, HC-SR04)

Le projet est tout simplement une lampe automatique qui s'allume quand il « voit » mouvement. Comme il s'agit de domotique.Avec cela, vous pouvez :1. économiser l'énergie.2. Enregistrez votre propre temps.3. Assurez-vous que le déplacement sans dange
Intel Edison IoT - Servo contrôle utilisant l’accéléromètre

Intel Edison IoT - Servo contrôle utilisant l’accéléromètre

Bonjour à tous, je suis parmi les gars chanceux qui ont reçu une carte mère Edison Intel et le bosquet IoT Kit. J'ai passé beaucoup de temps pour en savoir plus sur ce nouveau Conseil d'Edison et Arduino impressionnant style de codage. Ils sont vraim
Intel Edison IoT - lecture de capteur de pression de Freescale MPL3115A2

Intel Edison IoT - lecture de capteur de pression de Freescale MPL3115A2

Bonjour à tous, dernière instructable j'avais vous montrer comment lire servo accéléromètre et contrôle. Si vous n'avez pas encore lu, je suggère que vous devriez jeter un oeil car il est très amusant !Maintenant, dans ce projet, nous saurons comment
Intel Edison Simple Distance capteur avec indicateur de barre de LED de Grove et Buzzer

Intel Edison Simple Distance capteur avec indicateur de barre de LED de Grove et Buzzer

C'est mon premier et « vraiment » simple projet que j'ai fait à l'aide d'Intel Edison. Ce projet « simple » mesurera la distance à l'aide de capteurs à ultrasons et l'alarme sonnera la barre de LED indiquera dans quelle mesure la distance est fonctio
Intel Edison : moniteur de fréquence cardiaque

Intel Edison : moniteur de fréquence cardiaque

C'est comment faire un simple bricolage cardiofréquence-mètre en utilisant Intel Edison.La construction principale elle-même est assez simple. Vous aurez besoin d'un petit tube. Résistance de la LDR et une led.Le code doit en revanche beaucoup d'étal
Light Plotter with Intel Edison

Light Plotter with Intel Edison

IntroductionJ'ai été heureux d'être sélectionné pour faire partie de l'Intel Edison IoT invitational ici sur Instructables (s'il vous plaît envisager de voter si vous l'aimez!). Le projet que j'ai proposé est un peintre automatisé « léger » qui utili
MONITORING des paramètres de l’AGRICULTURE

MONITORING des paramètres de l’AGRICULTURE

Un système efficace et surveillance à distance en temps réel des paramètres environnementaux agricoles est proposé. Le système utilise un réseau WSN d'où les données sont acquise à partir des nœuds de capteurs et elle est transmise par le protocole d
Affichage de température Intel Edison/Arduino avec rétro-éclairage momentanée

Affichage de température Intel Edison/Arduino avec rétro-éclairage momentanée

Bienvenue! Dans ce instructable je va être vous guider à faire votre propre thermomètre numérique avec un rétro-éclairage momentané. Cette instructable utilise des pièces de l'Intel Edison IoT Dev Kit, qui m'a été très généreusement donné d'Intel et
Intro à Intel XDK IoT Edition à l’aide d’un affichage de la température

Intro à Intel XDK IoT Edition à l’aide d’un affichage de la température

Bienvenue! Dans ce instructable je va être vous guidant tout en faisant votre propre thermomètre numérique avec une fonction « hold » de température contrôlée par bouton. Cette instructable utilise des pièces de l'Intel Edison IoT Dev Kit, qui m'a ét
Nature Tracker : mappage de paramètre avec l’Edison Intel

Nature Tracker : mappage de paramètre avec l’Edison Intel

Données sont belles. Et loin de « détruire la poésie de l'arc-en-ciel » (Keats), une approche scientifique peut nous aider à mieux apprécier les choses que nous avons plaisir à faire. Ici, nous avons pris un kit de goodies Ito et été assemblés dans u
Intel Edison : Luxmètre, TSL2561

Intel Edison : Luxmètre, TSL2561

Luxmètre fait avec capteur Intel Edison et TSL2561 Lux.Étape 1: composants. Je vais utiliser un Edison Intel avec carte Arduino. Le code devrait fonctionner avec n'importe quel carte Arduino basé.Ensuite, vous devrez le capteur TSL2561 Lux. Mon capte