Paso 4: Copiar el código y ejecutar!
Copie este código en el IDE de arduino, luego correr y usted está listo para ir!
Asegúrese de añadir sus propias llaves wifi y api
#include
#include #include #include "M2XStreamClient.h" #include #define WATER_SENSOR 2 #define zumbador 12 #define FLAME_SENSOR 5 //connect SENSOR a digital pin3 int a; Float temperatura; int B = 3975; B el valor de la resistencia del flotador de termistor;
int pin = 8; duración largo sin firmar; starttime largo sin firmar; unsigned sampletime_ms largo = 30000; //sampe 30s; lowpulseoccupancy largo sin signo = 0; relación de flotador = 0; concentración de flotador = 0; Char [] ssid = "Intel 2.4 GHz"; pasa de su char de red SSID (nombre) [] = "wifipass aquí"; int estado = WL_IDLE_STATUS; Char [] feedId = "feed aquí"; Char [] deviceId = "el dispositivo aquí"; Dispositivo que desea empujar a
char m2xKey [] = "su clave"; Su M2X acceso clave const int temperaturePin = 0;
Cliente WiFiClient; M2XStreamClient m2xClient (y cliente, m2xKey);
void setup() {Serial.begin(115200); pinMode(8,INPUT); starttime = millis (); //get el tiempo actual; if (WiFi.status() == WL_NO_SHIELD) {Serial.println ("WiFi protector no presente"); mientras;} mientras que (estado! = WL_CONNECTED) {Serial.print ("intentando conectar con SSID:"); Serial.println(SSID); Conectar a la red WPA/WPA2. Cambie esta línea si usa red WEP o abierta: estado = WiFi.begin (ssid, paso); Espere 10 segundos para la conexión: delay(10000); } Serial.println("Connected to wifi"); printWifiStatus(); }
void loop() {}
EarthQuake();
}
void GasSensor() {flotador vol; int sensorValue = analogRead(A0); vol = sensorValue (flotador) / 1024; Serial.Print ("la densidad del gas es"); Serial.println(vol); Delay(100); int respuesta = m2xClient.updateStreamValue (deviceId, «gas», vol); Serial.Print ("código de respuesta de cliente M2x:"); Serial.println(Response); }
void tempSensor() {a=analogRead(1); resistance=(float)(1023-a) * 10000/a; //get la resistencia del sensor, temperatura = 1 / (log (resistencia/10000) /B+1/298.15)-273.15;//convert a la temperatura a través de la hoja de datos; delay(1000); Serial.Print ("temperatura actual es"); Serial.println(Temperature*1.8+32); int respuesta = m2xClient.updateStreamValue(deviceId, "temp", temperature*1.8+32); Serial.Print ("código de respuesta de cliente M2x:"); Serial.println(Response); }
void DustSensor() {duración = pulseIn (pin, LOW); lowpulseoccupancy = lowpulseoccupancy + duración;
Si ((millis()-starttime) > sampletime_ms) //if el tiempo sampel == 30s {cociente = lowpulseoccupancy/(sampletime_ms*10.0); / / porcentaje entero 0 = > concentración 100 = 1.1 * pow (relación 3)-3.8 * pow (cociente 2) +520 * cociente + 0.62; / utilizando la curva de la hoja de especificaciones / / Serial.print(lowpulseoccupancy); / / Serial.print(","); / / Serial.print(ratio); Serial.Print ("concentración de polvo es:"); Serial.println(Concentration); lowpulseoccupancy = 0; startTime = millis(); int respuesta = m2xClient.updateStreamValue (deviceId, concentración y "polvo"); Serial.Print ("código de respuesta de cliente M2x:"); Serial.println(Response); } }
void myFlame() {if(isFlameDetected()) {int respuesta = m2xClient.updateStreamValue (deviceId, "Fuego", "1"); Serial.Print ("código de respuesta de cliente M2x:"); Serial.println(Response); turnOnLED(); } else turnOffLED(); int respuesta = m2xClient.updateStreamValue (deviceId, "Fuego", "0"); Serial.Print ("código de respuesta de cliente M2x:"); Serial.println(Response); }
void pinsInit() {pinMode (FLAME_SENSOR, entrada); pinMode (WATER_SENSOR, entrada); pinMode (zumbador, salida);} void turnOnLED() {/ / digitalWrite(LED,HIGH); Serial.println (¡ "llama detectada!!!"); } void turnOffLED() {/ / digitalWrite(LED,LOW); Serial.println ("No llama detectada"); } isFlameDetected() boolean {falso retorno if(digitalRead(FLAME_SENSOR)); otra vuelta verdad;}
Boolean isExposedToWater() {if(digitalRead(WATER_SENSOR) == LOW) devuelva true; otra vuelta falso;}
void MyWater() {if(isExposedToWater()) {Serial.println ("detecta agua!!!"); int respuesta = m2xClient.updateStreamValue (deviceId, "agua", "1"); Serial.Print ("código de respuesta de cliente M2x:"); Serial.println(Response);} Else {Serial.println ("No se detecta agua."); int respuesta = m2xClient.updateStreamValue (deviceId, "agua", "0"); Serial.Print ("código de respuesta de cliente M2x:"); Serial.println(Response);} }
void soundAlarm() {para (uint8_t i = 0; i < 20; i ++) {digitalWrite (zumbador, alto); delay(50); digitalWrite (zumbador, LOW); delay(50);}}
void EarthQuake() {{int sensorValue = analogRead(A3); Serial.println(sensorValue); Delay(1000); Si (sensorValue > = 1008) {Serial.println ("temblor de detectado!"); GasSensor(); tempSensor(); DustSensor(); myFlame(); isExposedToWater(); MyWater(); {}} else {}}} void printWifiStatus() {/ / el SSID de la red está conectado a la impresión: Serial.print ("SSID:"); Serial.println(WiFi.SSID()); Dirección IP de tu WiFi protector la impresión: dirección IP ip = WiFi.localIP(); Serial.Print ("dirección IP:"); Serial.println(IP); imprimir la fuerza de la señal recibida: rssi largo = WiFi.RSSI(); Serial.Print ("intensidad (RSSI) de la señal:"); Serial.Print(RSSI); Serial.println ("dBm"); } //float getVoltage (pin int) / / {//return (analogRead(pin) * 0.004882814); / /} void waitMicros(int val) {sin firmar largo un = micros(); b larga sin signo = micros(); while((b-a) < val) {b = micros(); if(a>b) {break;}}}