|
|
GSM modul Pro využití Arduina ke komunikaci přes veřejnou mobilní síť GSM (Global System Mobile) si opatříme tzv. "volač", v tomto případě modul SIM800L (datový list), dále SIM kartu se zrušeným pinem a desku Arduino NANO (UNO je nevhodné pro odlišné napětí datového signálu).
Musíme zjistit napájecí napětí, které umožní provoz volače. Dodavatel uvádí napájení 3,8 - 4,3 V. Deklarované napětí nemusí být platné v plném rozsahu. Dosud ověřené moduly pracovaly v rozmezí cca 4,0 - 4,3 V. K tomuto účelu lze použít nastavitelný stabilizátor LM317 (LM217, od -40stC). Napájecí napětí stabilizovaného zdroje bylo nastaveno na 4,15 V. Orientačně se výstupní napětí stabilizátoru LM317stanoví výpočtem: Uvv = 1,25 ( 1+ R2/R1) = 1,25 (1+506/220)
Stabilizátor napájecího napětí:
Vyhovující napájecí napětí umožní přihlášení modulu k operátorovi. Po napojení volače na zdroj napájecího napětí začne blikat ledka volače v intervalu 0,8 s (připojování), po cca 10-15 sekundách blikání zpomalí na interval 3 s (připojeno), poté zatelefonujeme ze svého telefonu na číslo volače. Pokud se v telefonu ozve vyzváněcí tón, volač je připojen. Pro danou aplikaci použijeme desku NANO. Datové propojení by mělo být na úrovni max. 2,8 V. U desek UNO je nutno natětí signálového propojení upravit odporovým děličem, v případě desky NANO táto úprava nebyla nutná. Modul volače připojíme na extérní zdroj napájení, z desky NANO připojíme kontakt GND a signálový kontakt Tx Arduina NANO spojíme s kontaktem Rx volače.
Pro komunikaci nebudeme v tomto případě potřebovat knihovnu, postačí tzv. AT příkazy naprogramované ve skeči. Nejprve ověříme vyzvánění. Do IDE nahrajeme kód "GSM_vyzvaneni" :
Skeč "GSM_vyzvaneni.ino": void setup() {Serial.begin(9600);} //aktivace sériové komunikace rychlosti 9600 baudů (funguje i na vyšší) void loop() {Serial.println("AT+CFUN=1"); //připraví GSM modul Serial.println("ATD00420xxxxxxxxx;\r");} //příkaz "Serial.print" odesílá na sériový pin telefonní číslo "xxxxxxxxx" s předřazeným příkazem k vyzvánění (ATD),
Malá písmena "x" přepíšeme na požadované telefonní číslo. Skeč nahrajeme do Arduina - volač začne vyzvánět. Předmětný skeč neobsahuje ukončení vyzvánění. Po odpojení napájení volače zvonění telefonu pokračuje časem stanoveným operátorem, tj. cca 2,5 minuty. Následující skeč obsahuje vyzvánění a odeslání SMSky. Do IDE a desky Arduino nahrajeme kód "GSM_vyzvaneni_SMS": Skeč "GSM_vyzvaneni_SMS.ino" : void setup() {Serial.begin(9600);} // aktivace sériové komunikace void loop() {Serial.println("AT+CFUN=1"); // připraví GSM modul Serial.println("ATD00420xxxxxxxxx;\r"); // příkaz "Serial.print" odesílá na sériový pin telefonní číslo "xxxxxxxxx" s předřazeným příkazem k vyzvánění (ATD), delay (15000); // vyzvání 15 sekund, prozvoní cca 4x Serial.println("ATH"); // ukončí vyzvánění delay (1000); // čeká 1 sekundu Serial.print("AT+CMGF=1\r\n"); // nastaví textovou komunikaci delay (1000); // čeká 1 sekundu Serial.print("AT+CMGS=\"00420xxxxxxxxx\"\r\n"); // odešle na seriový pin číslo SMSky delay (1000); // čeká 1 sekundu Serial.println("Text SMSky"); // odešle text "Text SMSky" delay (10000); // čeká 10 sekund Serial.println((char)26); // ukončí SMS režim delay (3600000);} // program se zastaví na hodinu
Malá písmena "x" přepíšeme na požadované telefonní číslo. Skeč nahrajeme do Arduina - volač začne vyzvánět a poté odešle SMSku. Čekací časy na řádcích slouží operátorovi ke zpracování dat. Nezávislé zapojení (bez připojení na PC) je uvedeno níže. V desce NANO bude nahrán předchozí skeč. Nejprve zapojíme volač na stabilizovaný zdroj a ověříme připojení volače na operátora provoláním z vlastního telefonu. Poté připojíme Arduino na napájení, např. vypínačem P. Arduino začne vyzvánět a poté pošle SMS.
Funkční "bastl" Arduino + volač GSM:
Na co si dát pozor Volač SIM800L má klidový odběr 13 mA, přesto vyžaduje "tvrdý zdroj" pro zabezpečení proudu 2,5 A ve špičkách (USB nestačí). Pokud použijeme měkčí zdroj (min. 0,5 A), je nutné připojit ke zdroji kapacitu cca 2G pro vyrovnávání proudových špiček volače. Volač není chráněn vůči přepólování napájení. Přepólování způsobí zkrat zdroje a může volač poškodit. V místech s nižší úrovní signálu je vhodné nahradit spirálovou anténu kvalitnější anténou, např. anténou připomínající "dipol". Vodiče pro napájení volače by neměly být dlouhé (odpor max. 0,15 Ω). Např. zapojení ampérmetru do napájení volače způsobilo selhání připojení k operátorovi. Nezapomeňme, že deska UNO je zde pro použití bez úpravy nevhodná a nelze ji použít ani při předběžném odlaďování a ověřování funkčnosti skeče. V jednom případě použití desky UNO docházelo k chaotickým a náhodilým chybám komunikace volače s operátorem.
Prosinec 2019
Arby
|