Android och Arduino SMS -baserad hemautomation: 5 steg (med bilder)
Android och Arduino SMS -baserad hemautomation: 5 steg (med bilder)
Anonim
Android och Arduino SMS -baserad hemautomation
Android och Arduino SMS -baserad hemautomation
Android och Arduino SMS -baserad hemautomation
Android och Arduino SMS -baserad hemautomation

! ! ! LÄGGA MÄRKE TILL ! ! !

Eftersom det lokala mobiltelefontornet uppgraderas i mitt område kan jag inte längre använda den här GSM -modulen. Det nyare tornet stöder inte längre 2G -enheter. Därför kan jag inte längre ge något stöd för detta projekt

Nyligen fick jag en relativt billig Quad Band GSM/GPRS -modul att spela med. Det är en SIM800L -modul och kommunicerar med vilken mikro som helst via en seriell port. Den levererades komplett med en panelmonterad antenn.

Jag bestämde mig för att bygga ett enkelt SMS -kontrollsystem som använder kommandon för sms -tjänster (SMS) för att styra enheter och indikera larm.

Steg 1: SMS -kommandon

SMS -kommandon
SMS -kommandon

I likhet med alla kommunikationssystem måste specifika kommandon skickas till en fjärrenhet för att berätta vad de ska göra. På samma sätt måste fjärrenheten svara eller reagera på dessa kommandon. Detta projekt består av två delar, SMS Controller och en vanlig mobiltelefon.

Tanken var att skapa en enkel SMS -controller med fyra digitala utgångar. Beroende på det mottagna SMS måste enheten kunna styra de enskilda utgångarna.

Jag bestämde mig också för att inkludera fyra digitala ingångar. Detta kan användas för att indikera larm eller annan information.

Innan jag började bygga bestämde jag mig för att skapa specifika kommandon för specifika funktioner. Dessa "kommandon" skickas med ett SMS från en mobiltelefon.

SMS Controller Ta emot kommandon:

o1: 1 - vrid utgång 1 På

o1: 0 - vrid utgång 1 Av

o1: p - pulsutgång 1 På, stäng sedan av

o2: 1 - vrid utgång 2 På

o2: 0 - vrid utgång 2 Av

o2: p - pulsutgång 2 På, stäng sedan av

o3: 1 - slå ut 3 På

o3: 0 - vrid utgång 3 Av

o3: p - pulsutgång 3 På, stäng sedan av

o4: 1 - vrid utgång 4 På

o4: 0 - vrid utgång 4 Av

o4: p - pulsutgång 4 På, stäng sedan av

???? - Begär status för ingångar och utgångar

#### - Återställ systemet

För feedback bör SMS -kontrollern svara på de mottagna kommandona och svara med ett SMS. Jag bestämde mig för att detta svars -SMS skulle innehålla status för alla I/O -nålar.

Kommandon för svarskontroller:

i1: x i2: x i3: x i4: x o1: x o2: x o3: x o4: x

där x är I/O -status, 1 för På, 0 för Av.

Steg 2: Bygga SMS -kontrollen

Bygga SMS -kontrollen
Bygga SMS -kontrollen
Bygga SMS -kontrollen
Bygga SMS -kontrollen
Bygga SMS -kontrollen
Bygga SMS -kontrollen

Utrustning som behövs:

Vilken som helst Arduino eller fristående ATMEGA328p på en brödbräda

SIM800L GSM/GPRS -modul med ett simkort som kan skicka och ta emot SMS

Steg ner DC/DC -omvandlare

NOTERA !!

DC/DC -omvandlaren krävs för att driva SIM800L -modulen. Denna modul fungerar mellan 3,7V och 5V, beroende på vilken version du har. Denna modul kräver också en strömförsörjning som kan leverera upp till 2A när modulen överför data. Den kan inte drivas direkt från Arduino Uno !!

Kretsen är ganska enkel. Jag har monterat och testat det på brödbräda.

Strömmen till kretsen går via DC/DC -omvandlaren, med utspänningen inställd på 4,5V. Det finns fyra lysdioder för att simulera de digitala utgångarna och fyra knappar för de digitala ingångarna. SIM800L är ansluten till Rx/Tx -stiften på ATMEGA328p.

En femte lysdiod används för att indikera när systemet är upptaget med att skicka ett SMS.

Steg 3: Programmering av ATMEGA328p

Programmering av ATMEGA328p
Programmering av ATMEGA328p
Programmering av ATMEGA328p
Programmering av ATMEGA328p

Innan du programmerar, öppna INO -filen och redigera telefonnumret. Ersätt xxxxxxxxxx med ditt eget mobiltelefonnummer på rad 46. Kompilera om och ladda upp filen.

