Poniższy opis pokazuje w jaki sposób można przekształcić Raspberry Pi z modemem GSM na USB w bramkę do wysyłania wiadomości SMS poprzez interfejs webowy. Projekt stworzony został wykorzystaniem PHP oraz C#. Oprogramowanie, które komunikuje się z modemem napisane zostało w C#, a front-end webowy w PHP. Dodatkowo system wyposażony jest w bazę PostgreSQL, która służy do przechowywania historii wysyłanych SMSów. Modem GSM wymaga karty SIM - koszt karty i wysyłanych wiadomości zależny jest od operatora.
Krok 1: Potrzebne elementy
Potrzebne będą tylko dwa urządzenia: Raspberry Pi oraz modem GSM na USB z aktywną kartą sieciową.
Krok 2: Wymagania programowe
Zanim rozpoczniemy zmagania z programem na Raspberry Pi zainstalować musimy:
* Apache2
* PHP
* PHP PDO
* PHP PostgreSQL
* Mono dla C#
Aby zainstalować pakiety Apache2 w konsoli wpisujemy:
Następnie insyalujemy PHP:
Zaraz potem bazę danych PostgreSQL:
Oraz mono:
Krok 3: Modem GSM na USB i Raspberry Pi
W pierwszej kolejności podłączamy do wolnego portu USB modem GSM i w konsoli wpisujemy polecenie lsusb. Powinniśmy zobaczyć nasz modem; na przykład:
Port szeregowy z jakiego korzysta modem opisany będzie jako /dev/ttyUSB0, więc jeśli wykorzystamy komendę:
zobaczymy listę urządzeń tego rodzaju:
Możemy przetestować teraz komendy AT na naszym modemie USB. W tym celu zainstalujemy program minicom, który pozwoli nam wysłać do niego komendy. W terminalu wpisujemy:
Po zainstalowaniu minicoma musimy go skonfigurować. Wpisujemy w terminalu następującą komendę:
W ustawieniach wybieramy "Serial port setup" i jeżeli wszystkie konfiguracje się zgadzają, naciskamy "OK".
Krok 4: Utworzenie bazy danych
Teraz musimy utworzyć bazę danych PostgreSQL, w której przechowywać będziemy informacje o wysłanych SMSach. Tabela posiada następujące pola:
I zdefiniowana jest w następujący sposób:
Krok 5: Formularz do wysyłania wiadomości tekstowych
Zanim zaczniemy korzystać z poniższego skryptu musimy skonfigurować połączenie z serwerem bazy danych. Autor konstrukcji korzysta z zewnętrznego serwera, ale nie ma problemu aby hostować bazę danych lokalnie na Raspberry Pi.
Musimy uzupełnić następujące dane w skrypcie:
Sam skrypt jest bardzo prosty - zawiera formularz do wysłania SMSa. Wysłane wiadomości zapisywane są w tabeli "sms" opisanej powyżej.
Krok 6: Oprogramowanie do wysyłania SMSów
Oprogramowanie obsługujące modem GSM napisane zostało w C#. Aby móc korzystać z stworzonych w tym języku programów pod Linuxem musimy posiadać zainstalowane Mono. W pierwszej kolejności musimy skonfigurować w programie kilka stałych z danymi do logowania do bazy danych:
Cały projekt w C# pobrać można tutaj.
Projekt skompilowany został w MonoDevelop pod Windowsem, a następnie skopiowany na 'Malinę'. Po kompilacji tworzymy folder SMS-cronb w folderze domowym i kopiujemy tam następujące pliki z projektu: Mono.Security.dll, Npgsql.dll oraz SMS-cron.exe.
Następnie otwieramy crontaba:
i dodajemy tam jednolinijkowy wpis i zapisujemy:
\
Dzięki temu co minutę SMS-cron będzie się uruchamiał i sprawdza i tablicę "sms"z nowymi SMSami do wysłania.
Bramka SMS jest już gotowa
Źródło: http://geek.adachsoft.com/home/article/id/20/n/Raspberry-PI-SMS-sender/refid/fb
Krok 1: Potrzebne elementy
Potrzebne będą tylko dwa urządzenia: Raspberry Pi oraz modem GSM na USB z aktywną kartą sieciową.
Krok 2: Wymagania programowe
Zanim rozpoczniemy zmagania z programem na Raspberry Pi zainstalować musimy:
* Apache2
* PHP
* PHP PDO
* PHP PostgreSQL
* Mono dla C#
Aby zainstalować pakiety Apache2 w konsoli wpisujemy:
Kod: Bash
Następnie insyalujemy PHP:
Kod: Bash
Zaraz potem bazę danych PostgreSQL:
Kod: Bash
Oraz mono:
Kod: Bash
Krok 3: Modem GSM na USB i Raspberry Pi
W pierwszej kolejności podłączamy do wolnego portu USB modem GSM i w konsoli wpisujemy polecenie lsusb. Powinniśmy zobaczyć nasz modem; na przykład:
Bus 001 Device 005: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/NetworkcardPort szeregowy z jakiego korzysta modem opisany będzie jako /dev/ttyUSB0, więc jeśli wykorzystamy komendę:
Kod: Bash
zobaczymy listę urządzeń tego rodzaju:
/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2Możemy przetestować teraz komendy AT na naszym modemie USB. W tym celu zainstalujemy program minicom, który pozwoli nam wysłać do niego komendy. W terminalu wpisujemy:
Kod: Bash
Po zainstalowaniu minicoma musimy go skonfigurować. Wpisujemy w terminalu następującą komendę:
Kod: Bash
W ustawieniach wybieramy "Serial port setup" i jeżeli wszystkie konfiguracje się zgadzają, naciskamy "OK".
Krok 4: Utworzenie bazy danych
Teraz musimy utworzyć bazę danych PostgreSQL, w której przechowywać będziemy informacje o wysłanych SMSach. Tabela posiada następujące pola:
| Nazwa pola | Opis | sms_id | Numer ID wiadomości | date_insert | Data dodania wpisu | date_send | Data wysłania SMSa | number | Numer telefonu odbiorcy | message | Treść wiadomości | date_error | Jeśli wystąpił błąd - data jego wystąpienia | date_cancel | Pole informujące o anulowaniu wysyłania SMSa |
I zdefiniowana jest w następujący sposób:
Kod: SQL
Krok 5: Formularz do wysyłania wiadomości tekstowych
Zanim zaczniemy korzystać z poniższego skryptu musimy skonfigurować połączenie z serwerem bazy danych. Autor konstrukcji korzysta z zewnętrznego serwera, ale nie ma problemu aby hostować bazę danych lokalnie na Raspberry Pi.
Musimy uzupełnić następujące dane w skrypcie:
Kod: PHP
Sam skrypt jest bardzo prosty - zawiera formularz do wysłania SMSa. Wysłane wiadomości zapisywane są w tabeli "sms" opisanej powyżej.
Kod: PHP
Krok 6: Oprogramowanie do wysyłania SMSów
Oprogramowanie obsługujące modem GSM napisane zostało w C#. Aby móc korzystać z stworzonych w tym języku programów pod Linuxem musimy posiadać zainstalowane Mono. W pierwszej kolejności musimy skonfigurować w programie kilka stałych z danymi do logowania do bazy danych:
Kod: C#
Cały projekt w C# pobrać można tutaj.
Projekt skompilowany został w MonoDevelop pod Windowsem, a następnie skopiowany na 'Malinę'. Po kompilacji tworzymy folder SMS-cronb w folderze domowym i kopiujemy tam następujące pliki z projektu: Mono.Security.dll, Npgsql.dll oraz SMS-cron.exe.
Następnie otwieramy crontaba:
Kod: Bash
i dodajemy tam jednolinijkowy wpis i zapisujemy:
* * * * * ./home/pi/SMS-cron/SMS-cron.exeDzięki temu co minutę SMS-cron będzie się uruchamiał i sprawdza i tablicę "sms"z nowymi SMSami do wysłania.
Bramka SMS jest już gotowa
Źródło: http://geek.adachsoft.com/home/article/id/20/n/Raspberry-PI-SMS-sender/refid/fb
Fajne? Ranking DIY