Obsah:

Jednotka dálkového ovládání GSM/SMS na bázi Arduino: 16 kroků (s obrázky)
Jednotka dálkového ovládání GSM/SMS na bázi Arduino: 16 kroků (s obrázky)

Video: Jednotka dálkového ovládání GSM/SMS na bázi Arduino: 16 kroků (s obrázky)

Video: Jednotka dálkového ovládání GSM/SMS na bázi Arduino: 16 kroků (s obrázky)
Video: CL1-GSM 2024, Listopad
Anonim
Jednotka dálkového ovládání GSM/SMS na bázi Arduino
Jednotka dálkového ovládání GSM/SMS na bázi Arduino

! ! ! OZNÁMENÍ !

Vzhledem k tomu, že v mé oblasti probíhá modernizace místní mobilní věže, tento modul GSM již nemohu používat. Novější věž již nepodporuje zařízení 2G. Proto již nemohu tomuto projektu poskytovat žádnou podporu.

S tak širokou škálou GSM modulů, které jsou k dispozici pro fandy, většina z nás skončila s nákupem jednoho. Koupil jsem modul SIM800L místně a skončil jsem s hraním různých příkazů modulu.

Pomocí Arduino Uno a Arduino IDE jsem dokázal své nápady proměnit ve skutečnost. To nebylo snadné, protože SINGLE BIGGEST ISSUE je omezení pouze na 2 kB SRAM. Po mnoha výzkumech na internetu a různých fórech se mi toto omezení podařilo překonat.

Tento projekt uložily různé programovací techniky, mnohem lepší porozumění kompilátoru Arduino a použití SIM karty a EEPROM pro další paměť. Po několika změnách kódu byl stabilní prototyp sestaven a testován po dobu jednoho týdne.

Nevýhodou omezeného SRAM bylo, že jednotka nemohla být vybavena displejem a uživatelskými klávesami. Výsledkem bylo úplné přepsání kódu. Bez uživatelského rozhraní byla jedinou možností, jak pokračovat v projektu, využití SMS zpráv ke konfiguraci jednotky i uživatelů.

Ukázalo se, že je to vzrušující projekt, a jak vývoj pokračoval, byly přidány další futures.

Mým hlavním cílem bylo držet se Arduino Uno, nebo v tomto případě ATMEGA328p, a nepoužívat žádné komponenty pro povrchovou montáž. Široké veřejnosti to usnadní kopírování a stavbu jednotky.

Specifikace jednotky:

  • Na jednotce lze naprogramovat maximálně 250 uživatelů
  • Čtyři digitální výstupy
  • Čtyři digitální vstupy
  • Každý výstup může být konfigurován jako PULSE nebo ON/OFF výstup
  • Trvání výstupního impulzu lze nastavit mezi 0,5 … 10 sekundami
  • Každý vstup lze nakonfigurovat tak, aby spouštěl změny VYPNUTO až ZAPNUTO.
  • Každý vstup lze nakonfigurovat tak, aby spouštěl změny ON a OFF
  • Každé zpoždění vstupu lze nastavit mezi 0 sekundami a 1 hodinou
  • SMS zprávy o změnách na vstupech lze odeslat 5 různým uživatelům
  • Názvy a stavový text pro každý vstup může nastavit uživatel
  • Názvy a stavový text pro každý výstup může nastavit uživatel
  • Jednotku lze nakonfigurovat tak, aby přijímala zprávy o zůstatku karty SIM prostřednictvím zpráv USSD.
  • Všichni uživatelé mohou požadovat aktualizace stavu I/O jednotky
  • Všichni uživatelé mohou ovládat jednotlivé výstupy prostřednictvím SMS zpráv
  • Každý uživatel může ovládat jednotlivé výstupy zavoláním jednotky

Bezpečnostní prvky

  • Počáteční nastavení jednotky lze provést pouze na jednotce.
  • Počáteční nastavení může provádět pouze MASTER USER
  • Počáteční příkazy pro nastavení jsou automaticky deaktivovány po deseti minutách.
  • Jednotku mohou ovládat pouze hovory a zprávy SMS od známých uživatelů
  • Uživatelé mohou ovládat pouze výstupy, které jim přidělil MASTER USER

