Indholdsfortegnelse:

Arduino -baseret GSM/SMS fjernbetjening: 16 trin (med billeder)
Arduino -baseret GSM/SMS fjernbetjening: 16 trin (med billeder)

Video: Arduino -baseret GSM/SMS fjernbetjening: 16 trin (med billeder)

Video: Arduino -baseret GSM/SMS fjernbetjening: 16 trin (med billeder)
Video: Receive SMS Using GSM Module and Arduino 2024, November
Anonim
Arduino baseret GSM/SMS fjernbetjening
Arduino baseret GSM/SMS fjernbetjening

! ! ! VARSEL !

På grund af at det lokale mobiltelefontårn er blevet opgraderet i mit område, er jeg ikke længere i stand til at bruge dette GSM -modul. Det nyere tårn understøtter ikke længere 2G -enheder. Derfor kan jeg ikke længere give nogen støtte til dette projekt.

Med en så bred vifte af GSM -moduler til rådighed for amatøren sluttede de fleste af os med at købe et. Jeg købte et SIM800L -modul lokalt og endte med at lege med modulets forskellige kommandoer.

Ved hjælp af Arduino Uno og Arduino IDE var jeg i stand til at gøre mine ideer til virkelighed. Dette kom ikke let, idet den ENESTE STØRSTE SPØRGSMÅL var begrænsningen på kun 2KB SRAM. Efter en masse research på internettet og forskellige fora var jeg i stand til at overvinde denne begrænsning.

Forskellige programmeringsteknikker, en meget bedre forståelse af Arduino -kompilatoren og brug af SIM -kortet og EEPROM til yderligere hukommelse reddede dette projekt. Efter nogle ændringer af koden blev en stabil prototype bygget og testet over en periode på en uge.

En ulempe ved den begrænsede SRAM var, at enheden ikke kunne udstyres med display og brugernøgler. Dette resulterede i en fuldstændig omskrivning af koden. Uden brugergrænseflade var den eneste mulighed for at fortsætte med projektet at gøre brug af SMS -beskeder til at konfigurere enheden såvel som brugerne.

Dette viste sig at være et spændende projekt, og flere futures blev tilføjet, efterhånden som udviklingen fortsatte.

Mit hovedmål var at holde fast i Arduino Uno, eller i dette tilfælde, ATMEGA328p, og ikke bruge nogen overflademonterede komponenter. Dette vil gøre det lettere for offentligheden at kopiere og bygge enheden.

Specifikation af enheden:

  • Der kan maksimalt programmeres 250 brugere på enheden
  • Fire digitale udgange
  • Fire digitale indgange
  • Hver udgang kan konfigureres som en PULSE- eller ON/OFF -udgang
  • Outputpulsvarighed kan indstilles mellem 0,5.. 10 sekunder
  • Hver input kan konfigureres til at udløse ændringer fra OFF til ON.
  • Hver input kan konfigureres til at udløse ON til OFF ændringer
  • Hver inputforsinkelsestid kan indstilles mellem 0 sekunder og 1 time
  • SMS -beskeder for ændringer på input kan sendes til 5 forskellige brugere
  • Navne og statustekst for hvert input kan angives af brugeren
  • Navne og statustekst for hvert output kan angives af brugeren
  • Enheden kan konfigureres til at modtage SIM -kortbalancemeddelelser via USSD -beskeder.
  • Alle brugere kan anmode om I/O -statusopdateringer af enheden
  • Alle brugere kan styre individuelle output via SMS -beskeder
  • Alle brugere kan styre individuelle udgange ved at ringe til enheden

Sikkerhedsfunktioner

  • Indledende opsætning af enheden kan kun udføres, mens den er på enheden.
  • Første opsætning kan kun udføres af MASTERBRUGEREN
  • De første opsætningskommandoer deaktiveres automatisk efter ti minutter.
  • Kun opkald og sms'er fra kendte brugere kan styre enheden
  • Brugere kan kun betjene de output, der er tildelt dem af MASTERBRUGEREN

