[PRZYKŁAD] Usługa SMS powiadamiająca o nadmiernym stężeniu gazu – Orange Pi 2G-IOT oraz modMQ-5

Po zmontowaniu układu można przejść do kodu programu. Na początek inicjalizowane są wszystkie biblioteki, definiowana stała MODEM_PATH (ścieżka dostępu do modemu) oraz definiowane są stałe: mojNumer (numer telefonu, na który zostanie wysłana wiadomość) oraz tekst (treść wiadomości). W tym miejscu też inicjalizowana jest zmienna fd – numer deskryptora połączenia z modemem.

Jak wcześniej wspomniano, z pliku przykładowego pożyczono trzy funkcje: Send_AT – wysyła komendy AT do modemu, serial_init – inicjalizuje połączenie z modułem GPS oraz display_message – wyświetla komunikaty wchodzące i wychodzące z modułu GSM.

Funkcja SendSMS ma za zadanie wysłać dwie komendy AT, które powodują wysłanie wiadomości SMS w przypadku wykrycia nadmiernego stężenia gazu. Znak 0x1A to znak odpowiadający kombinacji <CTRL-Z>. Po wysłaniu wiadomości funkcja sleep blokuje przyrząd na 15 minut. Zapobiega to sytuacji, w której stężenie jest na granicy sygnalizacji, i niewielkie zmiany wyzwalają układ, przez co dochodziło by do wysyłania wielu wiadomości. To kosztuje, a przecież wystarczy jeden SMS, żeby powiadomić użytkownika o zaistniałej sytuacji.

W funkcji main uruchamiana jest biblioteka WiringPi, a pin 1 ustawiany jako wejściowy. Następnie uruchamiany jest deskryptor modemu i on też jest inicjalizowany. Wysyłane są komendy mające na celu wstępne skonfigurowanie połączenia z siecią GSM. W pętli głównej co 5 sekund sprawdzany jest czy stan na linii 1 nie zmienił się na niski. Gdy tak się stanie, wysyłany jest SMS pod podany w kodzie numer.

Po wgraniu pliku z programem do pamięci Orange Pi, należy przejść do folderu z plikiem i skompilować go następującym poleceniem:

A nastepnie uruchomić poniższym:

Przykład działania programu można obejrzeć na materiale wideo:

Program można wyłączyć kombinacją <CTRL-C>. Aby wyłączyć komputer można wywołać polecenie:

Do pobrania

O autorze