Další funkce

  • Volání do této jednotky je bezplatné, protože na tento hovor není nikdy odpovězeno.
  • Když je jednotka vyvolána, hovor se přeruší až po 2 sekundách. Toto je potvrzení volajícímu, že jednotka odpověděla na volání.
  • Pokud poskytovatel služeb SIM karty podporuje zprávy USSD, může zjišťování zůstatku provádět MASTER USER. Zpráva USSD obsahující zůstatek bude poté přeposlána MASTER USER.

Krok 1: Napájení

Zdroj napájení
Zdroj napájení

Aby bylo možné jednotku připojit ke standardním zabezpečovacím systémům (poplašné systémy, elektrická garážová vrata, elektrické brány), bude jednotka napájena z 12V DC, které je u těchto systémů běžně k dispozici.

Napájení je připojeno na svorky 12V IN a 0V a je chráněno pojistkou 1A. K dispozici jsou další svorky 12V OUT, které jsou také chráněny pojistkou.

Dioda D1 chrání jednotku před připojením reverzní polarity na 12 V vedení.

Kondenzátory C1 a C2 filtrují veškerý šum přítomný na napájecích vedeních 12V. Napájení 12 V se používá k napájení relé jednotky.

Napájení 5 V sestává z regulátoru napětí LM7805L a výstup stabilních +5 V potřebných pro modul SIM800L GSM a mikroprocesor. Kondenzátory C3 a C4 filtrují veškerý šum, který může být na napájecím vedení +5V. Byly použity poměrně velké elektrolytické kondenzátory, protože GSM modul SIM800L využívá při přenosu docela dost energie.

Na regulátoru napětí není vyžadován žádný chladič.

Krok 2: Digitální vstupy

Digitální vstupy
Digitální vstupy
Digitální vstupy
Digitální vstupy

Všechny digitální vstupní signály jsou 12V a musí být propojeny s 5V mikrořadičem. K tomu se používají opto vazební členy k izolaci signálů 12V ze systému 5V.

Vstupní odpor 1K omezuje vstupní proud do optočlenu na přibližně 10 mA.

Kvůli prostorovým omezením nebyl na desce PC k dispozici prostor pro 5V výsuvné odpory. Mikroprocesor je nastaven tak, aby umožňoval slabým vytahováním vstupních pinů.

Bez signálu na vstupu (NÍZKÉ) optočlenu nebude protékat LED diodou optočlenu žádný proud. Tím je vypnut tranzistor optočlenu. Slabé vytažení mikrořadiče vytáhne kolektor téměř na 5 V a bude mikroprocesorem považováno za logicky VYSOKÉ.

Při použití 12 V (HIGH) na vstupu optočlenu protéká LED diody optočlenu přibližně 10 mA. Tranzistor opto vazebního členu bude tedy zapnut. Tím se stáhne kolektor na téměř 0 V a mikrořadič ho bude považovat za logickou NÍZKOU.

Všimněte si, že vstup viděný mikrořadičem je invertovaný ve srovnání se vstupem 12V.

Normální kód pro čtení vstupního kolíku vypadá následovně:

boolean Input = digitalRead (inputpin);

Chcete -li opravit převrácený signál, použijte následující kód:

boolean Input =! digitalRead (inputpin); // POZOR! před čtením

Nyní vstup viděný mikrořadičem bude odpovídat vstupu na vstupu 12V.

Konečný vstupní obvod se skládá ze 4 digitálních vstupů. Každý vstup je připojen ke svorkám na desce PC.

Krok 3: Digitální výstupy

Digitální výstupy
Digitální výstupy
Digitální výstupy
Digitální výstupy
Digitální výstupy
Digitální výstupy

Normálně je s obvodem pohánějícím pouze minimální počet relé nejlepším způsobem použít obvod budiče tranzistoru, jak je znázorněno. Je to jednoduché, levné a efektivní.

