Stap 2: Flood detection en weg weergave bestuur
Het belangrijkste kenmerk van dit project is de detectie van de overstroming. Om te detecteren, gebruiken we de Grove vocht sensor geïnstalleerd binnen een afvoer. Deze sensor is geschikt voor dit omdat (volgens https://software.intel.com/en-us/iot/hardware/sen...
Deze sensor kan worden gebruikt voor het detecteren van het vochtgehalte van de bodem of water rond de sensor. Als het vochtgehalte toeneemt, neemt ook de waarde dat {citaat} wordt gelezen
Na een bepaalde waarde zijn, kunnen we zeggen dat een overstroming dreigt. Als u deze waarde, zullen we de dezelfde processBuffer uitgelegd in de laatste stap en een bijbehorende moistureBuffergebruiken.
OBS: van nu af aan alleen de relevante fragmenten van de code getoond. In geval van twijfel, vergeet niet dat de volledige code is beschikbaar op de begin.
writeMessage: function(message) { var that = this; var str = message.toString(); while (str.length < 16) { str = str + " "; } that.screen.setCursor(0,0); that.screen.write(str); that.screen.setColor(255, 242, 0); //Yellow~Green }, ... vocht: {bestuurder: 'analoog-sensor', pin: 0 var moistureBuffer = { MAX_SIZE: 30, data: null, status: 'INITIALIZING', blinking: null, action: function(that, avgValue) { var THRESHOLD = 670; if ((avgValue > THRESHOLD) && (this.status != "FLOOD")) { // Condition to trigger flood alert this.status = "FLOOD"; that.led.turnOn(); that.writeMessage("FLOOD RISK"); this.blinking = setInterval(function() { that.led.toggle(); }, 200); } else if ((avgValue <= THRESHOLD) && (this.status != "OK")) { // Condition to remove flood alert this.status = "OK"; that.led.turnOff(); that.writeMessage("Road open"); clearInterval(this.blinking); }; //that.debugValue("moisture", avgValue, this.status); //uncomment for debug purpouses } }, geleid: {stuurprogramma: "geleid", pin: 8, verbinding: "galileo" setInterval(function() { //... that.moistureBuffer = that.processBuffer(that.moisture.analogRead(), moistureBuffer, that); }, 1000); }; scherm: {stuurprogramma: "upm-jhd1313m1", de verbinding: "galileo"} devices: { light: { driver: "analogSensor", pin: 3, connection: "galileo" }, relay: { driver: 'relay', pin: 6, connection: "galileo", type: "closed" }, },
writeMessage: function(message) {var dat =; var str = message.toString(); terwijl (str.length < 16) {str = str + "";} that.screen.setCursor(0,0); that.screen.write(str); that.screen.setColor (255, 242, 0); Gele ~ groen var luminosityBuffer = { MAX_SIZE: 30, //seconds data: null, status: "LAMP ON", action: function(that, avgValue) { var THRESHOLD = 150; if (avgValue < THRESHOLD) { that.relay.turnOff(); this.status = "LAMP ON"; } else { that.relay.turnOn(); this.status = "LAMP OFF"; }; that.debugValue("luminosity", avgValue, this.status); }, };
var moistureBuffer = {maximumomvang: 30, gegevens: null, status: 'Initialiseren', knipperen: null, actie: functie (dat avgValue) {var drempel = 670; als ((avgValue > THRESHOLD) & & (this.status! = "OVERSTROMING")) {/ / voorwaarde om te activeren overstroming alert this.status = "OVERSTROMING"; that.led.turnOn(); that.writeMessage ("OVERSTROMINGSRISICO") this.blinking = setInterval(function() {that.led.toggle(); setInterval(function() { //... that.luminosityBuffer = that.processBuffer(that.light.analogRead(), luminosityBuffer, that); }, 1000);<br> 200); } else if ((avgValue < = drempel) & & (this.status! = "OK")) {/ / voorwaarde te verwijderen overstroming alert this.status = "OK"; that.led.turnOff(); clearInterval(this.blinking); that.writeMessage ("Road open")}; that.debugValue ("vocht", avgValue, this.status); uncomment voor debug purpouses}
setInterval(function() {/ /... that.moistureBuffer = that.processBuffer(that.moisture.analogRead(), moistureBuffer, die);
De drempel is de waarde die is gerapporteerd door de vocht sensor wanneer de riolering is bijna helemaal gevuld met water. We dit zullen beschouwen als dreigende staat van overstromingen (de hoeveelheid water komt tot de drain is gelijk of groter dan haar uitvoer debiet). Vergeet niet dat deze drempelwaarde worden vergeleken met het gemiddelde van de laatste maximumomvang waarden, verkregen uit de vocht sensor vanwege de processBuffer -methode.
Wanneer een dreigende overstroming wordt gedetecteerd, moeten de stuurprogramma's op een weg worden gewaarschuwd voordat ze dit stuk bereiken. Hiervoor zal de Grove LCD display en de LED Grove te simuleren een weg-display worden gebruikt. In deze situatie, het LCD display verschijnt het bericht "OVERSTROMINGSRISICO" en de LED zal beginnen te knipperen. Het LCD-scherm zal Toon "Road open" normale situatie, en de LED zal worden uitgeschakeld.