Sensor värde utlöses SMS Alert med LinkitOne (3 / 4 steg)
Steg 3: Koden!
Låt mig förklara vad exakt programmet bör göra.
Som projektnamn, skickar Linkit ett SMS till ett visst nummer efter ett visst värde på analog sensor korsas. Så i princip är vad vi behöver göra att skriva ett program som läser sensor värdet efter viss tid och kontrollerar värdet med ett angivet tröskelvärde. Om värdet passerar detta märke, en pre definierat SMS skickas till nummer ges!
Lätt, låter inte det?
Låt oss kod!
Se till att inkludera GSM och din sensor bibliotek. Jag har anslutit Grove temp sensorn som är baserad på DHT 22.
#include "LGSM.h"
#include "DHT.h"
#define DHTPIN 2 / / vilken pin har vi anslutit temp sensorn till
#define DHTTYPE DHT22 / / DHT 22 (AM2302)
Sträng meddelande = "uppmärksamhet! Temperaturen korsade 30 grader celsiust. ";
DHT dht (DHTPIN, DHTTYPE);
void setup()
{
Serial.BEGIN(9600);
DHT.BEGIN();
tag (!. LSMS.ready()) / / Wait för sim initieras
{
Delay(1000); Vänta en sekund och försök igen
}
Serial.println ("Sim initieras"); När SIM startas, skriva ut "Sim initieras" i den seriella porten
LSMS.beginSMS("0123456789"); Sparar numret där användaren vill skicka SMS. Att ändras innan du lägger upp skiss
}
void loop()
{
flyta t = 0,0;
flyta h = 0,0;
LSMS.print(message); Förbereda meddelande variabel som ska skickas av LSMS
om (dht.readHT (& t & h))
{
Serial.println("---");
Serial.Print ("temperatur =");
Serial.println(t);
Serial.Print ("fuktighet =");
Serial.println(h);
}
int temp = (int) t;
IF(temp>30)
{
om (LSMS.endSMS())
Om så är fallet, skicka SMS
{
Serial.println ("SMS skickade"); Skriva ut "SMS skickade" i seriell port om skicka lyckas
}
annat
{
Serial.println ("SMS skickas inte");
Andra print "SMS skickas inte"
}
}
annat
{
Serial.println ("temperatur inte mer än 30.");
}
Delay(10000);
gör det vänta 10 sekunder!
}