Andre funktioner

  • Opkald til denne enhed er gratis, da opkaldet aldrig bliver besvaret.
  • Når enheden kaldes, vil opkaldet først falde efter 2 sekunder. Dette er en bekræftelse til den, der ringer op, at enheden besvarede opkaldet.
  • Hvis SIM -kortudbyderen understøtter USSD -meddelelser, kan MASTERBRUGEREN foretage balanceforespørgsler. USSD -meddelelsen, der indeholder saldoen, videresendes derefter til MASTERBRUGEREN.

Trin 1: Strømforsyning

Strømforsyning
Strømforsyning

For at sikre, at enheden kan tilsluttes standard sikkerhedssystemer (alarmsystemer, elektriske garageporte, elektriske portmotorer), vil enheden blive drevet fra 12V DC, som normalt er tilgængelig på sådanne systemer.

Strøm tilsluttes 12V IN og 0V terminaler og er beskyttet af en 1A sikring. Yderligere 12V OUT -terminaler er tilgængelige og er også beskyttet af sikringen.

Diode D1 beskytter enheden mod omvendte polaritetsforbindelser på 12V -ledningerne.

Kondensatorer C1 og C2 filtrerer enhver støj fra 12V forsyningsledninger. 12V -forsyningen bruges til at drive enhedens relæer.

5V -forsyningen består af en LM7805L -spændingsregulator og leverer en stabil +5V, der er nødvendig for SIM800L GSM -modulet, samt mikroprocessoren. Kondensatorer C3 og C4 filtrerer enhver støj, der kan være til stede på +5V forsyningsledningen. Der blev brugt relativt store elektrolytkondensatorer, da SIM800L GSM -modulet bruger ganske lidt strøm ved transmission.

Der kræves ingen kølelegeme på spændingsregulatoren.

Trin 2: Digitale indgange

Digitale indgange
Digitale indgange
Digitale indgange
Digitale indgange

De digitale indgangssignaler er alle 12V og skal have grænseflade med 5V mikrokontrolleren. Til dette bruges optokoblere til at isolere 12V -signalerne fra 5V -systemet.

1K -indgangsmodstanden begrænser indgangsstrømmen til optokobleren til omkring 10mA.

På grund af pladsbegrænsninger var der ikke plads til rådighed på PC-kortet til 5V pull-up modstande. Mikrocontrolleren er konfigureret til at aktivere input-pins svage pull-ups.

Uden signal til stede på indgangen (LAV) på optokobleren, vil der ikke strømme strøm gennem optokoblerens LED. Optokoblingstransistoren er således slukket. Den svage pull-up af mikrokontrolleren vil trække kollektoren op til næsten 5V og vil blive set som en logik HØJ af mikrokontrolleren.

Med 12V påført (HIGH) på optokoblingens indgang vil ca. 10mA strømme gennem optokoblerens LED. Optokoblingstransistoren vil således blive tændt. Dette vil trække kollektoren ned til næsten 0V og vil blive betragtet som en logik LAV af mikrokontrolleren.

Bemærk, at indgangen, der ses af mikrokontrolleren, er omvendt i forhold til 12V -indgangen.

Normal kode til at læse input -pin ser således ud:

boolsk input = digitalRead (inputpin);

For at korrigere for det inverterede signal skal du bruge følgende kode:

boolsk Input =! digitalRead (inputpin); // BEMÆRK! foran læsningen

Nu vil indgangen, som mikrokontrolleren ser, svare til indgangen på 12V -indgangen.

Det sidste inputkredsløb består af 4 digitale indgange. Hver indgang er forbundet til terminaler på pc -kortet.

Trin 3: Digitale udgange

Digitale udgange
Digitale udgange
Digitale udgange
Digitale udgange
Digitale udgange
Digitale udgange

Normalt, når et kredsløb kun driver et minimalt antal relæer, er den bedste måde at bruge et transistor -driverkredsløb som vist. Det er enkelt, billigt og effektivt.

Modstandene giver nedtrapning til jorden og transistorbasisstrømbegrænsning. Transistoren bruges til at øge den tilgængelige strøm til at drive et relæ. Med kun 1mA trukket fra mikrokontrollertappen, kan transistoren skifte en belastning på 100mA. Mere end nok til de fleste typer relæer. Dioden er en tilbageløbsdiode, der beskytter kredsløbet mod højspændingsspidser under relæskift. Den ekstra fordel ved at bruge dette kredsløb er, at relæets driftsspænding kan være forskellig fra mikrokontrollerens spænding. I stedet for at bruge et 5V -relæ kan man således bruge enhver DC -spænding på op til 48V.

