Përmbajtje:

Njësia e Telekomandës GSM/SMS e bazuar në Arduino: 16 hapa (me fotografi)
Njësia e Telekomandës GSM/SMS e bazuar në Arduino: 16 hapa (me fotografi)

Video: Njësia e Telekomandës GSM/SMS e bazuar në Arduino: 16 hapa (me fotografi)

Video: Njësia e Telekomandës GSM/SMS e bazuar në Arduino: 16 hapa (me fotografi)
Video: 6130 - Gjuhë shqipe - Tregim i zgjedhur 2024, Nëntor
Anonim
Njësia e telekomandës e bazuar në Arduino GSM/SMS
Njësia e telekomandës e bazuar në Arduino GSM/SMS

! ! ! N O T I C E! !

Për shkak të përmirësimit të kullës lokale të celularëve në zonën time, unë nuk jam më në gjendje ta përdor këtë modul GSM. Kulla më e re nuk mbështet më pajisjet 2G. Prandaj, nuk mund të jap më asnjë mbështetje për këtë projekt.

Me një gamë kaq të gjerë të moduleve GSM të disponueshme për hobbyistin, shumica prej nesh përfundoi blerjen e një. Bleva një modul SIM800L në vend, dhe përfundova duke luajtur me komandat e ndryshme të modulit.

Duke përdorur Arduino Uno dhe Arduino IDE, unë kam qenë në gjendje t'i kthej idetë e mia në realitet. Kjo nuk erdhi lehtë, me ÇSSHTJEN E VETM MIG T MADHE që ishte kufizimi i vetëm 2KB SRAM. Pas shumë kërkimeve në internet dhe forume të ndryshme, unë kam qenë në gjendje të kapërcej këtë kufizim.

Teknikat e ndryshme të programimit, një kuptim shumë më i mirë i përpiluesit Arduino dhe përdorimi i kartës SIM dhe EEPROM për memorie shtesë, e shpëtuan këtë projekt. Pas disa ndryshimeve në kod, një prototip i qëndrueshëm u ndërtua dhe u testua gjatë një periudhe javore.

Një pengesë e SRAM të kufizuar ishte se njësia nuk mund të pajiset me një ekran dhe çelësat e përdoruesit. Kjo rezultoi në një rishkrim të plotë të kodit. Pa ndërfaqen e përdoruesit, e vetmja mundësi e mbetur për të vazhduar me projektin, ishte përdorimi i mesazheve SMS për të konfiguruar njësinë, si dhe përdoruesit.

Ky doli të ishte një projekt emocionues dhe më shumë të ardhme u shtuan ndërsa zhvillimi vazhdoi.

Qëllimi im kryesor ishte të qëndroja me Arduino Uno, ose në këtë rast, ATMEGA328p, dhe të mos përdorja asnjë përbërës të montimit në sipërfaqe. Kjo do ta bëjë më të lehtë për publikun e gjerë të kopjojë dhe ndërtojë njësinë.

Specifikimi i njësisë:

  • Një maksimum prej 250 përdoruesish mund të programohen në njësi
  • Katër dalje dixhitale
  • Katër hyrje dixhitale
  • Çdo dalje mund të konfigurohet si dalje PULSE ose ON/OFF
  • Kohëzgjatja e pulsit të daljes mund të vendoset midis 0.5.. 10 sekonda
  • Çdo hyrje mund të konfigurohet për të aktivizuar ndryshimet OFF në ON.
  • Çdo hyrje mund të konfigurohet për të aktivizuar ndryshimet ON në OFF
  • Çdo kohë e vonesës së hyrjes mund të vendoset midis 0 sekonda dhe 1 orë
  • Mesazhet SMS për ndryshimet në Inputet mund t'i dërgohen 5 përdoruesve të ndryshëm
  • Emrat dhe teksti i statusit për secilën hyrje mund të vendosen nga përdoruesi
  • Emrat dhe teksti i statusit për secilën dalje mund të vendosen nga përdoruesi
  • Njësia mund të konfigurohet për të marrë mesazhe të bilancit të kartës SIM përmes mesazheve USSD.
  • Të gjithë përdoruesit mund të kërkojnë përditësime të statusit I/O të njësisë
  • Të gjithë përdoruesit mund të kontrollojnë daljet individuale përmes mesazheve SMS
  • Të gjithë përdoruesit mund të kontrollojnë daljet individuale duke thirrur njësinë

Karakteristikat e sigurisë

  • Konfigurimi fillestar i njësisë mund të bëhet vetëm gjatë qëndrimit në njësi.
  • Konfigurimi fillestar mund të kryhet vetëm nga MASTER USER
  • Komandat e konfigurimit fillestar çaktivizohen automatikisht pas dhjetë minutash.
  • Vetëm telefonatat dhe SMS të dërguara nga përdoruesit e njohur mund ta kontrollojnë njësinë
  • Përdoruesit mund të përdorin vetëm rezultatet e caktuara nga MASTER USER