Rezistory zajišťují stažení z uzemnění a omezení proudu základny tranzistoru. Tranzistor se používá ke zvýšení proudu dostupného pro pohon relé. S pouhým 1 mA odebíraným z kolíku mikrořadiče může tranzistor spínat zátěž 100 mA. Více než dost pro většinu typů relé. Dioda je zpětná dioda, která chrání obvod před špičkami vysokého napětí během přepínání relé. Další výhodou použití tohoto obvodu je, že provozní napětí relé se může lišit od napětí mikrořadiče. Místo 5V relé lze tedy použít libovolné stejnosměrné napětí až 48V.

Představujeme ULN2803

Čím více relé projekt vyžaduje, tím vyšší je počet součástí. To ztěžuje návrh desky plošných spojů a může zabírat cenné místo na desce plošných spojů. Ale použití tranzistorového pole, jako je ULN2803, rozhodně pomůže udržet malou velikost desky plošných spojů. ULN2803 je ideálně vhodný pro vstupy 3,3 V a 5 V z mikrořadiče a může pohánět relé až do 48 V DC. Tento ULN2803 má 8 jednotlivých tranzistorových obvodů, každý obvod je vybaven všemi součástmi potřebnými pro spínání relé.

Konečný výstupní obvod se skládá z ULN3803, pohánějícího 4 12V DC výstupní relé. Každý kontakt relé je k dispozici na svorkách desky PC.

Krok 4: Oscilátor mikrořadiče

Mikroprocesorový oscilátor
Mikroprocesorový oscilátor
Mikroprocesorový oscilátor
Mikroprocesorový oscilátor
Mikroprocesorový oscilátor
Mikroprocesorový oscilátor

Obvod oscilátoru

Mikroprocesor ke správné funkci potřebuje oscilátor. Aby se udržel design Arduino Uno, obvod bude využívat standardní 16MHz oscilátor. K dispozici jsou dvě možnosti:

Krystal

Tato metoda používá krystal připojený ke dvěma zatěžovacím kondenzátorům. Toto je nejběžnější možnost.

Rezonátor

Rezonátor je v podstatě krystal a dva zatěžovací kondenzátory v jednom 3pólovém pouzdře. To snižuje množství komponent a zvyšuje dostupné místo na desce PC.

Aby byl počet součástek co nejnižší, rozhodl jsem se použít 16MHz rezonátor.

Krok 5: Indikační LED diody

Indikační LED diody
Indikační LED diody
Indikační LED diody
Indikační LED diody

Co to bude za obvod bez LED? Na desce PC byla vytvořena rezerva pro 3mm LED diody.

1K odpory se používají k omezení proudu přes LED na méně než 5 mA. Při použití 3 mm vysoce jasných LED je jas vynikající.

Pro snadnou interpretaci stavových LED jsou použity dvě barvy. Kombinací dvou LED s blikajícími indikacemi lze získat poměrně velké množství informací pouze ze dvou LED.

Červená LED

Červená LED dioda se používá k indikaci poruchových stavů, dlouhých zpoždění nebo nesprávných příkazů.

Zelená LED

Zelená LED dioda označuje zdravé a/nebo správné vstupy a příkazy.

Krok 6: Obvod resetování mikroprocesoru

Obvod resetování mikroprocesoru
Obvod resetování mikroprocesoru

Z bezpečnostních důvodů jsou některé funkce jednotky k dispozici pouze prvních 10 minut po zapnutí jednotky.

K resetování jednotky pomocí tlačítka reset není nutné vypínat napájení jednotky.

Jak to funguje

Rezistor 10K udrží linii RESET blízko 5V. Po stisknutí tlačítka bude linka RESET vytažena na 0V, čímž bude mikrořadič resetován. Po uvolnění tlačítka se řádek RESET vrátí do %v, čímž se obnoví mikrořadič.

Krok 7: Modul SIM800L

Modul SIM800L
Modul SIM800L
Modul SIM800L
Modul SIM800L
Modul SIM800L
Modul SIM800L

Srdcem jednotky je GSM modul SIM800L. Tento modul používá pouze 3 I/O piny na mikrořadiči.

Modul je propojen s mikrořadičem prostřednictvím standardního sériového portu.

  • Všechny příkazy do jednotky jsou odesílány přes sériový port pomocí standardních AT příkazů.
  • Při příchozím hovoru nebo při přijetí SMS se informace odešlou do mikrořadiče přes sériový port pomocí textu ASCII.