Introduktion til ULN2803

Jo flere relæer et projekt kræver, jo højere komponentantal. Dette vil gøre PCB -designet vanskeligere og kan bruge værdifuld PCB -plads. Men brug af et transistormatrix, som ULN2803, vil helt sikkert hjælpe med at holde PCB -størrelsen lille. ULN2803 er ideel til 3.3V og 5V input fra en mikrocontroller og kan drive relæer op til 48V DC. Denne ULN2803 har 8 individuelle transistor kredsløb, hvert kredsløb udstyret med alle de komponenter, der kræves for at skifte et relæ.

Det endelige udgangskredsløb består af et ULN3803, der driver 4 12V DC udgangsrelæer. Hver kontakt af relæet er tilgængelig på PC Board -terminalerne.

Trin 4: Micro Controller Oscillator

Mikrocontroller Oscillator
Mikrocontroller Oscillator
Mikrocontroller Oscillator
Mikrocontroller Oscillator
Mikrocontroller Oscillator
Mikrocontroller Oscillator

Oscillator kredsløb

Mikrocontrolleren har brug for en oscillator for at fungere korrekt. For at bevare Arduino Uno -designet vil kredsløbet bruge standard 16MHz oscillator. Der er to muligheder:

Krystal

Denne metode anvender en krystal, der er forbundet til to belastningskondensatorer. Dette er den mest almindelige mulighed.

Resonator

En resonator er dybest set en krystal og to indlæsningskondensatorer i en enkelt 3-bens pakke. Dette reducerer mængden af komponenter og øger den ledige plads på pc -kortet.

For at holde komponenttallet så lavt som muligt valgte jeg at bruge en 16MHz resonator.

Trin 5: Indikations -LED'er

LED -indikatorer
LED -indikatorer
LED -indikatorer
LED -indikatorer

Hvad vil et kredsløb være uden nogle lysdioder? Der blev sørget for 3 mm lysdioder på pc -kortet.

1K modstande bruges til at begrænse strømmen gennem LED'en til mindre end 5mA. Ved brug af 3 mm højlysdioder er lysstyrken fremragende.

For nem fortolkning af status -LED'er bruges to farver. Ved at kombinere de to lysdioder med blinkende indikationer kan der opnås ganske mange oplysninger fra kun to lysdioder.

Rød LED

Den røde LED bruges til at indikere fejltilstande, lange forsinkelser, eventuelle forkerte kommandoer.

Grøn LED

Den grønne LED bruges til at angive sunde og/eller korrekte input og kommandoer.

Trin 6: Nulstil kredsløb for mikroprocessor

Micro Processor Nulstil kredsløb
Micro Processor Nulstil kredsløb

Af sikkerhedsmæssige årsager er nogle af enhedens funktioner kun tilgængelige i de første 10 minutter efter opstart af enheden.

Med en reset -knap behøver strømmen til enheden ikke at være slukket for at nulstille enheden.

Hvordan det virker

10K -modstanden holder RESET -linjen tæt på 5V. Når der trykkes på knappen, trækkes RESET -linjen til 0V, og dermed holdes mikrokontrolleren i nulstilling. Når knappen slippes, vender RESET -linjen tilbage til %v, og mikrokontrolleren genindstilles.

Trin 7: SIM800L -modul

SIM800L -modul
SIM800L -modul
SIM800L -modul
SIM800L -modul
SIM800L -modul
SIM800L -modul

Hjertet i enheden er SIM800L GSM -modulet. Dette modul bruger kun 3 I/O -ben på mikrokontrolleren.

Modulet tilsluttes mikrokontrolleren via en standard seriel port.

  • Alle kommandoer til enheden sendes via den serielle port ved hjælp af standard AT -kommandoer.
  • Ved et indgående opkald, eller når der modtages en SMS, sendes oplysningerne til mikrokontrolleren via den serielle port ved hjælp af ASCII -tekst.

