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:
Code: bash
Następnie insyalujemy PHP:
Code: bash
Zaraz potem bazę danych PostgreSQL:
Code: bash
Oraz mono:
Code: 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:
Code:
Bus 001 Device 005: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard
Port szeregowy z jakiego korzysta modem opisany będzie jako /dev/ttyUSB0, więc jeśli wykorzystamy komendę:
Code: bash
zobaczymy listę urządzeń tego rodzaju:
Code:
/dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2
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:
Code: bash
Po zainstalowaniu minicoma musimy go skonfigurować. Wpisujemy w terminalu następującą komendę:
Code: 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:
Code: 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:
Code: php
Sam skrypt jest bardzo prosty - zawiera formularz do wysłania SMSa. Wysłane wiadomości zapisywane są w tabeli "sms" opisanej powyżej.
Code: 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:
Code: csharp
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:
Code: bash
i dodajemy tam jednolinijkowy wpis i zapisujemy:
Code:
\
* * * * * ./home/pi/SMS-cron/SMS-cron.exe
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
Cool? Ranking DIY