SMS kontrollerade Gate/Garage Remote (4 / 4 steg)

Steg 4: Skriva koden



Det första läste jag MediaTek LinkIt en Developer's Guide, i synnerhet avsnittet om du vill få smses som API. Jag har bifogat guiden här om denna länk slutar att fungera.

Jag har bifogat min fullständiga koden här, som ska bara fungera. Jag bröt den särskilt i små funktioner som bör vara lätt att förstå, jag kommer gå igenom var och en av dem här. Läs de infogade kommentarerna också för extra information.

Initialisera globala variabler

#include < LGSM.h >

dessa variabler används för LED
int ledGreenPin = 13. Jag använder den inbyggda LED som indikator
booleska ledGreenState = låg;

Detta är den PIN-kod som är ansluten till transistorn bas (via en resistor)
int triggerPin = 12;

dessa variabler är för sms
char smsContent [200].
int smsLength = 0;
char smsSender [20].

dessa variabler är för lösenord
CONST int passwordLength = 20; antal möjliga tecken i lösenord, kom ihåg den null terminatorn
CONST char lösenord [passwordLength] = "mellon"; Detta är den faktiska lösenordet

Setup() funktion

Setup-funktionen körs en gång när enheten startar. PIN-koden som styr ombord ledde (D13) och pin ansluten till transistorns base (D12) är initierats som resultat och till standardvärden för 0 ("låg").

Den seriella porten är förberetts på baudvärde för 9600, så att avlusningsinformation kan skrivas ut.

Funktionen waitForSim() anropas en gång (beskrivs senare)

void setup() {
denna kod körs en gång på setup
pinMode (ledGreenPin, produktionen); initialisera LED
pinMode (triggerPin, produktionen); initialisera PIN
digitalWrite (ledGreenPin, ledGreenState); Inaktivera LED
digitalWrite (triggerPin, låg); se till att utlösa är avstängd (under förutsättning att NPN transistor på en pullup ingång)
Serial.BEGIN(9600); starta den seriella porten
waitForSim(); vänta för simkort vara aktiv
}

waitForSim() funktion

Funktionen waitForSim() sitter helt enkelt i en loop, kontrollera varje halv sekund, definieras av delay(500), om SIM-kortet är klar. Den gröna lysdioden slås på/av varje kontroll så att det blinkar och sedan vänster på en gång SIM är redo.

void waitForSim() {
Detta är bara en funktion att vänta tills SIM-kortet är klar

Serial.Print ("väntar sim");
tag (!. LSMS.ready())
{
Delay(500);
ledGreenState =! ledGreenState; blinka led
digitalWrite (ledGreenPin, ledGreenState);
Serial.Print('.');
}
ledGreenState = hög; Aktivera ledde på när SIM är klar
digitalWrite (ledGreenPin, ledGreenState);
Serial.println ("SIM-Ready");
}

receiveSms() funktion

Denna funktion kommer att kontrollera om det finns ett nytt SMS. Om det finns en, de läsa i, ett tecken i taget, och förvaras i smsContent buffert. Om det finns inga nya SMS sedan returnerar funktionen falskt. Detta gör att vi kan kalla det så ofta vi vill i det viktigaste kretsar.

När SMS-meddelandet har blivit läst tas bort med kommandot flush().

booleska receiveSMS() {
denna funktion kommer att lagra en ny sms i buffertar
eller returnera false om det finns inga nya sms
int v.
om (LSMS.available()) / / kolla om det finns nya SMS
{
Serial.println ("det finns nya meddelande.");
LSMS.remoteNumber (smsSender, 20); Spara avsändaren i buffert

smsLength = 0; lagra ett nytt sms
medan (sant)
{
v = LSMS.read();
om (v < 0)
bryta;
smsContent [smsLength] = v;
smsLength ++;
}
smsContent [smsLength] = '\0';
smsLength ++;
LSMS.flush(); ta bort meddelande
returnera hög;
}
annat {
returnera låg;
}
}

displaySMS() funktion

Denna funktion skriver bara ut avsändare och innehåll buffertar till den seriella porten, vilket är praktiskt för felsökning.

void displaySMS() {
Serial.Print("Sender:");
Serial.println(smsSender);
Serial.Print("Content:");
Serial.println(smsContent);
Serial.println();
}

validatePassword() funktion

Denna funktion används för att jämföra innehållet i SMS med lösenord snöre. Om innehållet matchar strängen, då funktionen returnerar 1 (hög), annars returneras 0 (låg).

booleska validatePassword() {
den här funktionen returnerar true om innehållet i sms börjar med definierade lösenord
Serial.Print ("jämföra");
Serial.println(Password);
Serial.Print ("med");
Serial.println (smsContent);
om (strcmp (lösenord, smsContent) == 0) {
Serial.println ("giltigt lösenord");
returnera hög;
}
annat {
Serial.println ("lösenord ogiltigt");
returnera låg;
}
}

triggerRemote() funktion

Funktion som denna funktion helt enkelt sätter D12 pin (transistor bas) högt för en viss tid (1 sekund fungerade för mig, du fjärrkontrollen kanske föredrar något annat)

void triggerRemote() {
denna funktion kommer att "vända på" transistorn som emulerar en knapptryckning
Serial.println ("efterlikna tryck på knapp");
digitalWrite (triggerPin, hög);
Delay(1000);
digitalWrite (triggerPin, låg);
Serial.println ("efterlikna knapp release");
}

loop() funktion

Denna funktion är kärnan i en Arduino program och kör bara om och om igen för all evighet. Eftersom allt redan har brutits ned till funktioner är det helt självförklarande.

void loop() {
om (receiveSMS()) {
displaySMS();
om (validatePassword()) {
triggerRemote();
}
}
Delay(1000);
}

Se Steg
Relaterade Ämnen

SMS kontrollerade Wireless bevattningssystem

UPPDATERING 02/13/11: rösta har startat för Sparkfun Microcontroller tävling. Snälla rösta på mig!UPPDATERING 02/26/11: Jag vann ett andra pris! Huzzah! Tack för alla röster killar!UPPDATERA 03/17/11: Jag skulle älska att vinna en laserskärare i den...

SMS kontrollerad LED använder en Linkit

Linkit en har många transrecieving alternativ sedan dess mångsidiga anslutningsmöjligheter.Sedan Linkit har en inbyggd SIM-modul, vi behöver inte någon yttre sköld eller tillbehör.I detta instructable jag ska visa dig hur vi kan använda GSM SIM kort...

Arduino kontrollerade/Voice TV Remote

är en collegestudent, du kan bli ganska lata. Detta var motivationen bakom mitt projekt för att göra en ny fjärrkontroll för min TV som kan styras från min telefon, dator eller min röst.Jag började detta projekt mitt första år i college, innan jag en...

Raspberry Pi - SMS Garage dörren Butler

De flesta Raspberry Pi garage dörren fjärrkontroller hade öppna portar, eller andra funktioner som jag var inte alltför förtjust i. Så jag skapade mitt eget som innehåller mycket mer säkerhet, loggning av som öppnar garaget, videoinspelning, garage s...

Remote control via GPRS/GSM SMS(Arduino)

fjärrkontroll, särskilt när detta nr ethernet och Wifi i den utomhus, har varit en mycket djupgående saker tidigare. När jag var barn, bilden jag alltid som jag har en utrustning som kan styra alla vitvaror. Nu, detta blir verklighet, med Arduino och...

Garage dörröppnare

Använd en Raspberry Pi och en smartphone (eller laptop) för att öppna, stänga och övervaka en garageport. Att öppna och stänga dörren säkert genom att använda självsignerade certifikat installerat på familjemedlemmarnas mobiltelefoner. Om dörren är ö...

VÄXTHUSGASER, servrar RACK, akvarium och andra apparater temperatur handledare med SMS larmsystem genom att använda Arduino, itbrainpower.net 3G / GSM sköldar och 1WIRE temperaturgivare

Om projektetBygga själv din egen temperatur-övervakning system med högsta och lägsta temperatur trösklar, hålla vid liv massage och (oldies men goldies som) SMS personsökning och ARM/DISARM fjärrsystemet. Du kan övervaka en eller flera 1WIRE temperat...

Hur man installerar ett Garage dörröppnare i en instrumentpanel

Jag hade ett problem... Vi har en hantverkare garage dörröppnare, och två fjärrkontroller. Problemet är att fjärrkontrollerna höll vilse eftersom de hade inga klipp på dem. Min frus bil har inte en inbyggd i garage door-knappen, så jag började tänka...

Text-kontrollerade Raspberry Pi

Jag blev inspirerad att göra detta instructable genom groversarvesh00's och sumitgrover97's senaste posterna i Raspberry Pi tävling 2016. Många Instructables och tutorials jag har sett på internet för text-kontrollerade Raspberry Pi har involverat GS...

IPhone Garage dörröppnare (uppdaterad!)

UPDATED!Bytte jag till ett 12 volts relä, lagt till en projekt låda och uppgraderade auto reläet bort receptet. Joy.Hej.Jag skäms lite över denna hacka, eftersom den använder mestadels befintlig teknik, men jag skall lägga upp den ändå för alla ära o...

Någon anordning via SMS genom att använda Arduino, relä styrelser och c-uGSM eller d-u3G sköldar-fjärrkontrollen

Sedan några gånger, jag kände behovet av att ha fjärrstyrning för switch på och av några utomhusbelysning. Titta i min trädgård, jag väljer vissa komponenter och jag bygger denna bunt SMS kontrollerade RELAY (S).Här, delar jag detta projekt med dig,...

HEM i/o - PLC gränssnitt

PLC gränssnitt- Digital kontroll av hem i/o med PLC-Allen BradleyBörjar villkor: Hem I/O styrs av inbyggda sensorer i/o-signalerIngångar:Infart stängd (Bit 261)Infart öppnade (Bit 260)Utgång:Infart Open (Bit 193)Infart stängd (lite 194)Anslut i/o-fun...

Bygga en enorm RC monstertruck - Golf Cart Wheels - Moped Motor - Remote kontrollerade

här är en DIY att bygga en enorm RC monstertruck. Du måste ha en svetsare.Jag har haft att se fjärrstyrda lastbilar kommit långt under de senaste par åren. Jag har även ägt flera av dem längs vägen. Det hela började med AA drivs 2WD lastbilar med enk...

PIGate, web aktiverat garage dörr/gate konservöppnare

Bygga en avlägsen grind öppnare med hjälp av en expressjs och en Raspberry PiIntroduktionDet är något mycket tillfredsställande om du klickar på ett webbgränssnitt eller slå en knapp på en app och se någon fysisk händelse inträffar. Det är en bro mel...

DIY Remote Gate konservöppnare

Efter att bygga ett stängsel som vi beslutat att vi behöver en grind men strax efter att ha installerat det jag hade att komma ut i ösregnet att öppna den pull bilen upp komma tillbaka och stänga den. Det kan vara lättare att köpa en pre gjorde kit m...

Android kontrollerade Garage dörröppnare

Mitt projekt är en Android kontrollerade Garage dörröppnare. Denna typ av projekt har gjort innan, men med omfattande hårdvara, sådan arduino styrelser, servrar, etc., och involverade komplicerad kodning och pengar. Jag gjorde det alla med minimal hå...

Arduino kontrollerad bil Tracking System baserade på SMS-

Hej jag gjorde en Arduino kontrollerad bil Tracking System baserat på SMS för min fars bil.Använda modulerna är;Arduino nano V3.0SkyLab GPS-modulenWaveCom GSM-modulSoftwareSerial bibliotek, TinyGPS används för att kommunicera med moduler.När jag ring...

Stealth Garage dörren Remote

jag ville dölja min garage dörren fjärrkontroll och fortfarande har lätt tillgång till den.Detta är en mycket enkel instructable med de grundläggande verktyg som behövs.Förteckning över leveranser:Garage dörren fjärrkontrollNormalt öppen momentan Swi...

Internet kontrollerad Garage dörröppnare

design för våra internet kontrollerad garage dörröppnare har i verk för år i vårt garage. Systemet fungerar med bara två små moduler och en statusindikator för varje garageport. Alla moduler är lätta att installera och underhålla. Pengar från denna t...