AT+IPR=9600<enter>
OK
AT+IFC=0,0<enter>
OK
AT&W<enter>
Rangkaian elektronik nya sebagai berikut : (klik untuk memperjelas)
**) xtal yg digunakan nilainya khusus (7372800), jika menggunakan yg umum (4/8 mhz) atau default 1Mhz maka akan terjadi error 0,2%, tetapi tidak terlalu signifikan jika hanya kirim sms
***) ketika tombol ditekan maka micro akan mengirimkan perintah ke wavecom untuk mengirim sms
Inisialisasi Awal
#define F_CPU 7372800UL
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
//definisi baudrate RS232
#define USART_BAUDRATE 9600
#define BAUD_PRESCALE (((F_CPU / (USART_BAUDRATE * 16UL))) - 1)
Inisialisasi command2 AT COMMAND sebagai variabel constant
//ganti nomer HP
const char sms[] PROGMEM= "AT+CMGS=0812345678\r test dari micro";
const char smsend[] PROGMEM= {0x1A}; // ascii dari CTRL+Z
Routine untuk inisialisasi USART
void init_usart(void)
{
UCSRB |= (1 << RXEN) | (1 << TXEN);
UCSRC |= (1 << UCSZ0) | (1 << UCSZ1);
UBRRL = BAUD_PRESCALE;
UBRRH = (BAUD_PRESCALE >> 8);
UCSRB |= (1 << RXCIE); //interupt serial usart
}
Routine untuk kirim karakter melalui RS232
void USART_Tx(unsigned char data)
{
while (!(UCSRA & (1<<UDRE)));{} // wait till transmit Data register is empty
UDR = data; // Send data to the computer
}
void kirim_text(const char *data)
{
while (pgm_read_byte(data) != 0x00)
USART_Tx(pgm_read_byte(data++));
}
Routine interupt untuk membaca tombol dan kirim sms
SIGNAL (SIG_INT0)
{
kirim_text(sms);
kirim_text(smsend);
}
int main(void)
{
GIMSK |= (1<<INT0) ; // tombol interupt 0
MCUCR |= (1<<ISC01)| (1<<ISC00); //rising edge interupt
init_usart(); // inisialisai komunikasi usart
sei(); //hidupkan interupt
while(1)
{
}
}
Jika menggunakan clock external / xtal , jangan lupa untuk mengaktifkan clock external dari Attiny di fusebit/CKSEL, pilihlah frek yg high.
Aplikasi pada contoh praktek kali ini dapat digunakan juga dalam berbagai keperluan, diantaranya:
- Alarm (contoh pintu terbuka langsung kirim sms, sensor menggunakan limit switch)
- Deteksi level tegangan AC jika drop langsung kirim sms (sensor menggunakan komparator)
- Deteksi level air, misal untuk pendeteksi banjir maka otomatis mengirim sms (sensor level air sederhana menggunakan transistor FET)
- dsb
SELAMAT MENCOBA