For at spare plads er GSM-modulet forbundet til PC-kortet via et 7-benet header. Dette gør det let at fjerne GSM -modulet. Dette gør det også muligt for brugeren let at indsætte/fjerne SIM -kortet i bunden af modulet.

Et aktivt SIM -kort er påkrævet, og SIM -kortet skal kunne sende og modtage SMS -beskeder.

Opsætning af SIM800L GSM -modulet

Ved opstart af enheden trækkes nulstillingstappen til GSM -modulet ned i et sekund. Dette sikrer, at GSM -modulet først starter, efter at strømforsyningen er stabiliseret. Det tager et par sekunder at genstarte GSM -modulet, så vent 5 sekunder, før du sender nogen AT -kommandoer til modulet.

For at sikre, at GSM -modulet er konfigureret til at kommunikere korrekt med mikrokontrolleren, bruges følgende AT -kommandoer under opstart:

bruges til at afgøre, om et GSM -modul er tilgængeligt

I+CREG?

Afstemning af denne kommando, indtil GSM -modulet er registreret på mobiltelefonnetværket

AT+CMGF = 1

Indstil SMS -beskedtilstand til ASCII

AT+CNMI = 1, 2, 0, 0, 0

Hvis SMS er tilgængelig, skal du sende SMS -detaljer til GSM -modulets serielle port

AT+CMGD = 1, 4

Slet alle SMS -beskeder, der er gemt på SIM -kortet

AT+CPBS = / "SM

Indstil telefonbogen i GSM -modulet til SIM -kortet

AT+COPS = 2, derefter AT+CLTS = 1, derefter AT+COPS = 0

Indstil GSM -modulets tid til mobiltelefonens netværkstid

Vent 5 sekunder, indtil tiden er indstillet

AT+CUSD = 1

Aktiver USSD -beskedfunktion

Trin 8: Mikrocontrolleren

Mikrokontrolleren
Mikrokontrolleren
Mikrokontrolleren
Mikrokontrolleren
Mikrokontrolleren
Mikrokontrolleren

Mikrocontrolleren er en standard AtMega328p, den samme som bruges på Arduino Uno. Koden er således sammenlignelig med begge. For at muliggøre nem indbygget programmering er en 6-benet programmeringsoverskrift tilgængelig på pc-kortet.

De forskellige sektioner af enheden er forbundet til mikroprocessoren og omfatter følgende:

  • Fire digitale indgange
  • Fire digitale udgange
  • Oscillatoren
  • To indikations -LED'er
  • Nulstil kredsløb
  • SIM800L GSM -modul

Al kommunikation til og fra GSM -modulet sker ved hjælp af funktionen SoftwareSerial (). Denne metode blev brugt til at frigøre den vigtigste serielle port til Arduino IDE under udviklingsfasen.

Med kun 2 KB SRAM og 1 KB EEPROM er der ikke nok hukommelse til at gemme mere end et par brugere, der kan kobles til enheden. For at frigøre SRAM gemmes alle brugeroplysninger på SIM -kortet på GSM -modulet. Med dette arrangement kan enheden tage højde for op til 250 forskellige brugere.

Konfigurationsdata for enheden gemmes i EEPROM, hvilket adskiller brugerdata og systemdata fra hinanden.

Der er stadig flere ekstra I/O -ben til rådighed, men muligheden for at tilføje et LCD -display og/eller tastatur var imidlertid ikke mulig på grund af den store mængde SRAM, der bruges af SoftWareSerial () modtagelses- og transmitteringsbuffere, På grund af manglen på nogen form for brugergrænseflade på enheden programmeres alle indstillinger og brugere ved hjælp af SMS -beskeder.

Trin 9: Optimering af SRAM -hukommelse

Optimering af SRAM -hukommelse
Optimering af SRAM -hukommelse

Ret tidligt i udviklingsfasen rapporterede Arduino IDE lav SRAM -hukommelse, når koden blev kompileret. Flere metoder blev brugt til at overvinde dette.

Begræns de data, der modtages på den serielle port

