Dzisiejszy post, jak sama nazwa wskazuje, jest o tym, jak wysłać SMS używając Arduino UNO i SIM900D za pomocą komend AT. Istnieją różne rodzaje modułów SIM900D dostępnych na rynku, więc nie ma znaczenia, którego modułu użyjemy.
Wszystkie moduły SIM900D działają w zasadzie na komendy AT, więc dzisiaj pokażę jak wysłać SMS za pomocą komend AT bez użycia żadnej biblioteki Arduino. Powinieneś najpierw przeczytać instrukcję komend AT, która da ci pojęcie o tychże komendach. Komendy AT to specjalne zestawy komend, które służą do komunikacji z modułem SIM900. Używając tych komend AT pozwalamy naszemu GSM pracować za nas. Jeśli chcemy wysłać SMS, to jest na to konkretna komenda AT, służąca do wysyłania tego typu wiadomości. Podobnie jeśli chcemy zmienić kod PIN dla modułu GSM, na co mamy inną komendę AT. Tak więc, istnieje wiele dostępnych komend AT. Możemy połączyć masz moduł GSM z dowolnym mikrokontrolerem takim jak PIC Microcontroller lub 8051 Microcontroller, ale tutaj połączyłem go z płytką Arduino. Powinniśmy również sprawdzić Jak wysłać SMS z pomocą mikrokontrolera PIC jeśli chcemy użyć mikrokontrolera PIC zamiast płytki Arduino.
Trzeba również sprawdzić Bibliotekę GSM dla Proteusa. Używając tej biblioteki można łatwo symulować nasz moduł GSM w Proteus ISIS. Ponadto, proszę również zajrzeć na stronę Wysyłaj SMS z Sim900D w Proteus ISIS, w którym zaprojektowałem symulację wysyłania SMS w Proteus ISIS.
Połączenie Arduino UNO z SIM900D
W pierwszej kolejności należy połączyć Arduino UNO z modułem SIM900D, co nie jest zbyt trudne. Jeśli mamy moduł w ręku, to pierwsze co trzeba zrobić, to podłączyć go do prądu i poczekać, aż moduł się połączy.
Zazwyczaj na module SIM900D umieszczony jest LED, który ciągle miga. Jeśli miga szybko, oznacza to, że moduł nie przechwycił jeszcze sygnału. Gdy moduł przechwyci sygnał, LED nadal miga, ale z mniejszą częstotliwością.
Teraz należy znaleźć piny TX i RX modułu SIM900D i połączyć TX modułu z RX Arduino UNO, który jest pinem #0 i analogicznie RX modułu z TX Arduino UNO, który jest pinem #1.
Moduł, którego użyłem do mojego projektu jest pokazany na poniższym rysunku, z oznaczonymi konfiguracjami pinów.
Jeszcze jedna rzecz wymieniona na powyższym rysunku to pKey – należy połączyć go z masą.
Gdy połączenia są już gotowe, wgrywamy poniższy szkic do naszego Arduino UNO i zaczynamy wysyłać wiadomości.
void setup()
{
Serial.begin(9600);
}
void loop()
{
delay(1200);
Serial.print("AT");
delay(1200);
bool bOK = false;
while (Serial.available() > 0)
{
char inChar = (char)Serial.read();
bOK = true;
}
if(bOK)
{
index = 0;
Serial.println();
Serial.println("AT+CMGF=1"); // sets the SMS mode to text
delay(100);
delay(1200);
bool bOK = false;
while (Serial.available() > 0) {
//Serial.write(Serial.read());
char inChar = (char)Serial.read();
bOK = true;
}
if(bOK)
{
Serial.println();
Serial.print("AT+CMGS=""); // wyślij numer SMS
Serial.print("+923004772379");
Serial.println(""");
delay(1000);
Serial.print("Nowy post został utworzony przez Zain."); // Treść SMS
delay(500);
Serial.write(0x1A);
Serial.write(0x0D);
Serial.write(0x0A);
}
}
}
Należy zamienić numer telefonu komórkowego z numerem, na który chcemy wysłać SMS. Ja wpisałem swój.
Należy również zmienić treść SMS i można napisać wszystko, co chce się wysłać jako SMS.
Do wysłania wiadomości SMS wymagane są komendy AT. Dodałem komentarze przed tymi komendami, ale nadal jeśli pojawią się jakieś problemy, zachęcam do pytania w komentarzach.
To wszystko na dzisiaj, w następnym poście, przyjrzymy się jak odbierać SMSy z SIM900 i Arduino.