Stap 3: De code!
Laat me uitleggen wat precies het programma zouden moeten doen.
Zoals de titel van het project stelt, stuurt de Linkit een SMS-bericht op een bepaald getal nadat een bepaalde waarde op de analoge sensor wordt doorkruist. Dus eigenlijk is wat we moeten doen het schrijven van een programma dat leest de sensor-waarde na een bepaalde periode van tijd en wordt de waarde met een opgegeven drempelwaarde. Als de waarde dit merk, een vooraf gedefinieerde SMS verstuurd worden naar het nummer gegeven overschrijdt!
Klinkt eenvoudig, nietwaar?
Laten we code!
Zorg ervoor dat GSM- en de sensor-bibliotheken. Ik heb de Grove temp sensor die is gebaseerd op DHT 22 aangesloten.
#include "LGSM.h"
#include "DHT.h"
#define DHTPIN 2 / / welke pin hebt wij de temp sensor aangesloten
#define DHTTYPE DHT22 / / DHT 22 (AM2302)
Koord bericht = "Let op! Temperatuur gekruist 30 graden Celsius. ";"
DHT dht (DHTPIN, DHTTYPE);
VOID Setup
{
Serial.begin(9600);
DHT.begin();
terwijl (!. LSMS.ready()) / / wachten op de SIM-kaart initialiseren
{
delay(1000); Wacht een seconde en probeer het opnieuw
}
Serial.println ("Sim geïnitialiseerd"); Wanneer SIM wordt gestart, afdrukken "Sim geïnitialiseerd" in de seriële poort
LSMS.beginSMS("0123456789"); Hiermee slaat u het nummer waar de gebruiker wil om SMS te verzenden. Worden gewijzigd voordat het uploaden van de schets
}
void loop
{
zweven t = 0,0;
zweven h = 0,0;
LSMS.print(message); Voorbereiden van de variabele bericht worden verzonden door LSMS
Als (dht.readHT (t, & h))
{
Serial.println("---");
Serial.Print ("temperatuur =");
Serial.println(t);
Serial.Print ("vochtigheid =");
Serial.println(h);
}
int. temp = (int) t;
if(temp>30)
{
Als (LSMS.endSMS())
Zo ja, SMS verzenden
{
Serial.println ("SMS verzonden"); "SMS verzonden" afdrukken in seriële poort als verzenden succesvol is
}
anders
{
Serial.println ("SMS wordt niet verzonden");
Anders print "SMS wordt niet verzonden"
}
}
anders
{
Serial.println ("temperatuur niet meer dan 30.");
}
delay(10000);
Er wacht 10 seconden!
}