At-Home jordbävningen skada uppskattning (4 / 4 steg)
Steg 4: Kopiera koden och köra!
Kopiera denna kod till din arduino IDE, då springa och du är redo att gå!
Att lägga till din egen wifi och api för
#include
#include #include #include "M2XStreamClient.h" #include #define WATER_SENSOR 2 #define Summer 12 #define FLAME_SENSOR 5 //connect SENSOR till digital pin3 int a; float temperatur; int B = 3975; B värdet av termistor float motståndet;
int pin = 8. osignerade långa varaktighet; osignerade långa starttime; osignerade långa sampletime_ms = 30000; //sampe 30-talet; osignerade långa lowpulseoccupancy = 0; float ratio = 0; flyta koncentration = 0; char ssid [] = "Intel 2.4 GHz"; ditt nätverk SSID (namnet) röding passera [] = "wifipass här"; int status = WL_IDLE_STATUS; char feedId [] = "ditt foder här". char deviceId [] = "din enhet här"; Enheten du vill skjuta till
char m2xKey [] = "din nyckel här"; Din M2X tillträde nyckel const int temperaturePin = 0;
WiFiClient klient; M2XStreamClient m2xClient (& client, m2xKey);
void setup() {Serial.begin(115200); pinMode(8,INPUT); starttime = millis (); //get den aktuella tiden, om (WiFi.status() == WL_NO_SHIELD) {Serial.println ("WiFi sköld inte närvarande"); while(true);} medan (status! = WL_CONNECTED) {Serial.print ("försöker ansluta till SSID:"); Serial.println(SSID); Ansluta till WPA/WPA2-nätverk. Ändra den här raden om du använder open eller WEP nätverk: status = WiFi.begin (ssid, pass); vänta 10 sekunder för anslutning: delay(10000); } Serial.println("Connected to wifi"); printWifiStatus(); }
void loop() {
EarthQuake();
}
void GasSensor() {float vol; int sensorValue = analogRead(A0), vol = (float) sensorValue/1024; Serial.Print ("att densitet är"); Serial.println(Vol); Delay(100); int svar = m2xClient.updateStreamValue (deviceId, "gas", vol); Serial.Print ("M2x klienten svarskod:"); Serial.println(Response); }
void tempSensor() {a=analogRead(1); resistance=(float)(1023-a) * 10000/a; //get motståndet av sensorn, temperatur = 1 / (log (motstånd/10000) /B+1/298.15)-273.15;//convert till temperatur via datablad; delay(1000); Serial.Print ("aktuell temperatur är"); Serial.println(temperature*1.8+32); int svar = m2xClient.updateStreamValue(deviceId, "temp", temperature*1.8+32); Serial.Print ("M2x klienten svarskod:"); Serial.println(Response); }
void DustSensor() {varaktighet = pulseIn (pin, låg); lowpulseoccupancy = lowpulseoccupancy + varaktighet;
om ((millis()-starttime) > sampletime_ms) //if prov tiden == 30s {ratio = lowpulseoccupancy/(sampletime_ms*10.0); / / heltal andel 0 = > 100 koncentration = 1,1 * pow (förhållande, 3)-3,8 * pow (förhållande, 2) +520 * förhållandet + 0,62; / / använda Specifikationsblad kurva / / Serial.print(lowpulseoccupancy); / / Serial.print(","); / / Serial.print(ratio); Serial.Print ("damm koncentration är:"); Serial.println(concentration); lowpulseoccupancy = 0; StartTime = millis(); int svar = m2xClient.updateStreamValue (deviceId, "damm", koncentration); Serial.Print ("M2x klienten svarskod:"); Serial.println(Response); } }
void myFlame() {if(isFlameDetected()) {int svar = m2xClient.updateStreamValue (deviceId, "Fire", "1"); Serial.Print ("M2x klienten svarskod:"); Serial.println(Response); turnOnLED(); } annat turnOffLED(); int svar = m2xClient.updateStreamValue (deviceId, "Fire", "0"); Serial.Print ("M2x klienten svarskod:"); Serial.println(Response); }
void pinsInit() {pinMode (FLAME_SENSOR, ingång), pinMode (WATER_SENSOR, ingång), pinMode (Summer, OUTPUT);} void turnOnLED() {/ / digitalWrite(LED,HIGH); Serial.println ("Flame upptäckt!"); } void turnOffLED() {/ / digitalWrite(LED,LOW); Serial.println ("ingen låga upptäckt"); } boolean isFlameDetected() {if(digitalRead(FLAME_SENSOR)) return false; annars return true;}
booleska isExposedToWater() {if(digitalRead(WATER_SENSOR) == låg) returnerar sant, annars returnerar falskt;}
void MyWater() {if(isExposedToWater()) {Serial.println ("vatten är upptäckt!"); int svar = m2xClient.updateStreamValue (deviceId, "vatten", "1"); Serial.Print ("M2x klienten svarskod:"); Serial.println(Response);} annat {Serial.println ("inget vatten är att bli upptäckt."); int svar = m2xClient.updateStreamValue (deviceId, "vatten", "0"); Serial.Print ("M2x klienten svarskod:"); Serial.println(Response);} }
void soundAlarm() {för (uint8_t jag = 0; jag < 20; i ++) {digitalWrite (Summer, hög); delay(50); digitalWrite (Summer, låg); delay(50);}}
void EarthQuake() {{int sensorValue = analogRead(A3); Serial.println(sensorValue); Delay(1000); om (sensorValue > = 1008) {Serial.println ("Tremor upptäckt!"); GasSensor(); tempSensor(); DustSensor(); myFlame(); isExposedToWater(); MyWater(); {} annat {{}}} void printWifiStatus() {/ / Skriv ut SSID för nätverket du är ansluten till: Serial.print ("SSID:"); Serial.println(WiFi.SSID()); skriva ut din WiFi shield's IP-adress: IP-adress ip = WiFi.localIP(); Serial.Print ("IP-adress:"); Serial.println(IP); skriva ut mottagna signalstyrka: lång rssi = WiFi.RSSI(); Serial.Print ("signalstyrka (RSSI):"); Serial.Print(RSSI); Serial.println ("dBm"); } //float getVoltage (int pin) / / {//return (analogRead(pin) * 0.004882814); / /} void waitMicros(int val) {unsigned long en = micros(); osignerade långa b = micros(); while((b-a) < val) {b = micros(); if(a>b) {bryta;}}}