Läs också instruktionerna om hur du konfigurerar programvarans seriella port i INO -filen.

//=============================================================================//

//! ! ! NOTERA ! ! !

// ================

//

// BUFFER I PROGRAMVARANSERIALBibliotek som ska ändras till 200

//

// För att använda Software Serial bör användaren också ändra Software Serial BUFFER till 200.

// Detta måste redigeras i följande fil:

//

// C:/Program Files/Arduino x.x.x/Hardware/Arduino/AVR/Libraries/SoftwareSerial/src/SoftWareSerial.h

//

// Ändra buffert enligt nedan:

//

// #ifndef _SS_MAX_RX_BUFF

// #define _SS_MAX_RX_BUFF 200

// RX -buffertstorlek

// #endif

//

//=============================================================================

Se denna instruktion för att programmera ATMEGA328p på brödbrädan med en Arduino UNO.

www.instructables.com/id/Arduino-UNO-as-AtM…

Steg 4: Använda SMS -kontrollen

Använda SMS -kontrollen
Använda SMS -kontrollen

Använda SMS -kontrollen

SMS -kontrollen skickar automatiskt ett SMS till din telefon om någon av de fyra ingångarna utlöses. Detaljerna för utlösaren kommer att finnas i SMS -texten.

SMS -meddelanden och kommandon kan redigeras efter dina behov i INO -filen.

Testar utdata för SMS -kontroller

Skicka följande kommandon från din mobiltelefon till ditt SIM800L -simkortnummer:

o1: 1, detta kommer att slå på utgång 1.

På din telefon får du följande SMS:

i1: 0 i2: 0 i3: 0 i4: 0 o1: 1 o2: 0 03: 0 o4: 0

01: 0, detta stänger av utgång 1.

På din telefon får du följande SMS:

i1: 0 i2: 0 i3: 0 i4: 0 o1: 0 o2: 0 03: 0 o4: 0

01: p, detta kommer att slå på utgång 1 i 1 sekund och sedan stänga av utgång 1 igen (pulserad).

På din telefon får du följande SMS:

i1: 0 i2: 0 i3: 0 i4: 0 o1: 0 o2: 0 03: 0 o4: 0

Testar ingångar för SMS -kontroller

På SMS -kontrollen, tryck kort på knapp 1

På din telefon får du automatiskt följande SMS:

i1: 1 i2: 0 i3: 0 i4: 0 o1: 0 o2: 0 03: 0 o4: 0

På SMS -kontrollen, tryck kort på knapp 2

På din telefon får du automatiskt följande SMS:

i1: 1 i2: 1 i3: 0 i4: 0 o1: 0 o2: 0 03: 0 o4: 0

På SMS -kontrollen, tryck kort på knapp 3

På din telefon får du automatiskt följande SMS:

i1: 1 i2: 1i3: 1 i4: 0 o1: 0 o2: 0 03: 0 o4: 0

Som kan ses på det mottagna SMS, ändras utmatningarna enligt de mottagna kommandona. Ingångarna ändras dock inte från 1 till 0 efter att knapparna trycktes in. Eftersom jag ville se eventuella ändringar på ingångarna bestämde jag mig för att försegla ingångsstatus tills ett återställningskommando skickas till SMS -kontrollen.

Återställ larm

För att återställa inmatningsstatus, skicka följande kommando:

####, detta återställer ingångsstatusen.

På din telefon får du följande SMS:

i1: 0 i2: 0 i3: 0 i4: 0 o1: 0 o2: 0 03: 0 o4: 0

Statusuppdateringar

Du kan också begära status när som helst genom att skicka följande kommando:

????, detta kommer att begära en statusuppdatering av I/Os.

På din telefon får du följande SMS:

i1: x i2: x i3: x i4: x o1: x o2: x 03: x o4: x

där x anger status, 1 för på, 0 för av.

Steg 5: Android -applikation

Android -applikation
Android -applikation
Android -applikation
Android -applikation
Android -applikation
Android -applikation

Med MIT App Inventor 2 (https://ai2.appinventor.mit.edu/) skapade jag ett enkelt användargränssnitt för min Android -mobiltelefon. Med den här appen kan du anpassa beskrivningen av varje I/O. Det gör det också möjligt att ange telefonnumret.

De fyra knapparna används för att styra utgångarna, medan kryssrutorna anger ingångsstatus.

För att redigera appen, skapa ett MIT App Inventor 2 -konto och importera AIA -filen.

För att installera appen på din telefon, kopiera APK -filen till din telefon och installera den. Du måste aktivera installationen av appar från "Okända källor" under telefonens säkerhetsinställningar.