Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
! ! ! 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
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
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
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
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
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.