Pro úsporu místa je GSM modul připojen k PC desce pomocí 7pólového konektoru. To usnadňuje vyjmutí modulu GSM. To také uživateli umožňuje snadno vložit/vyjmout SIM kartu ve spodní části modulu.

Je vyžadována aktivní SIM karta a SIM karta musí být schopna odesílat a přijímat zprávy SMS.

Nastavení GSM modulu SIM800L

Po zapnutí jednotky se resetovací kolík modulu GSM na sekundu vytáhne dolů. Tím je zajištěno, že se modul GSM spustí až po stabilizaci napájení. GSM modulu trvá několik sekund, než se restartuje, takže počkejte 5 sekund, než do modulu odešlete jakékoli AT příkazy.

Aby bylo zajištěno, že je modul GSM nakonfigurován tak, aby správně komunikoval s mikrořadičem, používají se při spuštění následující AT příkazy:

NA

slouží k určení, zda je k dispozici modul GSM

AT+CREG?

Dotazujte tento příkaz, dokud není modul GSM zaregistrován v mobilní síti

AT+CMGF = 1

Nastavte režim zpráv SMS na ASCII

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

Pokud je SMS k dispozici, odešlete podrobnosti o SMS na sériový port modulu GSM

AT+CMGD = 1, 4

Odstraňte všechny zprávy SMS uložené na SIM kartě

AT+CPBS = / "SM

Nastavte telefonní seznam GSM modulu na SIM kartu

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

Nastavit čas modulu GSM na čas mobilní sítě

Počkejte 5 sekund, než nastavíte čas

AT+CUSD = 1

Povolit funkci zasílání zpráv USSD

Krok 8: Mikroprocesor

Mikroprocesor
Mikroprocesor
Mikroprocesor
Mikroprocesor
Mikroprocesor
Mikroprocesor

Mikroprocesor je standardní AtMega328p, stejný jako použitý na Arduino Uno. Kód je tedy srovnatelný s oběma. Aby bylo možné snadné programování na desce, je na desce PC k dispozici 6pinová programovací hlavička.

Různé části jednotky jsou připojeny k mikroprocesoru a zahrnují následující:

  • Čtyři digitální vstupy
  • Čtyři digitální výstupy
  • Oscilátor
  • Dvě indikační LED diody
  • Reset obvodu
  • GSM modul SIM800L

Veškerá komunikace do az modulu GSM probíhá pomocí funkce SoftwareSerial (). Tato metoda byla použita k uvolnění hlavního sériového portu pro Arduino IDE během fáze vývoje.

S pouhými 2 kB paměti SRAM a 1 kB paměti EEPROM není dostatek paměti pro uložení více než několika uživatelů, které lze k jednotce připojit. Pro uvolnění paměti SRAM jsou všechny informace o uživateli uloženy na SIM kartě v GSM modulu. S tímto uspořádáním může jednotka uspokojit až 250 různých uživatelů.

Konfigurační data jednotky jsou ukládána do EEPROM, čímž se navzájem oddělují uživatelská a systémová data.

Stále je k dispozici několik náhradních I/O pinů, ale možnost přidání LCD displeje a/nebo klávesnice nebyla možná kvůli velkému množství SRAM používaného přijímacími a vysílacími buffery SoftWareSerial (), Protože v jednotce chybí jakýkoli typ uživatelského rozhraní, jsou všechna nastavení a uživatelé programováni pomocí zpráv SMS.

Krok 9: Optimalizace paměti SRAM

Optimalizace paměti SRAM
Optimalizace paměti SRAM

Poměrně brzy ve fázi vývoje Arduino IDE při kompilaci kódu hlásilo nízkou paměť SRAM. K překonání toho bylo použito několik metod.

Omezte data přijímaná na sériovém portu

GSM modul bude hlásit všechny zprávy do mikrořadiče sériového portu. Při přijímání některých zpráv SMS může celková délka přijaté zprávy přesáhnout 200 znaků. To může rychle spotřebovat veškerý SRAM dostupný na čipu AtMega a způsobí to problémy se stabilitou.

aby se tomu zabránilo, bude použito pouze prvních 200 znaků JAKÉKOLI zprávy přijaté z modulu GSM. Následující příklad ukazuje, jak se to provádí počítáním přijatých znaků v proměnné Počítadlo.

// vyhledejte data ze sériového portu softwaru

// ----------------------------------------------- RxString = ""; Počitadlo = 0; while (SSerial.available ()) {delay (1); // krátké zpoždění k poskytnutí času na umístění nových dat do vyrovnávací paměti // získat nový znak RxChar = char (SSerial.read ()); // přidání prvních 200 znaků do řetězce if (Counter <200) {RxString.concat (RxChar); Počitadlo = čítač + 1; }}

Redukce kódu Serial.print ()

Přestože je Arduino Serial Monitor praktický během vývoje, může spotřebovat spoustu SRAM. Kód byl vyvinut s použitím co nejméně kódu Serial.print (). Jedna část kódu byla testována, aby fungovala, veškerý kód Serial.print () byl z této části kódu odstraněn.

Použití kódu Serial.print (F ((""))

Mnoho informací běžně zobrazovaných na sériovém monitoru Arduino dává větší smysl, když jsou přidány popisy. Vezměte si následující příklad:

Serial.println ("Čekání na konkrétní akce");

Řetězec „Čekání na konkrétní akce“je opraven a nelze jej změnit.

Během kompilace kódu kompilátor zahrne do paměti FLASH řetězec „Čekání na konkrétní akce“.

Kompilátor navíc vidí, že řetězec je konstanta, používaný instrukcí "Serial.print" nebo "Serial.println". Během spouštění mikro je tato konstanta také umístěna do paměti SRAM.

Použitím předpony „F“ve funkcích Serial.print () sděluje kompilátoru, že tento řetězec je k dispozici pouze v paměti FLASH. V tomto případě řetězec obsahuje 28 znaků. To je 28 bytů, které lze uvolnit v SRAM.

Serial.println (F ("Čekání na konkrétní akce"));

Tato metoda platí také pro příkazy SoftwareSerial.print (). Protože modul GSM pracuje na AT příkazech, kód obsahuje mnoho příkazů SoftwareSerial.print ("xxxx"). Pomocí předpony „F“se uvolnilo téměř 300 bajtů SRAM.

Nepoužívejte hardwarový sériový port

Po ladění kódu byl hardwarový sériový port deaktivován odebráním VŠECH příkazů Serial.print (). Tím se uvolnilo několik dalších bajtů SRAM.

Bez dalších příkazů Serial.print () v kódu bylo zpřístupněno dalších 128 bajtů SRAM. To bylo provedeno odebráním hardwarového sériového portu z kódu. Tím se zvýšily vyrovnávací paměti pro 64 bajtů pro vysílání a 64 bajtů.

// Serial.begin (9600); // hardwarový sériový port zakázán

Použití EEPROM pro řetězce

Pro každý vstup a výstup bylo třeba uložit tři řetězce. Jsou to název kanálu, řetězec, když je kanál zapnutý, a řetězec, když je kanál vypnutý.

S celkem 8 I/O kanály budou jejich

  • 8 řetězců obsahujících názvy kanálů, každý o délce 10 znaků
  • 8 řetězců obsahujících kanál v popisu, každý o délce 10 znaků
  • 8 řetězců obsahujících popis vypnutého kanálu, každý o délce 10 znaků

To inzeruje až 240 bajtů SRAM. Namísto ukládání těchto řetězců do SRAM jsou uloženy v EEPROM. Tím se uvolnilo dalších 240 bajtů SRAM.

Deklarace řetězce se správnou délkou

Proměnné jsou obvykle deklarovány na začátku kódu. Častou chybou při deklarování řetězcové proměnné je, že řetězec nedeklarujeme se správným počtem znaků.

Řetězec GSM_Nr = "";

Řetězec GSM_Name = ""; Řetězec GSM_Msg = "";

Během spouštění nebude mikrořadič alokovat paměť v SRAM pro tyto proměnné. To může později způsobit nestabilitu při použití těchto řetězců.

Abyste tomu zabránili, deklarujte řetězce se správným počtem znaků, které řetězec použije v softwaru.

Řetězec GSM_Nr = "1000000000";

Řetězec GSM_Name = "2000000000"; Řetězec GSM_Msg = "3000000000";

Všimněte si, jak jsem nedeklaroval řetězce se stejnými znaky. Pokud deklarujete všechny tyto řetězce řekněme „1234567890“, kompilátor uvidí stejný řetězec ve třech proměnných a přidělí dostatek paměti v SRAM pouze pro jeden z řetězců.

Krok 10: Velikost sériové vyrovnávací paměti softwaru

Velikost sériové vyrovnávací paměti softwaru
Velikost sériové vyrovnávací paměti softwaru

V následujícím kódu si všimnete, že ze sériového portu softwaru lze přečíst až 200 znaků.

// vyhledejte data ze sériového portu softwaru

// ----------------------------------------------- RxString = ""; Počitadlo = 0; while (SSerial.available ()) {delay (1); // krátké zpoždění, které poskytne čas na umístění nových dat do vyrovnávací paměti // získat nový znak RxChar = char (SSerial.read ()); // přidání prvních 200 znaků do řetězce if (Counter <200) {RxString.concat (RxChar); Počitadlo = čítač + 1; }}

To vyžaduje vyrovnávací paměť alespoň 200 bajtů také pro sériový port softwaru. ve výchozím nastavení je vyrovnávací paměť sériového portu softwaru pouze 64 bajtů. Chcete -li zvětšit tuto vyrovnávací paměť, vyhledejte následující soubor:

SoftwareSerial.h

Otevřete soubor pomocí textového editoru a změňte velikost vyrovnávací paměti na 200.

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

*Definice *************************************************** ******************************/ #ifndef _SS_MAX_RX_BUFF #define _SS_MAX_RX_BUFF 200 // velikost vyrovnávací paměti RX #endif

Krok 11: Výroba desky PC

Výroba desky PC
Výroba desky PC

Deska PC byla navržena pomocí freewarové verze Cadsoft Eagle (domnívám se, že název se změnil).

  • PC Board je jednostranný design.
  • Nejsou použity žádné součásti pro povrchovou montáž.
  • Všechny komponenty jsou namontovány na desce PC, včetně modulu SIM800L.
  • Nejsou vyžadovány žádné externí součásti ani připojení
  • Drátové propojky jsou skryty pod součástmi pro čistší vzhled.

K výrobě desek pro PC používám následující metodu:

  • Obraz desky PC je vytištěn na Press-n-Peel pomocí laserové tiskárny.
  • Press-n-Peel je poté umístěn na čistý kus desky PC a zajištěn páskou.
  • Obraz desky PC je pak přenesen z Press-n-Peel na prázdnou desku PC průchodem desky laminátorem. Pro mě nejlépe funguje 10 průchodů.
  • Poté, co se deska PC ochladí na pokojovou teplotu, se Press-n-Peel pomalu zvedne z desky.
  • Deska PC se poté naleptá pomocí krystalů síranu amonného rozpuštěných v horké vodě.
  • Po leptání se modrý Press-n-Peel a černý toner odstraní vyčištěním leptané desky PC trochou acetonu.
  • Deska se poté nařeže na velikost dremelem
  • Otvory pro všechny součásti průchozích otvorů jsou vyvrtány pomocí 1 mm vrtáku.
  • Konektory šroubových svorek jsou vyvrtány pomocí 1,2 mm vrtáku.

Krok 12: Sestavení desky PC

Sestavení desky PC
Sestavení desky PC
Sestavení desky PC
Sestavení desky PC
Sestavení desky PC
Sestavení desky PC
Sestavení desky PC
Sestavení desky PC

Montáž se provádí tak, že se nejprve přidají nejmenší součásti a postupuje se až k těm největším.

Všechny komponenty použité v tomto Instructable, kromě modulu SIM800, byly získány od mého místního dodavatele. Myslí na to, že mají vždy zásoby. Podívejte se na jejich jihoafrický webový server:

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

POZNÁMKA! První pájení dvou propojek umístěných pod integrovaným obvodem ATMEGA328p

Pořadí je následující:

  • Rezistory a dioda
  • Tlačítko reset
  • IC zásuvky
  • Regulátor napětí
  • Kolíky záhlaví
  • Malé kondenzátory
  • LED diody
  • Pojistkový držák
  • Svorkovnice
  • Relé
  • Elektrolytické kondenzátory

Před vložením integrovaných obvodů připojte jednotku k 12V a zkontrolujte správnost všech napětí.

Nakonec pomocí čirého laku zakryjte měděnou stranu desky PC, abyste ji chránili před živly.

Když lak zaschne, vložte integrované obvody, ale ponechte modul GSM, dokud nebude naprogramován AtMega.

Krok 13: Programování AtMega328p

Programování AtMega328p
Programování AtMega328p
Programování AtMega328p
Programování AtMega328p
Programování AtMega328p
Programování AtMega328p

# # Upgrade firmwaru na verzi 3.02 # #

Povoleno odesílání zpráv SMS MASTER USER při obnovení napájení zařízení

K programování jednotky používám Arduino Uno s programovacím štítem. Další informace o tom, jak používat Arduino Uno jako programátora, najdete v tomto Instructable:

Arduino UNO jako programátor AtMega328P

Aby bylo možné získat přístup k programovacímu záhlaví, je třeba modul GSM vyjmout z desky PC. Při vyjímání modulu GSM dávejte pozor, abyste nepoškodili drát antény.

Připojte programovací kabel mezi programátor a jednotku pomocí programovacího konektoru na desce PC. A nahrajte skicu do jednotky.

K naprogramování jednotky není nutné externí napájení 12 V. Deska PC bude napájena z Arduina pomocí programovacího kabelu.

Otevřete připojený soubor v Arduino IDE a naprogramujte jej na jednotku.

Po programování odpojte programovací kabel a vložte modul GSM.

Jednotka je nyní připravena k použití.

Krok 14: Připojení jednotky

Připojení jednotky
Připojení jednotky
Připojení jednotky
Připojení jednotky
Připojení jednotky
Připojení jednotky

Všechna připojení k jednotce se provádějí pomocí šroubových svorek.

Napájení jednotky

Ujistěte se, že jste do modulu GSM vložili zaregistrovanou SIM kartu a že SIM karta může odesílat a přijímat zprávy SMS.

Připojte 12V DC napájecí zdroj na 12V IN a na jakýkoli 0V terminál. Po zapnutí se rozsvítí červená LED na desce PC. Asi za minutu by se měl GSM modul připojit k mobilní síti. Červená LED dioda zhasne a červená LED dioda na GSM modulu bude rychle blikat.

Po dosažení této fáze je jednotka připravena ke konfiguraci.

Vstupní připojení

Digitální vstupy fungují na 12V. Chcete -li zapnout vstup, je třeba na vstup použít napětí 12V. Vyjmutím 12V se vstup vypne.

Výstupní připojení

Každý výstup se skládá z přepínacího kontaktu. Zapojte každý kontakt podle potřeby.

Krok 15: Počáteční nastavení

Počáteční nastavení
Počáteční nastavení

Musí být provedeno počáteční nastavení jednotky, aby se zajistilo, že jsou všechny parametry nastaveny na výchozí hodnoty z výroby, a aby byla SIM karta nakonfigurována tak, aby přijímala informace o uživateli ve správném formátu.

Protože jsou všechny příkazy založeny na SMS, budete k provedení nastavení potřebovat jiný telefon.

Pro počáteční nastavení musíte být u jednotky.

Nastavte telefonní číslo MASTER USER

Protože jednotku může konfigurovat pouze MASTER USER, musí být tento krok proveden jako první.

  • Jednotka musí být napájena.
  • Stiskněte a uvolněte tlačítko Reset a počkejte, až červená LED na desce PC zhasne.
  • LED NET na GSM modulu bude rychle blikat.
  • Jednotka je nyní připravena přijmout příkazy počátečního nastavení. To musí být provedeno do 10 minut.
  • Na telefonní číslo jednotky odešlete SMS zprávu obsahující MASTER, popis.
  • Pokud je přijata, zelená LED na desce PC dvakrát zabliká.
  • MASTER USER je nyní naprogramován.

Obnovte tovární nastavení jednotky

Poté, co byl naprogramován MASTER USER, musí být nastavení jednotky nastaveno na výchozí hodnoty od výrobce.

  • Na telefonní číslo jednotky odešlete SMS zprávu s pouze CLEARALL.
  • Pokud je přijata, zelená a červená LED na desce PC budou střídavě blikat jednou za sekundu. Jednotka byla obnovena s výchozím továrním nastavením.
  • Všechna nastavení byla obnovena na výchozí tovární hodnoty.
  • Stisknutím a uvolněním tlačítka Reset restartujte jednotku.

Formátování SIM karty

Posledním krokem je vymazání všech informací uložených na SIM kartě a konfigurace pro použití v této jednotce.

  • Stiskněte a uvolněte tlačítko Reset a počkejte, až červená LED na desce PC zhasne.
  • LED NET na GSM modulu bude rychle blikat.
  • Jednotka je nyní připravena přijmout příkazy počátečního nastavení. To musí být provedeno do 10 minut.
  • Na telefonní číslo jednotky odešlete SMS zprávu pouze s ERASESIM.
  • Pokud je přijata, zelená LED na desce PC blikne stromově.

Jednotka je nyní nakonfigurována a je připravena k použití.

Krok 16: Příkazy SMS

SMS příkazy
SMS příkazy

Jednotka používá tři různé typy příkazů. Všechny příkazy jsou odesílány prostřednictvím SMS a jsou v následujícím formátu:

PŘÍKAZ,,,,,

  • Všechny příkazy, kromě příkazů NORMAL USER, rozlišují velká a malá písmena.
  • Parametry nerozlišují velká a malá písmena.

Příkazy pro počáteční nastavení

MASTER, jméno

Jako telefonní číslo MASTER USER je použito telefonní číslo odesílatele SMS. a Zde lze přidat popis jednotky.

VYMAZAT VŠE

Obnovte tovární nastavení jednotky

CLEARSIM

Vymažte všechna data ze SIM karty

RESET

Restartujte jednotku

MASTER USER Příkazy pro konfiguraci jednotky

OUTMODE, c, m, t POZNÁMKA! ! ! NENÍ PROVEDENO

Nastavte konkrétní kanály tak, aby měly PULSED, TIMED nebo LATCHING výstupy. t je doba trvání v minutách pro TIMED výstupy

PULSE, cccc

Nastavte konkrétní kanály na PULSED výstupy. Pokud není nastaveno, kanály budou nastaveny jako LATCHING výstupy.

PULSETIME, t Nastaví trvání pulzního výstupu v sekundách (0.. 10 s)

INPUTON, cccc

Nastavte kanály, které se musí spouštět, a pošlete SMS zprávu, když se stav změní z VYPNUTO na ZAPNUTO

INPUTOFF, cccc

Nastavte kanály, které se musí spustit, a odešlete SMS zprávu, když se stav změní ze ZAPNUTO na VYPNUTO

INTIME, c, t

Nastavuje dobu zpoždění vstupu pro detekci změn stavu v sekundách

INTEXT, ch, name, on, off

Nastavte název každého vstupního kanálu na text i mimo text

OUTTEXT, ch, jméno, zapnuto, vypnuto

Nastavte název každého výstupního kanálu na text a mimo text

Přidat, umístění, číslo, popisky, SMS výstupy, vstupy

Přidejte uživatele na SIM kartu v paměťovém „umístění“s výstupními a vstupními kanály přiřazenými uživateli

Del, umístění

Odstranit uživatele z „umístění“paměti SIM karty

Název kanálu

Bude pulzovat výstup s názvem ChannelName

ChannelName, onText nebo ChannelName, offText

Zapne/vypne výstup s názvem ChannelName a onText/offText

Normální uživatelské příkazy pro ovládání jednotky

???? Požádat o aktualizaci stavu I/O. Stavová SMS bude odeslána původci.

Název kanálu

Bude pulzovat výstup s názvem ChannelName

ChannelName, onText

Zapne výstup s názvem ChannelName a stavovým textem onText

ChannelName, offText Vypne výstup s názvem ChannelName a stavovým textem offText

Podrobnější popis příkazů naleznete v přiloženém dokumentu PDF.

Doporučuje: