Deeltje Core: Stuur een Email wanneer beweging wordt gedetecteerd (4 / 5 stap)

Stap 4: Code


Na montage van het circuit alle dat u hoeft te doen is krijgen de kern verbonden met het internet, en nadat dat wordt gedaan is het tijd om het uploaden van de code naar de kern. Hier is de code te uploaden...

 // -----------------------------------------// Publish and Dashboard with Photoresistors // ----------------------------------------- // This app will publish an event when the beam of light between the LED and the photoresistor is broken. // It will publish a different event when the light is intact again. // Just like before, we're going to start by declaring which pins everything is plugged into. int led = D0; // This is where your LED is plugged in. The other side goes to a resistor connected to GND. int boardLed = D7; // This is the LED that is already on your device. // On the Core, it's the LED in the upper right hand corner. // On the Photon, it's next to the D7 pin. int photoresistor = A0; // This is where your photoresistor is plugged in. The other side goes to the "power" pin (below). int power = A5; // This is the other end of your photoresistor. The other side is plugged into the "photoresistor" pin (above). // The following values get set up when your device boots up and calibrates: int intactValue; // This is the average value that the photoresistor reads when the beam is intact. int brokenValue; // This is the average value that the photoresistor reads when the beam is broken. int beamThreshold; // This is a value halfway between ledOnValue and ledOffValue, above which we will assume the led is on and below which we will assume it is off. bool beamBroken = false; // This flag will be used to mark if we have a new status or now. We will use it in the loop. // We start with the setup function. void setup() { // This part is mostly the same: pinMode(led,OUTPUT); // Our LED pin is output (lighting up the LED) pinMode(boardLed,OUTPUT); // Our on-board LED is output as well pinMode(photoresistor,INPUT); // Our photoresistor pin is input (reading the photoresistor) pinMode(power,OUTPUT); // The pin powering the photoresistor is output (sending out consistent power) // Next, write the power of the photoresistor to be the maximum possible, which is 4095 in analog. digitalWrite(power,HIGH); // Since everyone sets up their leds differently, we are also going to start by calibrating our photoresistor. // This one is going to require some input from the user! // First, the D7 LED will go on to tell you to put your hand in front of the beam. digitalWrite(boardLed,HIGH); delay(2000); // Then, the D7 LED will go off and the LED will turn on. digitalWrite(boardLed,LOW); digitalWrite(led,HIGH); delay(500); // Now we'll take some readings... int on_1 = analogRead(photoresistor); // read photoresistor delay(200); // wait 200 milliseconds int on_2 = analogRead(photoresistor); // read photoresistor delay(300); // wait 300 milliseconds // Now flash to let us know that you've taken the readings... digitalWrite(boardLed,HIGH); delay(100); digitalWrite(boardLed,LOW); delay(100); digitalWrite(boardLed,HIGH); delay(100); digitalWrite(boardLed,LOW); delay(100); // Now the D7 LED will go on to tell you to remove your hand... digitalWrite(boardLed,HIGH); delay(2000); // The D7 LED will turn off... digitalWrite(boardLed,LOW); // ...And we will take two more readings. int off_1 = analogRead(photoresistor); // read photoresistor delay(200); // wait 200 milliseconds int off_2 = analogRead(photoresistor); // read photoresistor delay(1000); // wait 1 second // Now flash the D7 LED on and off three times to let us know that we're ready to go! digitalWrite(boardLed,HIGH); delay(100); digitalWrite(boardLed,LOW); delay(100); digitalWrite(boardLed,HIGH); delay(100); digitalWrite(boardLed,LOW); delay(100); digitalWrite(boardLed,HIGH); delay(100); digitalWrite(boardLed,LOW); // Now we average the "on" and "off" values to get an idea of what the resistance will be when the LED is on and off intactValue = (on_1+on_2)/2; brokenValue = (off_1+off_2)/2; // Let's also calculate the value between ledOn and ledOff, above which we will assume the led is on and below which we assume the led is off. beamThreshold = (intactValue+brokenValue)/2; } // Now for the loop. void loop() { /* In this loop function, we're going to check to see if the beam has been broken. When the status of the beam changes, we'll send a Spark.publish() to the cloud so that if we want to, we can check from other devices when the LED is on or off. We'll also turn the D7 LED on when the Photoresistor detects a beam breakagse. */ if (analogRead(photoresistor)>beamThreshold) { /* If you are above the threshold, we'll assume the beam is intact. If the beam was intact before, though, we don't need to change anything. We'll use the beamBroken flag to help us find this out. This flag monitors the current status of the beam. After the beam is broken, it is set TRUE and when the beam reconnects it is set to FALSE. */ if (beamBroken==true) { // If the beam was broken before, then this is a new status. // We will send a publish to the cloud and turn the LED on. // Send a publish to your devices... Spark.publish("beamStatus","intact",60,PRIVATE); // And flash the on-board LED on and off. digitalWrite(boardLed,HIGH); delay(500); digitalWrite(boardLed,LOW); // Finally, set the flag to reflect the current status of the beam. beamBroken=false; } else { // Otherwise, this isn't a new status, and we don't have to do anything. } } else { // If you are below the threshold, the beam is probably broken. if (beamBroken==false) { // Send a publish... Spark.publish("beamStatus","broken",60,PRIVATE); // And flash the on-board LED on and off. digitalWrite(boardLed,HIGH); delay(500); digitalWrite(boardLed,LOW); // Finally, set the flag to reflect the current status of the beam. beamBroken=true; } else { // Otherwise, this isn't a new status, and we don't have to do anything. } } } 

Gerelateerde Artikelen

De Raspberry Pi omzetten in een Bluetooth-apparaat dat wordt gedetecteerd door externe bluetooth-client

De Raspberry Pi omzetten in een Bluetooth-apparaat dat wordt gedetecteerd door externe bluetooth-client

IntroductieIk heb een Bluetooth Radio USB-apparaat dat was verstoffen toen ik op het struikelde. Dus ik dacht dat ik zou zet het dat te gebruiken met de Raspberry Pi. Dit instructable is over mijn reis leren voor het toevoegen van een bluetooth-inter
Bouw een laboratoriumkwaliteit (ish) destillatieapparaat wordt gebruikt.

Bouw een laboratoriumkwaliteit (ish) destillatieapparaat wordt gebruikt.

Er zijn een paar Instructables die er over het maken van stilstaande beelden voor diverse doeleinden. Deze bevatten meestal een groot aantal kleine diameter, flexibele koelkast buizen koper. Terwijl deze foto's kunnen heel effectief zijn, is er gewoo
Internet Controlled Motion Detector - deeltje Core

Internet Controlled Motion Detector - deeltje Core

In dit instructable ga ik u tonen hoe te bouwen van een Bewegingsmelder en het resultaat publiceren via het internet. Dus telkens wanneer een verandering wordt gedetecteerd zal het tonen van een resultaat, in het dashboard van de Particle. Dit instru
Deeltje Core - Portable Power

Deeltje Core - Portable Power

Mij zijn geweest using de Particle Core voor vrij ooit, en het beste ding over de kern van het deeltje is er klein en draagbaar. Het deeltje Core verbruikt 3,3 v op een gemiddelde van 150mA zodat ik enkele verzoeken om te suggereren een draagbare str
Deeltje Core - Sensor van de motie met behulp van Internet knop

Deeltje Core - Sensor van de motie met behulp van Internet knop

In dit instructable ga ik u tonen hoe te bouwen van een sensor van de motie met behulp van een kern van het deeltje of foton en een Internet-knop. Deze maakt gebruik van de aan boord 3 axis versnellingsmeter van de Internet-knop en verandert de kleur
Stuur een briefkaart/brief hybride

Stuur een briefkaart/brief hybride

briefkaarten en brieven zijn grote manieren om te blijven in contact met dierbaren, en elk heeft zijn eigen sterke punten adviserend het.  Letters zijn prive en kunnen meerdere pagina's in de lengte; ansichtkaarten zijn aantrekkelijk, en goedkopere v
Hoe een originele om verhaal te ontwikkelen voor een fictie wanneer je geen inspiratie...

Hoe een originele om verhaal te ontwikkelen voor een fictie wanneer je geen inspiratie...

Een heleboel amateur schrijvers besluit te schrijven een fictie omdat ze al een verhaal of een concept in gedachten.Er zijn echter enkele andere volkeren die zou willen schrijven, maar die weet niet wat te schrijven. Ze hebben de motivatie, maar nog
LinkIt een Tutorial #13 - Stuur een tweet

LinkIt een Tutorial #13 - Stuur een tweet

We kunnen doen sommige echt grote dingen met de LinkIt One. Tot nu toe de LinkIt One niet in staat geweest om de wereld te vertellen.Dat alles is aan het veranderen met deze tutorial.Zullen we de LinkIt één voor het verzenden van een tweet via twitte
Een idee: Bril die wordt geconverteerd naar zonnebril in de zon een elektronische Project onderzoek.

Een idee: Bril die wordt geconverteerd naar zonnebril in de zon een elektronische Project onderzoek.

Mijn idee als om uit te voeren wat deze LCD sleutelhanger doet, in die RealD of zowat elke glazen.Ik moet collega liefhebber onderzoek samen te bouwen aan dit creatief project dat nog niet is gedaan op internet. Mij zijn geweest grondig voor dit soor
Stuur E-mail + TXT wanneer u terugkeert home (detecteert wanneer iPhone wordt weer toegevoegd aan het netwerk)

Stuur E-mail + TXT wanneer u terugkeert home (detecteert wanneer iPhone wordt weer toegevoegd aan het netwerk)

dit project stuurt een dagelijkse tekst message en email waarschuwing wanneer uw iPhone dicht bij uw Wi-Fi-netwerk krijgt, zoals wanneer je terug naar huis. De meldingen zijn beperkt tot slechts een keer een dag stuur en alleen tijdens een gebruiker
Een DIY Arcade tabel wordt verzorgd door Raspberry Pi

Een DIY Arcade tabel wordt verzorgd door Raspberry Pi

Gaming met emulators is rond vrij enkele ogenblikken geweest, maar niets brengt terug de nostalgie van de oude arcade als het spelen van games met een vintage joystick en die grote ronde knoppen. Zoals velen van ons, ik heb altijd gedroomd van het be
Deeltje Core - druksensor

Deeltje Core - druksensor

Dit instructable is onderdeel van een reeks instructables met de Core van het deeltje of foton, mijn vorige instructables toont u hoe te krijgen vermeld met de kern, sommige echt cool projecten, internet knop en nog veel meer. Dus zorg ervoor dat, u
Hoe om de huid van een hert, wanneer je ouders om hulp vraagt

Hoe om de huid van een hert, wanneer je ouders om hulp vraagt

eerste, een waarschuwing: Ik wil niet dat iemand verrassen door de foto's in dit instructable. Het toont een hert thats doden en het toont veel spier- en bloed maar is de afbeelding alleen in zijn realiteit. Als u helemaal misselijk bent en misschien
Stuur een mailtje met een nep e-mail adres

Stuur een mailtje met een nep e-mail adres

de titel legt alles dit instructable beoogt, hoe een e-mail te sturen met een vals e-mailadres dat wil zeggen elk e-mailadres dat u wilt. Iedereen moet enthousiast dus laten we aan de slag.* Alle materiaal op de instructable is bedoeld voor informati