Paso 3: El código!
Me explico lo que debe hacer exactamente el programa.
Como dice el título del proyecto: el Linkit enviará un mensaje de texto a un número específico después de un cierto valor en el sensor analógico se cruza. Así que básicamente lo que tenemos que hacer es escribir un programa que lee el valor del sensor después de períodos específicos de tiempo y comprueba el valor con un umbral especificado. Si el valor de cruza esta marca, un pre definidos SMS se enviará el número de!
Suena fácil, ¿no?
¡ Código!
Asegúrese de que son GSM y sus bibliotecas de sensor. He conectado el sensor de temperatura del Grove basado en DHT 22.
#include "LGSM.h"
#include "DHT.h"
#define DHTPIN 2 / / Qué pin hemos conectado el sensor de temperatura para
#define DHTTYPE DHT22 / / DHT 22 (AM2302)
Cadena de mensaje = "¡ atención! Cruzado de temperatura 30 grados de centígrado. ";
DHT dht (DHTPIN, DHTTYPE);
void setup()
{
Serial.Begin(9600);
DHT.Begin();
mientras (!. LSMS.ready()) / / esperar a que la tarjeta sim inicializar
{
Delay(1000); Espere un segundo y vuelva a intentarlo
}
Serial.println ("Sim inicializada"); Cuando se inicia la SIM, Imprimir "Sim inicializado" en el puerto serie
LSMS.beginSMS("0123456789"); Guarda el número que el usuario quiere enviar SMS. Cambiarse antes de subir el sketch
}
void loop()
{
Float t = 0.0;
Float h = 0.0;
LSMS.print(message); Preparar la variable mensaje enviado por LSMS
Si (dht.readHT (t & h))
{
Serial.println("---");
Serial.Print ("temperatura =");
Serial.println(t);
Serial.Print ("humedad =");
Serial.println(h);
}
int temp = (int) t;
if(Temp>30)
{
Si (LSMS.endSMS())
Si es así, envíe el SMS
{
Serial.println ("SMS enviado"); Imprimir "SMS enviado" en el puerto serie si el envío es exitoso
}
otra cosa
{
Serial.println ("SMS no se envía");
Else print "SMS no se envía"
}
}
otra cosa
{
Serial.println ("temperatura de no más de 30.");
}
Delay(10000);
hacen esperar 10 segundos!
}