GSM -modulet rapporterer alle meddelelser til mikrokontrolleren den serielle port. Når du modtager nogle SMS -beskeder, kan den samlede længde på den modtagne besked være over 200 tegn. Dette kan hurtigt forbruge alt det SRAM, der er tilgængeligt på AtMega -chippen, og vil forårsage stabilitetsproblemer.

for at forhindre dette vil kun de første 200 tegn i ALLE meddelelser modtaget fra GSM -modulet blive brugt. Nedenstående eksempel viser, hvordan dette gøres ved at tælle de modtagne tegn i variabel tæller.

// scan efter data fra softwarens serielle port

// ----------------------------------------------- RxString = ""; Tæller = 0; mens (SSerial.available ()) {forsinkelse (1); // kort forsinkelse for at give tid til at nye data placeres i buffer // få nyt tegn RxChar = char (SSerial.read ()); // tilføj det første 200 tegn til strengen, hvis (Tæller <200) {RxString.concat (RxChar); Tæller = Tæller + 1; }}

Reducering af Serial.print () -kode

Selvom den er praktisk under udviklingen, kan Arduino Serial Monitor bruge meget SRAM. Koden blev udviklet ved hjælp af så få som muligt Serial.print () -kode. En en del af koden er testet til at fungere, al Serial.print () -kode blev fjernet fra den del af koden.

Brug af Serial.print (F (("")) kode

Mange oplysninger, der normalt vises på Arduino Serial Monitor, giver mere mening, når der tilføjes beskrivelser. Tag følgende eksempel:

Serial.println ("Venter på specifikke handlinger");

Strengen "Venter på specifikke handlinger" er rettet og kan ikke ændres.

Under kompilering af koden vil kompilatoren inkludere strengen "Waiting for specific actions" i FLASH -hukommelsen.

Derudover ser kompilatoren, at strengen er en konstant, der bruges af instruktionerne "Serial.print" eller "Serial.println". Under opstart af mikroen placeres denne konstant også i SRAM-hukommelse.

Ved at bruge præfikset "F" i Serial.print () -funktionerne fortæller det kompilatoren, at denne streng kun er tilgængelig i FLASH -hukommelse. I dette eksempel indeholder strengen 28 tegn. Dette er 28 bytes, der kan frigøres i SRAM.

Serial.println (F ("Venter på specifikke handlinger"));

Denne metode gælder også for SoftwareSerial.print () -kommandoerne. Da GSM -modulet fungerer på AT -kommandoer, indeholder koden talrige SoftwareSerial.print ("xxxx") kommandoer. Ved at bruge præfikset "F" frigjorde næsten 300 bytes SRAM.

Brug ikke hardware seriel port

Efter fejlfinding af kode blev hardware seriel port deaktiveret ved at fjerne ALLE Serial.print () kommandoer. Dette frigjorde et par ekstra bytes SRAM.

Uden nogen Serial.print () -kommandoer tilbage i koden, blev yderligere 128 bytes SRAM stillet til rådighed. Dette blev gjort ved at fjerne hardware -serielporten fra koden. Denne fred op 64 byte transmittere og 64 byte modtage buffere.

// Serial.begin (9600); // hardware seriel port deaktiveret

Brug af EEPROM til strenge

For hver input og output skulle tre strenge gemmes. De er kanalnavnet, strengen, når kanalen er tændt, og strengen, når kanalen er slukket.

Med i alt 8 I/O -kanaler bliver deres

  • 8 strenge, der indeholder kanalnavne, hver på 10 tegn
  • 8 strenge, der indeholder kanalen On description, hver 10 tegn lang
  • 8 strenge, der indeholder kanalen Off beskrivelse, hver 10 tegn lang

Dette annoncer op til 240 bytes SRAM. I stedet for at gemme disse strenge i SRAM, gemmes de i EEPROM. Dette frigjorde yderligere 240 bytes SRAM.

Deklarationsstreng med de korrekte længder

Variabel deklareres normalt i begyndelsen af koden. En almindelig fejl ved erklæring af en strengvariabel er, at vi ikke deklarerer strengen med det korrekte antal tegn.

String GSM_Nr = "";

String GSM_Name = ""; String GSM_Msg = "";

Under opstart allokerer mikrokontrolleren ikke hukommelse i SRAM til disse variabler. Dette kan senere forårsage ustabilitet, når disse strenge bruges.

For at forhindre dette skal du angive strengene med det korrekte antal tegn, som strengen vil bruge i softwaren.

String GSM_Nr = "1000000000";

String GSM_Name = "2000000000"; String GSM_Msg = "3000000000";

Læg mærke til, hvordan jeg ikke erklærede strengene med de samme tegn. Hvis du erklærer disse strenge alle med sige "1234567890", vil kompilatoren se den samme streng i de tre variabler og kun tildele nok hukommelse i SRAM til en af strengene.

Trin 10: Software Serial Buffer Size

Software Seriel buffer størrelse
Software Seriel buffer størrelse

I den følgende kode vil du bemærke, at op til 200 tegn kan læses fra softwarens serielle port.

// scan efter data fra softwarens serielle port

// ----------------------------------------------- RxString = ""; Tæller = 0; mens (SSerial.available ()) {forsinkelse (1); // kort forsinkelse for at give tid til at nye data placeres i buffer // få nyt tegn RxChar = char (SSerial.read ()); // tilføj det første 200 tegn til strengen, hvis (Tæller <200) {RxString.concat (RxChar); Tæller = Tæller + 1; }}

Dette kræver også en buffer på mindst 200 bytes til softwarens serielle port. Som standard er softwarens serielle portbuffer kun 64 bytes. For at øge denne buffer skal du søge efter følgende fil:

SoftwareSerial.h

Åbn filen med et tekstredigeringsprogram, og ændr bufferstørrelsen til 200.

/******************************************************************************

*Definitioner *********************************************** ****************************/ #ifndef _SS_MAX_RX_BUFF #define _SS_MAX_RX_BUFF 200 // RX buffer størrelse #endif

Trin 11: Lav PC -kortet

Fremstilling af PC Board
Fremstilling af PC Board

PC -kortet blev designet ved hjælp af freeware -versionen af Cadsoft Eagle (jeg tror, at navnet er ændret).

  • PC Board er et enkeltsidet design.
  • Der bruges ingen overflademonterede komponenter.
  • Alle komponenter er monteret på pc -kortet, inklusive SIM800L -modulet.
  • Der kræves ingen eksterne komponenter eller forbindelser
  • Wire jumpere er skjult under komponenter for et renere udseende.

Jeg bruger følgende metode til at lave PC Boards:

  • PC Board-billedet udskrives på Press-n-Peel ved hjælp af en laserprinter.
  • Press-n-Peel lægges derefter oven på et rent stykke PC-kort og fastgøres med lidt tape.
  • PC Board-billedet overføres derefter fra Press-n-Peel til det tomme PC Board ved at føre kortet gennem en laminator. For mig fungerer 10 pas bedst.
  • Efter at PC-kortet er kølet ned til stuetemperatur, løftes Press-n-Peel langsomt fra kortet.
  • PC -kortet ætses derefter ved hjælp af ammoniumpersulfatkrystaller opløst i varmt vand.
  • Efter ætsning fjernes den blå Press-n-Peel og sort toner ved at rense det ætsede PC-kort med lidt acetone.
  • Pladen skæres derefter i størrelse med en Dremel
  • Huller til alle gennemgående huller bores ved hjælp af et 1 mm bor.
  • Terminalskrueforbindelserne bores ved hjælp af et 1,2 mm bor.

Trin 12: Montering af pc -kortet

Montering af PC Board
Montering af PC Board
Montering af pc -kortet
Montering af pc -kortet
Montering af pc -kortet
Montering af pc -kortet
Montering af PC Board
Montering af PC Board

Montering sker ved at tilføje de mindste komponenter først og arbejde dig op til de største komponenter.

Alle komponenter, der blev brugt i denne instruks, undtagen SIM800 -modulet, blev hentet fra min lokale leverandør. Tænker dem for altid at have lager. Tag et kig på deres sydafrikanske websie:

www.shop.rabtron.co.za/catalog/index.php

BEMÆRK! Først lodde de to jumpere placeret under ATMEGA328p IC

Ordren er som følger:

  • Modstande og diode
  • Genstarts knap
  • IC -stik
  • Strøm regulator
  • Header pins
  • Små kondensatorer
  • LED'er
  • Sikringsholder
  • Terminalblokke
  • Relæer
  • Elektrolytiske kondensatorer

Inden IC'erne indsættes, tilsluttes enheden til 12V, og alle spændinger testes for at være korrekte.

Til sidst skal du dække PCB -kortets kobberside med en vis klar lak for at beskytte den mod elementerne.

Når lakken er tørret, skal du indsætte IC'erne, men forlade GSM -modulet, indtil AtMega er blevet programmeret.

Trin 13: Programmering af AtMega328p

Programmering af AtMega328p
Programmering af AtMega328p
Programmering af AtMega328p
Programmering af AtMega328p
Programmering af AtMega328p
Programmering af AtMega328p

# # Firmwareopgradering til version 3.02 # #

Aktiveret SMS til at blive sendt til MASTERBRUGER, når strømmen er genoprettet til enheden

Jeg bruger en Arduino Uno med et programmeringsskjold til at programmere enheden. For mere information om, hvordan du bruger en Arduino Uno som programmerer, henvises til denne Instructable:

Arduino UNO som AtMega328P programmerer

GSM -modulet skal fjernes fra pc -kortet for at få adgang til programmeringsoverskriften. Pas på ikke at beskadige antennekablet, når du fjerner GSM -modulet.

Tilslut programmeringskablet mellem programmereren og enheden ved hjælp af programmeringsoverskriften på pc -kortet., Og upload skitsen til enheden.

Den eksterne 12V forsyning er ikke nødvendig for at programmere enheden. PC -kortet forsynes fra Arduino via programmeringskablet.

Åbn den vedhæftede fil i Arduino IDE, og programmer den til enheden.

Efter programmeringen skal du fjerne programmeringskablet og indsætte GSM -modulet.

Enheden er nu klar til brug.

Trin 14: Tilslutning af enheden

Tilslutning af enheden
Tilslutning af enheden
Tilslutning af enheden
Tilslutning af enheden
Tilslutning af enheden
Tilslutning af enheden

Alle forbindelser til enheden foretages via skrueterminalerne.

Tænd for enheden

Sørg for, at du har indsat et registreret SIM -kort i GSM -modulet, og at SIM -kortet kan sende og modtage SMS -beskeder.

Tilslut en 12V DC strømforsyning til 12V IN og en af 0V terminalerne. Når den er tændt, tændes den røde LED på pc -kortet. På cirka et minut skulle GSM -modulet have oprettet forbindelse til mobiltelefonnetværket. Den røde LED slukker, og en rød LED på GSM -modulet blinker hurtigt.

Når dette trin er nået, er enheden klar til konfiguration.

Indgangsforbindelser

De digitale indgange fungerer på 12V. For at tænde en indgang skal 12V påføres indgangen. Hvis du fjerner 12V, slukkes indgangen.

Outputforbindelser

Hvert output består af en switch-over kontakt. Tilslut hver kontakt efter behov.

Trin 15: Første opsætning

Første opsætning
Første opsætning

Første opsætning af enheden skal udføres for at sikre, at alle parametre er indstillet til fabriksindstillinger, og SIM -kortet er konfigureret til at acceptere brugeroplysninger i det korrekte format.

Da alle kommandoer er SMS -baserede, skal du bruge en anden telefon til at udføre opsætningen.

For den første opsætning skal du være ved enheden.

Indstil MASTER BRUGER telefonnummeret

Da kun MASTERBRUGEREN kan konfigurere enheden, skal dette trin først udføres.

  • Enheden skal have strøm.
  • Tryk på og slip Reset -knappen, og vent på, at den røde LED på pc -kortet slukker.
  • NET -LED'en på GSM -modulet blinker hurtigt.
  • Enheden er nu klar til at acceptere de første opsætningskommandoer. Dette skal udføres inden for 10 minutter.
  • Send en SMS -besked med MASTER, beskrivelse til enhedens telefonnummer.
  • Hvis den modtages, blinker den grønne LED på pc -kortet to gange.
  • MASTERBRUGEREN er nu programmeret.

Gendan enheden til fabriksindstillinger

Efter at MASTERBRUGEREN er programmeret, skal enhedens indstillinger sættes til fabriksindstillingerne.

  • Send en SMS -besked med kun CLEARALL til enhedens telefonnummer.
  • Hvis den modtages, blinker den grønne og røde LED på PC -kortet alternativt en gang i sekundet. Enheden er blevet gendannet med fabriksindstillingerne.
  • Alle indstillinger er blevet gendannet til fabriksindstillingerne.
  • Tryk på og slip Reset -knappen for at genstarte enheden.

Formatering af SIM -kortet

Det sidste trin er at slette alle oplysninger, der er gemt på SIM -kortet, og konfigurere dem til brug i denne enhed.

  • Tryk på og slip Reset -knappen, og vent på, at den røde LED på PC -kortet slukker.
  • NET -LED'en på GSM -modulet blinker hurtigt.
  • Enheden er nu klar til at acceptere de første opsætningskommandoer. Dette skal udføres inden for 10 minutter.
  • Send en SMS -besked med kun ERASESIM til enhedens telefonnummer.
  • Hvis den modtages, blinker den grønne LED på PC -kortet med træetider.

Enheden er nu konfigureret og er klar til brug.

Trin 16: SMS -kommandoer

SMS -kommandoer
SMS -kommandoer

Der er tre forskellige typer kommandoer, der bruges af enheden. Alle kommandoer sendes via SMS og er alle i følgende format:

KOMMANDO,,,,,

  • Alle kommandoer, undtagen kommandoerne NORMAL USER, er store og små bogstaver.
  • Parametre er ikke store og små bogstaver.

Indledende opsætningskommandoer

MASTER, navn

SMS -afsenderens telefonnummer bruges som MASTER BRUGER telefonnummer. en Beskrivelse for enheden kan tilføjes her.

SLET ALT

Nulstil enheden til fabriksindstillingerne

CLEARSIM

Slet alle data fra SIM -kortet

NULSTIL

Genstart enheden

MASTER USER Kommandoer til konfiguration af enheden

OUTTMODE, c, m, t BEMÆRK! ! ! IKKE GENNEMFØRT

Indstil bestemte kanaler til at have PULSED, TIMED eller LATCHING udgange. t er tidsvarighed i minutter for TIMED -udgange

PULS, cccc

Indstil bestemte kanaler til PULSED -udgange. Hvis det ikke er indstillet, indstilles kanaler som LATCHING -udgange.

PULSETIME, tIndstiller den pulserede outputvarighed i sekunder (0.. 10s)

INPUTON, cccc

Indstil kanaler, der skal udløses, og send en SMS -besked, når tilstanden skifter fra OFF til ON

INPUTOFF, cccc

Indstil kanaler, der skal udløses, og send en SMS -besked, når tilstanden skifter fra ON til OFF

INTIME, c, t

Indstiller inputforsinkelsestiden til registrering af statusændringer i sekunder

INTEXT, ch, navn, on, off

Indstil hver inputkanals navn, på tekst og fra tekst

OUTTEXT, ch, navn, on, off

Indstil hver outputkanals navn, på tekst og fra tekst

Tilføj, placering, nummer, Calloutputs, SMSoutputs, input

Føj bruger til SIM -kort på hukommelsesplacering, med output- og inputkanaler tildelt brugeren

Del, beliggenhed

Slet bruger fra SIM -kortets hukommelse 'placering'

Kanalnavn

Pulserer output med navnet ChannelName

ChannelName, onText eller ChannelName, offText

Slår output til/fra med navnet på ChannelName og onText/offText

Normale brugerkommandoer til styring af enheden

???? Anmod om I/O -statusopdatering. Status SMS vil blive sendt til ophavsmanden.

Kanalnavn

Pulserer output med navnet ChannelName

Kanalnavn, onText

Slår output til med navnet på ChannelName og statustekst onText

ChannelName, offText Slukker output med navnet på ChannelName og statustekst offText

For en mere detaljeret beskrivelse af kommandoerne henvises til det vedhæftede PDF -dokument.

Anbefalede: