Kiedyś wymyśliłem sobie, że napisze alarm do domu na arduino i w zasadzie to zrobiłem ale końcowo nie zainstalowałem go i nie doprowadziłem całości do stanu używalności. Projekt zawierał takie funkcje jak kontrola dostępu na rfid i powiadamianie SMS. I właśnie dziś chciałbym pokazać jak kiedyś zaprogramowałem arduino aby wysyłało do mnie sms lub dzwoniło.
Do całości użyłem modemu Siemens ES75 bo miał wejście serial. Aby arduino komunikowało się bez problemu z modemem musiałem pomiędzy wstawić konwerter napięć max232N.
Fimik jak Arduino sms’uje i puszcza sygnał.
Na poniższym filmiku Arduino wysyła sms z tekstem: „Arduino Test”, po czym puszcza sygnał.
Program dla Arduino
Jest to przerobiony skrypt z http://arduino.cc/en/tutorial/button tak aby po naciśnięciu guzika modem wykonał funkcje send_sms i call, no i zapalał diodkę. Na pewno łatwo go przerobić na własne potrzeby np. tylko dzwoni, lub tylko sms’uje.
const int buttonPin = 2; // guzik const int ledPin = 13; // led int count = 0; int buttonState = 0; // stan guzika void setup() { pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT); Serial.begin(115200); //seriall speed } void send_sms() { digitalWrite(ledPin, HIGH); Serial.print("\r"); delay(1000); Serial.print("AT+CMGF=1\r"); delay(2000); Serial.print("AT+CMGS=\"777888999\"\r"); //numer delay(2000); Serial.print("Arduino Test\r"); //tekst SMS delay(2000); Serial.write(0x1A); delay(2000); } void call() { digitalWrite(ledPin, HIGH); Serial.print("\r"); delay(1000); Serial.println("ATD777888999;"); delay(8000); Serial.println("ATH;"); // koniec rozmowy } void loop(){ buttonState = digitalRead(buttonPin); if (buttonState == HIGH) { send_sms(); call(); } else { digitalWrite(ledPin, LOW); } }
Schemat mojej roboty
Kondensatory jakie użyłem to 10uF na 50V, innych akurat nie miałem.
Zastosowania
Zastosowań może być wiele jak wiele jest pomysłów. Przede wszystkim właśnie alarmy, gdzie zamiast guzika podpinamy się pod wyjścia NC/NO. Innym zastosowaniem może być powiadamianie bezpośrednio z serwera, routera itd, itp………..