Overstroming van de opsporing van in een slim streep lantaarnpaal (1 / 4 stap)

Stap 1: Initial setup en temperatuur sensor


Cylon.js toevoegen

Dit project gebruikt het kader van de Cylon.js (http://cylonjs.com/)

Cylon.js is een JavaScript-kader voor Robotica, physical computing, en het Internet van dingen. Het maakt het ongelooflijk gemakkelijk opdracht robots en apparaten

Het grootste voordeel van Cylon.js is dat dezelfde code wordt uitgevoerd op verschillende apparaten (Intel Galileo, Arduino, Raspberry Pi, enz.).

Om het te gebruiken, voeg de volgende afhankelijkheden op package.json

 "cylon": "1.2.0", "cylon-intel-iot": "0.8.0", "cylon-gpio": "0.27.0", "cylon-i2c": "0.23.0"<br> 

En op main.js

 var cylon = require("cylon"); cylon.robot({ name: "floodDetection", connections: { galileo: { adaptor: "intel-iot" } 
 }, 
 devices: { 
 }, 
 work: function() { } });<br> 

Inpluggen van de temperatuursensor

Voordat we beginnen met de ontwikkeling van de functie voor het detecteren van overstroming, laten we beginnen met de temperatuursensor.

Steek de stekker in haven A2 en voer vervolgens de volgende code:

 var cylon = require("cylon"); cylon.robot({ name: "floodDetection", 
verbindingen: {galileo: {adapter: "intel-iot"} connections: { galileo: { adaptor: "intel-iot" } }, 
 devices: { temp: { driver: "upm-grovetemp", pin: 2, connection: "galileo" }, }, Temp: {stuurprogramma: "upm-grovetemp", pin: 2, verbinding: "galileo" debugValue: function(message, value, status) { console.log(new Date(), message + " = " + value + " [" + status + "]"); }, 
debugValue: functie (bericht, waarde, status) {console.log (nieuwe Date(), bericht "=" + waarde + "[" + status + "]"); processBuffer: function(/*Value reported by the sensor*/ currentValue, /*Array*/ buffer, /*Context*/ that) { // Initialize buffer if null if (!buffer.values) { buffer.values = []; }; // Add currentValue to buffer buffer.values.push(currentValue); // Check size of buffer. If it has reached // its buffer.MAX_SIZE, then take some action if (buffer.values.length == buffer.MAX_SIZE) { // Get average value. This value is gonna be used // to trigger an action. var sumOfAllValues = 0; buffer.values.forEach(function(oldValue) { sumOfAllValues += oldValue; }); var avgOfAllValues = (sumOfAllValues / buffer.MAX_SIZE); // The action itself buffer.action(that, avgOfAllValues); //Reset buffer buffer.values = null; }; return buffer; }, 
processBuffer: functie (/ * waarde gemeld door de sensor * / currentValue, / * Array * / buffer / * Context * / dat) {/ / buffer initialiseren als null als (! buffer.values) {buffer.values = [];}; / / Add currentValue om buffer buffer.values.push(currentValue); / / controleert u de grootte van de buffer. Als het heeft bereikt / / de buffer. Maximumomvang, dan sommige actie ondernemen als (buffer.values.length == buffer. Maximumomvang) {/ / Get gemiddelde waarde. Deze waarde gaat worden gebruikt / / activeren van een actie. var sumOfAllValues = 0; buffer.values.forEach(function(oldValue) {sumOfAllValues += oldValue;}); var avgOfAllValues = (sumOfAllValues / buffer. MAXIMUMOMVANG); De actie zelf buffer.action (, avgOfAllValues); Reset buffer buffer.values = null; }; retourneren van buffer; work: function() { var that = this; 
 var temperatureBuffer = { MAX_SIZE: 5, data: null, action: function(that, avgValue) { that.debugValue("temperature", avgValue); }, }; 
var temperatureBuffer = {maximumomvang: 5, gegevens: null, actie: functie (dat avgValue) {that.debugValue ("temperatuur", avgValue); setInterval(function() { that.temperateBuffer = that.processBuffer(that.temp.value(), temperatureBuffer, that); }, 1000); } });<br> 
setInterval(function() {that.temperateBuffer = that.processBuffer(that.temp.value(), temperatureBuffer, die); devices: { // ... moisture: { driver: 'analog-sensor', pin: 0 }, led: { driver: "led", pin: 8, connection: "galileo" }, screen: { driver: "upm-jhd1313m1", connection: "galileo" } }, 

De output moet de temperatuur (Celsius) elke 5 seconden weergegeven.

Gebufferde waarden

De waarde van de temperatuur gemeld door de sensor is vastgelegd per seconde en zet in een buffer die is gewijd aan de waarden van deze sensor. Deze buffer wordt gecontroleerd door de methode processBuffer, die als parameters (1) de huidige waarde van een bepaalde sensor, (2) het voorwerp van de buffer van deze sensor en (3) de variabele 'dat'.

De buffer-object (Zie temperatureBuffer) moet ten minste beschikken over:

  • Maximumomvang - de maximale grootte van de buffer;
  • gegevens - een matrix met waarden die zijn gemeld door de sensor;
  • actie - Javascript-functie geactiveerd door processBuffer;

De methode bufferedReader zal stapelen de laatste waarden van de maximumomvang gemeld door een bepaalde sensor. Wanneer de matrixgrootte 'gegevens' gelijk aan de maximumomvang is, berekent deze methode de gemiddelde waarde van de waarden in deze array. Vervolgens de functie doorgegeven als parameter 'actie' zal worden uitgevoerd met behulp van deze gemiddelde waarde en de variabele 'gegevens' zal worden ingesteld op null.

Het doel van deze buffer is discrepantie waarden voorkomen.

Op de bovenstaande code, de 'actie' functie zal gewoon de uitgang van de gemiddelde temperatuur. Bij de volgende stappen, zal deze functie meer nuttig zijn.

Gerelateerde Artikelen

Maak een Slime Plushie van Minecraft

Maak een Slime Plushie van Minecraft

dus je zag de klimplant Instructable en je hebt besloten dat je moest maken voor jezelf. U kocht een hele werf van weefsel en begon van uw project. De weg was lang, maar met genoeg zand, het buskruit en de steken u werden triomfantelijk.  "Het is ALI
BEWIJS van CONCEPT: Een koudwater airconditioning prototype - ONTMANTELD.

BEWIJS van CONCEPT: Een koudwater airconditioning prototype - ONTMANTELD.

Ik ben van plan deze 100 watt compressor gebruiken om te relaxen in een geïsoleerde tank water terwijl ik op het werk. De energie hiervoor zullen via mijn huis zonne-energie systeem aangezien ik oogst een overschot van energie die ik niet kan slaan v
Carols van disfunctie: een Christmas Song spel

Carols van disfunctie: een Christmas Song spel

Kerstmis is die magische tijd van jaar wanneer familie en vrienden bij elkaar komen en chaos ontstaat.  Oom Benny drinkt teveel puntige advocaat.  Tante Elizabeth zit in haar stoel en rustig breekt wind.  Pappa en mamma kibbelen over wie welke karwei
Hoe maak je brand met behulp van slechts een batterij en staalwol

Hoe maak je brand met behulp van slechts een batterij en staalwol

leren hoe te maken brand met behulp van slechts een batterij en staalwol.Het is zeer gemakkelijk te doen. Gewoon kopen een 9 volt batterij en sommige staalwol (hoe fijner hoe beter) en wrijf de batterij op de wol. De wol zal onmiddellijk beginnen te
Multi-gebruik huisdier speelgoed met behulp van alleen een T-Shirt

Multi-gebruik huisdier speelgoed met behulp van alleen een T-Shirt

een multi-gebruik huisdier speelgoed die een huisdier zullen houden.  Met behulp van alleen een oud t-shirt.Stap 1: materialen 1 ratty oud t-shirt (in he foto het is reeds uitgesneden)That's it!Stap 2: meten gebruiken een touwtje te meten om de nek v
Hoe het bouwen van C3Jr, een geavanceerde woord klok

Hoe het bouwen van C3Jr, een geavanceerde woord klok

zoals het handjevol andere woord klokken die u wellicht heeft gezien, allemaal geïnspireerd door de oorspronkelijke QlockTWO , C3Jr de tijd wordt weergegeven in woorden.Wat maakt het opvallen tussen de klokken van DIY woord is, naast de professionele
"Kamer-duino": uw huis apparaat van Internet, een oplossing van de Arduino home-brew controle

"Kamer-duino": uw huis apparaat van Internet, een oplossing van de Arduino home-brew controle

ik onlangs ter "Roomduino" controle elektrische apparaten in mijn kamer van internet, het is een oplossing gebaseerd op een Arduino, ik aangepaste twee boards ontworpen voor de kleine systeem, de eerste is een "netwerk poort"-Raad, die
Hoe maak je brand met behulp van slechts een batterij

Hoe maak je brand met behulp van slechts een batterij

leren hoe je brand met behulp van slechts een batterij en staalwol.Het is zeer gemakkelijk te doen. Gewoon kopen een 9 volt batterij en sommige staalwol (hoe fijner hoe beter) en wrijf de batterij op de wol. De wol zal onmiddellijk beginnen te vonk.
Hoe maak je een Rainbow Loom Snowflake charme met behulp van alleen een haak

Hoe maak je een Rainbow Loom Snowflake charme met behulp van alleen een haak

Dus vandaag, maken we een sneeuwvlok charme. Met behulp van alleen een haak!Stap 1: materialen U moet:Een haakBandenStap 2: begin Neem een band en draai het rond de haak 3 keer. Neem 2 meer banden en schuif uw gedraaide band op de 2 bands. 6 keer her
Hoe een Slime feestje

Hoe een Slime feestje

voor drie jaar hebben we gooien slime partijen en ze zijn een van de hoogtepunten van de zomer geworden.  De partij bestaat uit wedstrijden dat ervoor zorgt dat de spelers om messier en messier gedurende de dag.  De winnaar van elk spel krijgt om te
Overstroming van de detectie- en waarschuwingssysteem

Overstroming van de detectie- en waarschuwingssysteem

Overstromingen zijn gevaarlijke en verwoestende. Een van's werelds meeste schade vooral economische wordt veroorzaakt als gevolg van overstromingen. Overstromingen worden voornamelijk veroorzaakt als gevolg van zware regenval of verhoogde water debie
ALTOIDS TIN KAARS, MET BEHULP VAN ALLEEN EEN LAMP.

ALTOIDS TIN KAARS, MET BEHULP VAN ALLEEN EEN LAMP.

iN dit instructable, ik leert u hoe maak je een Altoids tin kaars, met minimalistische middelen!DISCLAIMER: IK BEN NIET VERANTWOORDELIJK VOOR DE SCHADE OF EIGENSCHAP BESCHADIGEN JE KUNT TEGENKOMEN OP DIT INSTRUCTABLE. WORDEN VOORZICHTIG EN VEILIG EN
Nemen van elkaar een diskettestation

Nemen van elkaar een diskettestation

herinner me die oude diskettestations? Ze zijn dus verouderd nu, maar ze hebben veel van de koele delen binnen. Hier is hoe te krijgen bij hen, plus zien wat een diskettestation ziet eruit als binnen.Stap 1: U moet: -een kleine sleuf schroevendraaier
AA & AAA batterijen opladen van Solar - een addendum

AA & AAA batterijen opladen van Solar - een addendum

Dit project is eigenlijk een addendum bij het belangrijkste project hier:Zonne-energiecentrale koppelingDit is onderdeel van mijn gekke strategie om te gaan "off grid" (langzaam)!Het is ook onderdeel van een strategie om de locatie van een nette