Karakteristika te tjera

  • Thirrjet në këtë njësi janë falas, pasi thirrja nuk merr përgjigje.
  • Kur njësia thirret, thirrja do të bjerë vetëm pas 2 sekondash. Ky është konfirmim për telefonuesin se njësia iu përgjigj thirrjes.
  • Nëse ofruesi i shërbimit të kartës SIM mbështet mesazhe USSD, hetimet për bilancin mund të bëhen nga MASTER USER. Mesazhi USSD që përmban bilancin, më pas do t'i përcillet Përdoruesit MASTER.

Hapi 1: Furnizimi me energji elektrike

Furnizimi me energji elektrike
Furnizimi me energji elektrike

Për të siguruar që njësia mund të lidhet me sistemet standarde të sigurisë (sistemet e alarmit, dyert e garazhit elektrik, motorët e portave elektrike), njësia do të mundësohet nga 12V DC e cila normalisht është e disponueshme në sisteme të tilla.

Fuqia aplikohet në terminalet 12V IN dhe 0V, dhe mbrohet nga një siguresë 1A. Terminalet shtesë 12V OUT janë në dispozicion, dhe gjithashtu mbrohen nga siguresa.

Dioda D1 mbron njësinë kundër lidhjeve të polaritetit të kundërt në linjat 12V.

Kondensatorët C1 dhe C2 filtrojnë çdo zhurmë të pranishme në linjat e furnizimit 12V. Furnizimi 12V përdoret për të fuqizuar stafetat e njësisë.

Furnizimi 5V përbëhet nga një rregullator i tensionit LM7805L dhe prodhon një +5V të qëndrueshme të nevojshme për modulin SIM800L GSM, si dhe mikro procesorin. Kondensatorët C3 dhe C4 filtrojnë çdo zhurmë që mund të jetë e pranishme në linjën e furnizimit +5V. Përdoren kondensatorë relativisht të mëdhenj elektrolitikë, pasi moduli SIM800L GSM përdor mjaft energji kur transmeton.

Asnjë lavaman nuk kërkohet në rregullatorin e tensionit.

Hapi 2: Inpute dixhitale

Inputet dixhitale
Inputet dixhitale
Inputet dixhitale
Inputet dixhitale

Sinjalet hyrëse dixhitale janë të gjitha 12V, dhe duhet të ndërlidhen me mikrokontrolluesin 5V. Për këtë, bashkuesit opto përdoren për të izoluar sinjalet 12V nga sistemi 5V.

Rezistenca hyrëse 1K kufizon rrymën hyrëse në bashkuesin opto në rreth 10mA.

Për shkak të kufizimeve të hapësirës, nuk kishte hapësirë në bordin e PC për rezistencat tërheqëse 5V. Mikrokontrolluesi është krijuar për të mundësuar që kunjat e hyrjes të kenë tërheqje të dobëta.

Pa sinjal të pranishëm në hyrjen (LOW) të bashkuesit opto, asnjë rrymë nuk do të rrjedhë përmes LED -it të bashkuesit opto. Kështu, tranzistori opto -bashkues është i fikur. Tërheqja e dobët e mikrokontrolluesit do të tërheqë kolektorin në pothuajse 5V dhe do të shihet si një logjikë LART HIGH nga mikrokontrolluesi.

Me 12V të aplikuar (LART) në hyrjen e bashkuesit opto, rreth 10mA do të rrjedhin përmes LED -it të bashkuesit opto. Kështu, tranzistori opto -bashkues do të ndizet. Kjo do të ulë kolektorin në pothuajse 0V, dhe do të shihet si një logjikë LOW nga mikrokontrolluesi.

Vini re se hyrja e parë nga mikrokontrolluesi është e përmbysur në krahasim me hyrjen 12V.

Kodi normal për të lexuar pinin e hyrjes duket si më poshtë:

boolean Input = digitalRead (inputpin);

Për të korrigjuar sinjalin e përmbysur, përdorni kodin e mëposhtëm:

boolean Input =! digitalRead (inputpin); // KUJDES për! para leximit

Tani, hyrja e parë nga mikrokontrolluesi do të korrespondojë me hyrjen në hyrjen 12V.

Qarku përfundimtar i hyrjes përbëhet nga 4 hyrje dixhitale. Çdo hyrje është e lidhur me terminalet në PC Board.

Hapi 3: Rezultatet dixhitale

Rezultatet dixhitale
Rezultatet dixhitale
Rezultatet dixhitale
Rezultatet dixhitale
Rezultatet dixhitale
Rezultatet dixhitale

Normalisht, me një qark që drejton vetëm një numër minimal të stafetë, mënyra më e mirë është të përdorni një qark të shoferit transistor siç tregohet. Simpleshtë e thjeshtë, me kosto të ulët dhe efektive.

Rezistencat sigurojnë tërheqje në tokë dhe kufizim të rrymës së bazës së tranzistorit. Transistori përdoret për të rritur rrymën në dispozicion për të drejtuar një stafetë. Me vetëm 1mA të tërhequr nga kunja e mikrokontrolluesit, transistori mund të kalojë një ngarkesë prej 100mA. Më se e mjaftueshme për shumicën e llojeve të stafetëve. Dioda është një diodë e kthyeshme, duke mbrojtur qarkun nga goditjet e tensionit të lartë gjatë ndërrimit të stafetës. Avantazhi i shtuar i përdorimit të këtij qarku është se tensioni i funksionimit të stafetës mund të jetë i ndryshëm nga tensioni i mikrokontrolluesit. Kështu, në vend që të përdorni një stafetë 5V, mund të përdorni çdo tension DC deri në 48V.

Prezantimi i ULN2803

Sa më shumë stafetë që kërkon një projekt, aq më i lartë është numri i komponentëve. Kjo do ta bëjë dizajnin e PCB më të vështirë dhe mund të përdorë hapësirë të vlefshme të PCB. Por përdorimi i një grupi transistorësh, si ULN2803, patjetër që do të ndihmojë në mbajtjen e madhësisë së PCB të vogël. ULN2803 është i përshtatshëm në mënyrë ideale për hyrjet 3.3V dhe 5V nga një mikro kontrollues dhe mund të drejtojë stafetë deri në 48V DC. Ky ULN2803 ka 8 qarqe transistor individual, secili qark i pajisur me të gjithë përbërësit e kërkuar për të ndërruar një stafetë.

Qarku përfundimtar i daljes përbëhet nga një ULN3803, që drejton 4 stafetë dalës 12V DC. Çdo kontakt i stafetës është i disponueshëm në terminalet e PC Board.

Hapi 4: Oshilator mikrokontrollues

Oshilator mikrokontrollues
Oshilator mikrokontrollues
Oshilator mikrokontrollues
Oshilator mikrokontrollues
Oshilator mikrokontrollues
Oshilator mikrokontrollues

Qarku oshilator

Mikrokontrolluesi ka nevojë për një oshilator për të funksionuar si duhet. Për t'iu përmbajtur modelit Arduino Uno, qarku do të përdorë oshilatorin standard 16MHz. Dy opsione janë në dispozicion:

Kristal

Kjo metodë përdor një kristal të lidhur me dy kondensatorë ngarkues. Ky është opsioni më i zakonshëm.

Rezonator

Një rezonator është në thelb një kristal dhe dy kondensatorë ngarkues në një paketë të vetme me 3 kunja. Kjo zvogëlon sasinë e përbërësve dhe rrit hapësirën në dispozicion në PC Board.

Për ta mbajtur numrin e përbërësve sa më të ulët të jetë e mundur, unë zgjodha të përdor një rezonator 16MHz.

Hapi 5: LED -të e treguesit

LEDs tregues
LEDs tregues
LEDs tregues
LEDs tregues

Çfarë do të jetë çdo qark pa disa LED? Propozimi u bë në bordin e PC për LED 3mm.

Rezistencat 1K përdoren për të kufizuar rrymën përmes LED në më pak se 5mA, Kur përdorni LED me shkëlqim 3 mm, shkëlqimi është i shkëlqyeshëm.

Për interpretim të lehtë të LED -ve të statusit, përdoren dy ngjyra. Duke kombinuar dy LED me tregues ndezës, mjaft informacion mund të merret nga vetëm dy LED.

LED i kuq

LED i kuq përdoret për të treguar kushtet e defektit, vonesat e gjata, çdo komandë të pasaktë.

LED e gjelbër

LED i gjelbër përdoret për të treguar hyrjet dhe komandat e shëndetshme dhe/ose të sakta.

Hapi 6: Qarku i Rivendosjes së Mikro Procesorit

Qarku i Rivendosjes së Mikro Procesorit
Qarku i Rivendosjes së Mikro Procesorit

Për arsye sigurie, disa nga funksionet e njësisë janë të disponueshme vetëm në 10 minutat e para pas ndezjes së njësisë.

Me një buton të rivendosjes, energjia në njësi nuk ka nevojë të fiket për të rivendosur njësinë.

Si punon

Rezistenca 10K do ta mbajë linjën RESET afër 5V. Kur shtypet butoni, linja RESET do të tërhiqet në 0V, duke e mbajtur kështu mikrokontrolluesin në rivendosje. Kur të lëshohet butoni, linja RESET kthehet në %v, duke rifilluar mikrokontrolluesin.

Hapi 7: Moduli SIM800L

Moduli SIM800L
Moduli SIM800L
Moduli SIM800L
Moduli SIM800L
Moduli SIM800L
Moduli SIM800L

Zemra e njësisë është moduli SIM800L GSM. Ky modul përdor vetëm 3 kunja I/O në mikrokontrolluesin.

Moduli ndërfaqet me mikrokontrolluesin nëpërmjet një porte serike standarde.

  • Të gjitha komandat në njësi dërgohen përmes portës serike duke përdorur komandat standarde AT.
  • Me një thirrje hyrëse, ose kur merret një SMS, informacioni i dërgohet mikrokontrolluesit përmes portës serike duke përdorur tekstin ASCII..

Për të kursyer hapësirë, moduli GSM lidhet me Bordin e PC përmes një titulli 7-pin. Kjo e bën të lehtë heqjen e modulit GSM. Kjo gjithashtu i mundëson përdoruesit të futë/heqë me lehtësi kartën SIM në fund të modulit.

Kërkohet një kartë SIM aktive dhe karta SIM duhet të jetë në gjendje të dërgojë dhe të marrë mesazhe SMS.

Konfigurimi i modulit SIM800L GSM

Me ndezjen e njësisë, kunja e rivendosjes së modulit GSM tërhiqet poshtë për një sekondë. Kjo siguron që moduli GSM të fillojë vetëm pasi të jetë stabilizuar furnizimi me energji elektrike. Moduli GSM kërkon disa sekonda për tu rindezur, kështu që prisni 5 sekonda para se të dërgoni ndonjë komandë AT në modul.

Për të siguruar që moduli GSM është konfiguruar për të komunikuar saktë me mikrokontrolluesin, komandat e mëposhtme AT përdoren gjatë fillimit:

AT

përdoret për të përcaktuar nëse një modul GSM është i disponueshëm

AT+CREG?

Anketoni këtë komandë derisa moduli GSM të regjistrohet në rrjetin e celularëve

AT+CMGF = 1

Vendosni modalitetin e mesazheve SMS në ASCII

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

Nëse SMS është e disponueshme, dërgoni të dhëna SMS në portën serike të modulit GSM

AT+CMGD = 1, 4

Fshini çdo mesazh SMS të ruajtur në kartën SIM

AT+CPBS = / "SM

Vendosni librin e telefonit të modulit GSM në kartën SIM

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

Vendosni kohën e modulit GSM në kohën e rrjetit të celularëve

Prisni 5 sekonda që koha të caktohet

AT+CUSD = 1

Aktivizoni funksionin e mesazheve USSD

Hapi 8: Mikrokontrolluesi

Mikrokontrolluesi
Mikrokontrolluesi
Mikrokontrolluesi
Mikrokontrolluesi
Mikrokontrolluesi
Mikrokontrolluesi

Mikrokontrolluesi është një standard AtMega328p, i njëjtë me atë të përdorur në Arduino Uno. Kodi është kështu i krahasueshëm me të dyja. Për të lejuar programim të lehtë në bord, një kokë programimi me 6 kunja është në dispozicion në Bordin e PC.

Seksionet e ndryshme të njësisë janë të lidhura me mikro procesorin dhe përfshijnë sa vijon:

  • Katër hyrje dixhitale
  • Katër dalje dixhitale
  • Lëkundësi
  • Dy LED tregues
  • Rivendos qarkun
  • Moduli SIM800L GSM

Të gjitha komunikimet drejt dhe nga moduli GSM bëhen duke përdorur funksionin SoftwareSerial (). Kjo metodë u përdor për të liruar portin serik kryesor për Arduino IDE gjatë fazës së zhvillimit.

Me vetëm 2KB SRAM dhe 1KB EEPROM, nuk ka memorie të mjaftueshme për të ruajtur më shumë se disa përdorues që mund të lidhen me njësinë. Për të liruar SRAM, të gjitha informacionet e përdoruesit ruhen në kartën SIM në modulin GSM. Me këtë rregullim, njësia mund të kujdeset për deri në 250 përdorues të ndryshëm.

Të dhënat e konfigurimit të njësisë ruhen në EEPROM, duke ndarë kështu të dhënat e përdoruesit dhe të dhënat e sistemit nga njëra -tjetra.

Ende ka disa kunja rezervë I/O në dispozicion, megjithatë, opsioni i shtimit të një ekrani LCD dhe/ose tastiere nuk ishte i mundur për shkak të sasisë së madhe të SRAM të përdorur nga SoftWareSerial () për marrjen dhe transmetimin e tamponëve, Për shkak të mungesës së çdo lloji të ndërfaqes së përdoruesit në njësi, të gjitha cilësimet dhe përdoruesit programohen duke përdorur mesazhe SMS.

Hapi 9: Optimizimi i kujtesës SRAM

Optimizimi i kujtesës SRAM
Optimizimi i kujtesës SRAM

Shumë herët në fazën e zhvillimit, Arduino IDE raportoi një memorie të ulët SRAM kur përpiloi kodin. Për të kapërcyer këtë, u përdorën disa metoda.

Kufizoni të dhënat e marra në portin serik

Moduli GSM do t'i raportojë të gjitha mesazhet te mikrokontrolluesi në portën serike. Kur merrni disa mesazhe SMS, gjatësia totale e mesazhit të marrë mund të jetë më shumë se 200 karaktere. Kjo mund të konsumojë shpejt të gjithë SRAM -in e disponueshëm në çipin AtMega dhe do të shkaktojë probleme stabiliteti.

për të parandaluar këtë, do të përdoren vetëm 200 karakteret e para të çdo mesazhi të marrë nga moduli GSM. Shembulli më poshtë tregon se si bëhet kjo duke numëruar karakteret e marra në numëruesin e ndryshueshëm.

// skanoni për të dhëna nga porta serike e softuerit

// -------------------------------------------------- RxString = ""; Counter = 0; ndërsa (SSerial.available ()) {vonesë (1); // vonesë e shkurtër për të dhënë kohë që të dhënat e reja të vendosen në tampon // merrni karakter të ri RxChar = char (SSerial.read ()); // shtoni 200 karakteret e para në varg nëse (Counter <200) {RxString.concat (RxChar); Counter = Counter + 1; }}

Reduktimi i kodit Serial.print ()

Edhe pse i përshtatshëm gjatë zhvillimit, Arduino Serial Monitor mund të përdorë shumë SRAM. Kodi është zhvilluar duke përdorur sa më pak të jetë e mundur kodin Serial.print (). Një pjesë e kodit është testuar për të punuar, i gjithë kodi Serial.print () është hequr nga ajo pjesë e kodit.

Përdorimi i kodit Serial.print (F ((""))

Shumë informacione të shfaqura normalisht në Arduino Serial Monitor kanë më shumë kuptim kur shtohen përshkrimet. Merrni shembullin e mëposhtëm:

Serial.println ("Duke pritur për veprime specifike");

Vargu "Duke pritur për veprime specifike" është fiks dhe nuk mund të ndryshojë.

Gjatë përpilimit të kodit, përpiluesi do të përfshijë vargun "Duke pritur për veprime specifike" në kujtesën FLASH.

Për më tepër, përpiluesi sheh që vargu është një konstante, e përdorur nga udhëzimet "Serial.print" ose "Serial.println". Gjatë fillimit të mikro, kjo konstante vendoset gjithashtu në kujtesën SRAM.

Duke përdorur parashtesën "F" në funksionet Serial.print (), i tregon përpiluesit se ky varg është i disponueshëm vetëm në memorjen FLASH. Për këtë shembull, vargu përmban 28 karaktere. Kjo është 28 bajtë që mund të lirohen në SRAM.

Serial.println (F ("Duke pritur për veprime specifike"));

Kjo metodë vlen edhe për komandat SoftwareSerial.print (). Ndërsa moduli GSM punon në komandat AT, kodi përmban komanda të shumta SoftwareSerial.print ("xxxx"). Përdorimi i parashtesës "F" çliroi gati 300 byte SRAM.

Mos përdorni portën serike të harduerit

Pas korrigjimit të kodit, porti serik i harduerit u çaktivizua duke hequr të gjitha komandat Serial.print (). Kjo çliroi disa bajt shtesë të SRAM.

Pa asnjë komandë Serial.print () të lënë në kod, u vunë në dispozicion një shtesë prej 128 bajtësh SRAM. Kjo u bë duke hequr portën serike të harduerit nga kodi. Kjo krijoi tamponët e transmetimit 64 bajt dhe të marrë 64 bajt.

// Serial.filloj (9600); // porta serike e harduerit është e çaktivizuar

Përdorimi i EEPROM për vargjet

Për çdo hyrje dhe dalje, tre vargje duheshin ruajtur. Ato janë emri i kanalit, vargu kur kanali është aktiv dhe vargu kur kanali është i fikur.

Me gjithsej 8 kanale I/O, ato do të jenë

  • 8 vargje që përmbajnë emrat e kanaleve, secila 10 karaktere të gjatë
  • 8 vargje që përmbajnë kanalin Në përshkrim, secila 10 karaktere e gjatë
  • 8 vargje që përmbajnë përshkrimin Off të kanalit, secila 10 karaktere e gjatë

Kjo reklamon deri në 240 byte SRAM. Në vend që t'i ruani këto vargje në SRAM, ato ruhen në EEPROM. Kjo liroi 240 bajt shtesë SRAM.

Deklarimi i vargut me gjatësinë e duhur

Variablat normalisht deklarohen në fillim të kodit. Një gabim i zakonshëm kur deklaron një variabël vargu, është se ne nuk e deklarojmë vargun me numrin e saktë të karaktereve.

Vargu GSM_Nr = "";

Vargu GSM_Name = ""; Vargu GSM_Msg = "";

Gjatë fillimit, mikrokontrolluesi nuk do të alokojë memorie në SRAM për këto ndryshore. Kjo më vonë mund të shkaktojë paqëndrueshmëri kur përdoren këto vargje.

Për të parandaluar këtë, deklaroni vargjet me numrin e saktë të karaktereve që vargu do të përdorë në softuer.

Vargu GSM_Nr = "1000000000";

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

Vini re se si nuk i deklarova telat me të njëjtat karaktere. Nëse i deklaroni të gjitha këto vargje me fjalën "1234567890", përpiluesi do të shohë të njëjtin varg në tre ndryshoret dhe do të ndajë vetëm memorie të mjaftueshme në SRAM për njërën prej vargjeve.

Hapi 10: Madhësia Seriale e Tamponit të Softuerit

Madhësia e Buferit Serial të Softuerit
Madhësia e Buferit Serial të Softuerit

Në kodin e mëposhtëm, do të vini re se deri në 200 karaktere mund të lexohen nga porta serike e softuerit.

// skanoni për të dhëna nga porta serike e softuerit

// -------------------------------------------------- RxString = ""; Counter = 0; ndërsa (SSerial.available ()) {vonesë (1); // vonesë e shkurtër për të dhënë kohë që të dhënat e reja të vendosen në tampon // merrni karakter të ri RxChar = char (SSerial.read ()); // shtoni 200 karakteret e para në varg nëse (Counter <200) {RxString.concat (RxChar); Counter = Counter + 1; }}

Kjo kërkon një tampon prej të paktën 200 bajtësh edhe për portën serike të softuerit. si parazgjedhje, tamponi i portit serik të softuerit është vetëm 64 bajt. Për të rritur këtë tampon, kërkoni skedarin e mëposhtëm:

SoftwareSerial.h

Hapni skedarin me një redaktues teksti dhe ndryshoni madhësinë e tamponit në 200.

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

*Përkufizimet ******************************************* *****************************/ #ifndef _SS_MAX_RX_BUFF #define _SS_MAX_RX_BUFF 200 // Madhësia e tamponit RX #endif

Hapi 11: Krijimi i Bordit të PC

Krijimi i Bordit të PC
Krijimi i Bordit të PC

Bordi i PC është krijuar duke përdorur versionin falas të Cadsoft Eagle (besoj se emri ka ndryshuar).

  • PC Board është një dizajn i njëanshëm.
  • Asnjë përbërës i montimit në sipërfaqe nuk përdoret.
  • Të gjithë përbërësit janë montuar në tabelën e PC, përfshirë modulin SIM800L.
  • Asnjë komponent ose lidhje e jashtme nuk kërkohet
  • Kërcimtarët me tela janë të fshehur nën përbërës për një pamje më të pastër.

Unë përdor metodën e mëposhtme për të bërë tabela PC:

  • Imazhi i Bordit PC është shtypur në Press-n-Peel duke përdorur një printer lazer.
  • Press-n-Peel vendoset pastaj në majë të një pjese të pastër të PC Board, dhe fiksohet me ndonjë kasetë.
  • Imazhi i Bordit të PC-së më pas transferohet nga Press-n-Peel në Bordin e zbrazët të PC duke e kaluar bordin përmes një petëzuesi. Për mua, 10 kalimet funksionojnë më së miri.
  • Pasi PC Tablet të jetë ftohur në temperaturën e dhomës, Press-n-Peel ngadalë ngrihet nga bordi.
  • Bordi i PC -së më pas gdhendet duke përdorur kristale të Personi të Amonit të tretur në ujë të nxehtë.
  • Pas gdhendjes, toneri blu Press-n-Peel dhe i zi hiqet duke pastruar bordin e gdhendur të PC me pak aceton.
  • Bordi pastaj pritet në madhësi me një Dremel
  • Vrimat për të gjithë përbërësit përmes vrimës janë shpuar duke përdorur një stërvitje 1 mm.
  • Lidhësit e vidave të terminalit janë shpuar duke përdorur një stërvitje 1.2 mm.

Hapi 12: Asambleja e Bordit të PC

Asambleja e Bordit të PC
Asambleja e Bordit të PC
Asambleja e Bordit të PC
Asambleja e Bordit të PC
Asambleja e Bordit të PC
Asambleja e Bordit të PC
Asambleja e Bordit të PC
Asambleja e Bordit të PC

Montimi bëhet duke shtuar së pari përbërësit më të vegjël dhe duke punuar deri në përbërësit më të mëdhenj.

Të gjithë përbërësit e përdorur në këtë Instructable, duke përjashtuar modulin SIM800, u morën nga furnizuesi im lokal. Mendon për ata që kanë gjithmonë aksione. Ju lutemi hidhini një sy faqes së internetit të Afrikës së Jugut:

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

SHËNIM! Lidhja e parë e dy kërcyesve të vendosur nën IC ATMEGA328p

Rendi është si më poshtë:

  • Rezistenca dhe dioda
  • Butoni i rivendosjes
  • Prizat IC
  • Rregullator tensioni
  • Kunjat e kokës
  • Kondensatorë të vegjël
  • LEDs
  • Mbajtëse siguresash
  • Blloqe terminale
  • Stafetat
  • Kondensatorët elektrolitikë

Para se të futni IC -të, lidhni njësinë me 12V dhe provoni që të gjitha tensionet të jenë të sakta.

Së fundi, duke përdorur një llak të qartë, mbuloni anën e bakrit të Bordit të PC për ta mbrojtur atë nga elementët.

Kur llaku është tharë, futni IC -të, por lini modulin GSM derisa AtMega të jetë programuar.

Hapi 13: Programimi i AtMega328p

Programimi i AtMega328p
Programimi i AtMega328p
Programimi i AtMega328p
Programimi i AtMega328p
Programimi i AtMega328p
Programimi i AtMega328p

# # Përmirësimi i firmuerit në Versionin 3.02 # #

SMS -të e aktivizuara të dërgohen te MASTER USER kur të rikthehet energjia në pajisje

Unë jam duke përdorur një Arduino Uno me një mburojë programimi për të programuar njësinë. Për më shumë informacion se si të përdorni një Arduino Uno si programues, referojuni këtij udhëzuesi:

Arduino UNO Si Programues AtMega328P

Moduli GSM duhet të hiqet nga Bordi i PC për të fituar qasje në kokën e programimit. Kini kujdes që të mos dëmtoni telin e antenës kur hiqni modulin GSM.

Lidhni kabllon e programimit midis programuesit dhe njësisë duke përdorur titullin e programimit në PC Board., Dhe ngarkoni skicën në njësi.

Furnizimi i jashtëm 12V nuk është i nevojshëm për të programuar njësinë. Bordi i PC do të mundësohet nga Arduino përmes kabllit të programimit.

Hapni skedarin e bashkangjitur në Arduino IDE dhe programojeni atë në njësi.

Pas programimit, hiqni kabllon e programimit dhe futni modulin GSM.

Njësia tani është gati për përdorim.

Hapi 14: Lidhja e Njësisë

Lidhja e Njësisë
Lidhja e Njësisë
Lidhja e Njësisë
Lidhja e Njësisë
Lidhja e Njësisë
Lidhja e Njësisë

Të gjitha lidhjet me njësinë bëhen përmes terminaleve të vidave.

Fuqizimi i Njësisë

Sigurohuni që keni futur një kartë SIM të regjistruar në modulin GSM dhe se karta SIM është në gjendje të dërgojë dhe të marrë mesazhe SMS.

Lidhni një furnizim me energji 12V DC me 12V IN dhe cilindo nga terminalet 0V. Pasi të ndizet, LED i kuq në bordin e PC do të ndizet. Për rreth një minutë, moduli GSM duhet të jetë lidhur me rrjetin e celularëve. LED i kuq do të fiket dhe një LED i kuq në modulin GSM do të ndizet me shpejtësi.

Pasi të jetë arritur kjo fazë, njësia është gati për t'u konfiguruar.

Lidhjet hyrëse

Hyrjet dixhitale funksionojnë në 12V. Për të ndezur një hyrje, 12V duhet të aplikohet në hyrje. Heqja e 12V do të çaktivizojë hyrjen.

Lidhjet dalëse

Çdo dalje përbëhet nga një kontakt ndërrimi. Lidhni çdo kontakt sipas kërkesës.

Hapi 15: Konfigurimi fillestar

Konfigurimi fillestar
Konfigurimi fillestar

Konfigurimi fillestar i njësisë duhet të kryhet për të siguruar që të gjithë parametrat të jenë të paracaktuar në fabrikë dhe karta SIM të konfigurohet për të pranuar informacionin e përdoruesit në formatin e duhur.

Meqenëse të gjitha komandat bazohen në SMS, do t'ju duhet një telefon tjetër për të kryer konfigurimin.

Për konfigurimin fillestar, duhet të jeni në njësi.

Vendosni numrin e telefonit MASTER USER

Pasi që vetëm MASTER USER mund të konfigurojë njësinë, ky hap duhet të kryhet së pari.

  • Njësia duhet të fuqizohet.
  • Shtypni dhe lëshoni butonin Reset dhe prisni që LED i kuq në bordin e kompjuterit të fiket.
  • LED NET në modulin GSM do të ndizet me shpejtësi.
  • Njësia tani është gati të pranojë komandat fillestare të konfigurimit. Kjo duhet të bëhet brenda 10 minutave.
  • Dërgoni një mesazh SMS që përmban MASTER, përshkrim në numrin e telefonit të njësisë.
  • Nëse merret, LED i gjelbër në bordin e PC do të ndizet dy herë.
  • Përdoruesi MASTER tani është programuar.

Rivendosni njësinë në Paracaktimet e Fabrikës

Pasi të jetë programuar MASTER USER, cilësimet e njësisë duhet të vendosen në standardet e fabrikës.

  • Dërgoni një mesazh SMS me vetëm CLEARALL në numrin e telefonit të njësisë.
  • Nëse merret, LED e gjelbër dhe e kuqe në PC Board do të ndizen alternativisht një herë në sekondë. Njësia është restauruar me cilësimet e paracaktuara të fabrikës.
  • Të gjitha cilësimet janë rivendosur në standardet e fabrikës.
  • Shtypni dhe lëshoni butonin Reset për të rindezur njësinë.

Formatimi i kartës SIM

Hapi i fundit është të fshini të gjithë informacionin e ruajtur në kartën SIM dhe ta konfiguroni për përdorim në këtë njësi.

  • Shtypni dhe lëshoni butonin Reset dhe prisni që LED i kuq në bordin e kompjuterit të fiket.
  • LED NET në modulin GSM do të ndizet me shpejtësi.
  • Njësia tani është gati të pranojë komandat fillestare të konfigurimit. Kjo duhet të bëhet brenda 10 minutave.
  • Dërgoni një mesazh SMS vetëm me ERASESIM në numrin e telefonit të njësisë.
  • Nëse merret, LED i gjelbër në PC Board do të ndizet herë pemë.

Njësia tani është konfiguruar dhe është gati për përdorim.

Hapi 16: Komandat SMS

Komandat SMS
Komandat SMS

Ekzistojnë tre lloje të ndryshme komandash të përdorura nga njësia. Të gjitha komandat dërgohen me SMS, dhe të gjitha janë në formatin e mëposhtëm:

KOMANDA,,,,,,

  • Të gjitha komandat, përveç komandave NORMAL USER janë të ndjeshme ndaj shkronjave të mëdha.
  • Parametrat nuk janë të ndjeshëm ndaj shkronjave të mëdha.

Komandat fillestare të konfigurimit

MASTER, emri

Numri i telefonit i dërguesit të SMS përdoret si numër telefoni MASTER USER. një Përshkrim për njësinë mund të shtohet këtu.

PASTROJI TË GJITHA

Rivendosni njësinë në standardet e fabrikës

CLEARSIM

Fshini të gjitha të dhënat nga karta SIM

RESETO

Rinisni njësinë

MASTER USER Komandat për konfigurimin e njësisë

OUTMODE, c, m, t SHENIM! ! ! NUK ESHTE ZBATUAR

Vendosni kanale të veçanta që të kenë dalje të PULSED, TIMED ose LATCHING. t është kohëzgjatja e kohës në minuta për daljet TIMED

PULS, cccc

Vendosni kanale të veçanta në daljet PULSED. Nëse nuk vendosen, kanalet do të vendosen si dalje LATCHING.

PULSETIME, tCakton kohëzgjatjen e daljes së pulsuar në sekonda (0.. 10s)

INPUTON, cccc

Vendosni kanale që duhet të aktivizojnë dhe dërgoni një mesazh SMS kur gjendja ndryshon nga OFF në ON

INPUTOFF, cccc

Vendosni kanale që duhet të aktivizojnë dhe dërgoni një mesazh SMS kur gjendja ndryshon nga ON në OFF

INTIME, c, t

Cakton kohën e vonesës së hyrjes për zbulimin e ndryshimeve të statusit në sekonda

INTEKST, ch, emri, aktivizuar, fikur

Vendosni emrin e secilit kanal hyrës, në tekst dhe jashtë tekstit

OUTTEXT, ch, emri, aktiv, fikur

Vendosni emrin e secilit kanal dalës, në tekst dhe jashtë tekstit

Shto, vendndodhja, numri, Thirrjet, SMS -hyrjet, hyrjet

Shtoni përdoruesin në kartën SIM në 'vendndodhjen' e kujtesës, me kanale dalëse dhe hyrëse të caktuara për përdoruesit

Del, vendndodhja

Fshi përdoruesin nga 'vendndodhja' e kujtesës së kartës SIM

Emri i kanalit

Do të pulsojë daljen me emrin ChannelName

Emri i kanalit, onText, ose ChannelName, offText

Do të aktivizojë/fikë daljen me emrin e ChannelName, dhe onText/offText

Komandat normale të përdoruesit për kontrollin e njësisë

???? Kërkoni përditësim të statusit I/O. SMS e statusit do t'i dërgohet krijuesit.

Emri i kanalit

Do të pulsojë daljen me emrin ChannelName

Emri i kanalit, onText

Do të ndezë daljen me emrin e ChannelName, dhe tekstin e statusit nëTekst

Emri i kanalit, offText Do të fikë daljen me emrin e ChannelName, dhe tekstin e statusit offText

Për një përshkrim më të detajuar të komandave, ju lutemi referojuni dokumentit të bashkangjitur PDF.

Recommended: