alexa-tracking
Kategori
Kategori
Home / FORUM / All / Hobby / Hobby & Community /
Hobby Elektronika Digital, MicroController & solder Menyolder gabung sini Yuks
KASKUS
51
244
https://www.kaskus.co.id/thread/000000000000000002654259/hobby-elektronika-digital-microcontroller-amp-solder-menyolder-gabung-sini-yuks

Hobby Elektronika Digital, MicroController & solder Menyolder gabung sini Yuks

DIGITAL ELECTRONICS HOBBY FORUM




Spoiler for apa aja sih yang dibahas?:


Spoiler for "Hobby Microcontroller Itu Mahal ? Kreativitasmu Itu yg Mahal Gan !":




UPDATE 8/JUNI/2014

DUKUN FUSEBIT AKAN MENGHIDUPKAN IC MU YANG MATI !



Selengkapnya dibahas di sini gan !!

CLINOMETER SEDERHANA MEMANFAATKAN ADC



Selengkapnya dibahas di post berikut




Spoiler for Buka Jika Mau Paket Belajar:


Proyek2 micro yg sudah jadi
Quote:



I.N.D.E.X F.O.R.U.M

Quote:




Biar ngiler, ane kasih contoh hasil karya TS...






Spoiler for Contact TS lewat dimari yahh:



.
Diubah oleh ahocool
# Kontrol Micro-AVR Via SMS

setelah lama tidak membahas tentang per- SMSan dan micro, kali ini kita bahas kelanjutan dari posting terdahulu, kirim SMS via attiny link disini dan lanjut disini

Kita akan bahas mengenai mode "penerima sms" , dimana micro AVR akan menerima SMS dan melakukan keputusan berdasarkan parsing teks sms yg dikirim.

Kelemahan mode serial UART yg sebelumnya adalah bisa mengirim(banyak teks) dan menerima hanya 1 teks sebagai triger interupt.

Bagaimana jika Teks yg ingin diparsing berupa beberapa karakter? semisal "LED1ON" ?

Ternyata jika kita cek satu persatu per karakter yg dikirim maka akan muncul masalah "terpotong" atau timing yg kacau....Untuk itu dibutuhkan mode "FIFO" atau "circular buffering" dimana teks yg diterima oleh micro melalui UART/serial akan disimpan dalam buffer yg kemudian akan diolah/parsing.

Setelah mencoba beberapa library , yang paling pas adalah pfleury uart library penjelasan disini dan download disini. Silahkan baca terlebih dahulu dan ternyata cukup mudah dan simple.

oke...selanjutnya kita ingat dulu AT command dari modem yg kita gunakan yaitu Wavecom. Beberapa command yg penting adalah :

ATE0 : agar karakter yg dikirim tidak di echo/kembalikan
AT+CMGF=1 : mode sms "teks"

dan yang baru adalah :

AT+CNMI=2,2 : mode SMS terima langsung tampil teksnya

jika sms diterima dengan mode diatas, maka ketika sms diterima akan muncul seperti ini di modem :

Code:


+CMT :"+628155555555","11/10/01,12 :30 :00+00",
pesan sms disini



dan dari teks sms yg diterima kemudian diolah oleh micro (parsing) untuk melakukan keputusan yg diinginkan

lanjut kita ke proyek sebenarnya, kali ini kita menggunakan micro ATMEGA 8515 dengan circuit seperti berikut (micro laen menyesuaikan aja):

Spoiler for gambar rada gede:


modem wavecom memiliki mode komunikasi serial yg "cross" jadi jangan lupa untuk melakukan cros TX & RX (pin 2 vs pin 3 dari DB9)


selanjutnya kita akan bahas scriptnya

-Inisialisasi

kita akan menggunakan library uartnya si pleury, dengan mengcopy "uart.h" serta "uart.c" ke folder avr studio dan menambah source uart.c dan include uart.h

Code:

#define F_CPU 7372800UL //xtal yg digunakan biar error 0%
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>

#include "uart.h" //pastikan sudah tersedia di folder program

//definisi baudrate RS232

#define UART_BAUD_RATE 9600


char buffer[10]; //definisi buffer teks
int indexbuf=0;


cara menambahkan uart.c :



- inisialisasi I/O port dan modem wavecom

Code:


int main(void)
{

DDRA |= (1<<PA6)|(1<<PA7); //port yg digunakan PA6 & PA7

unsigned int c;
uint8_t a;

//inisialisai UART dari library pfleury

uart_init( UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU) );
sei(); // mode receive interupt


uart_puts_P("ATE0\r"); // biar tidak memenuhi buffer
_delay_ms(500);
uart_puts_P("AT+CMGF=1\r"); //mode smsteks
_delay_ms(500);
uart_puts_P("AT+CNMI=2,2\r"); // mode langsung baca sms



sebelumnya agar diingat untuk mengedit uart.h dibagian dibawah ini, sesuaikan dengan panjang sms teks yg diterima

Code:

/** Size of the circular receive buffer, must be power of 2 */
#ifndef UART_RX_BUFFER_SIZE
#define UART_RX_BUFFER_SIZE 64
#endif
/** Size of the circular transmit buffer, must be power of 2 */
#ifndef UART_TX_BUFFER_SIZE
#define UART_TX_BUFFER_SIZE 64
#endif



- Parsing SMS

Kita lanjut dengan Parsing SMS yg masuk, dimana akan meng-ON/OFF Led di port A6 & A7. Untuk mepermudah parsing, kita gunakan trigger karakter khusus sehingga dapat menandai SMS yg akan diparsing ( kali ini menggunakan " $ ")

Code:

PORTA &= ~_BV(PA6) & ~_BV(PA7);


while(1)

{\t


c = uart_getc();
if ( c & UART_NO_DATA ) // jika ga ada data yg masuk
{

}
else
{

if( c == '$'emoticon-Wink indexbuf=0; //jika triger $, maka mulai parsing (index aray buffer = 0 )
\t\t


\t\t buffer[indexbuf] = c; //masukkan teks sms ke buffer

\t\t indexbuf++; //index array ditambah
\t\t

}

// Jika yg diterima sms "$LED1ON", maka Led di PA6 akan hidup
if( buffer[0]=='$' && buffer[1]=='L' &&buffer[2]=='E' &&
\t buffer[3]=='D' && buffer[4]=='1' &&
buffer[4]=='O' && buffer[5]=='N'emoticon-Wink

{ PORTA |= _BV(PA6);
\t
\t for(a=0;a<10;a++) buffer[a]=0; // bersihkan buffer
\t
\t
\t }

// Jika yg diterima sms "$LED2ON", maka Led di PA7 akan hidup
if( buffer[0]=='$' && buffer[1]=='L' &&buffer[2]=='E' &&
\t buffer[3]=='D' && buffer[4]=='2' &&
buffer[4]=='O' && buffer[5]=='N'emoticon-Wink

{ PORTA |= _BV(PA7);
\t
\t for(a=0;a<10;a++) buffer[a]=0; // bersihkan buffer
\t
\t
\t }

// Jika yg diterima sms "$LED1OFF", maka Led di PA6 akan mati
if( buffer[0]=='$' && buffer[1]=='L' &&buffer[2]=='E' &&
\t buffer[3]=='D' && buffer[4]=='1' &&
buffer[5]=='O' && buffer[6]=='F' && buffer[7]=='F'emoticon-Wink

{ PORTA &= ~_BV(PA6);
\t
\t for(a=0;a<10;a++) buffer[a]=0; // bersihkan buffer
\t
\t
\t }

// Jika yg diterima sms "$LED2OFF", maka Led di PA7 akan mati
if( buffer[0]=='$' && buffer[1]=='L' &&buffer[2]=='E' &&
\t buffer[3]=='D' && buffer[4]=='2' &&
buffer[5]=='O' && buffer[6]=='F' && buffer[7]=='F'emoticon-Wink


{ PORTA &= ~_BV(PA7);
\t
\t for(a=0;a<10;a++) buffer[a]=0;// bersihkan buffer
\t
\t
\t }
\t
\t}




}



SELAMAT MENCOBA
×
GDP Network
© 2019 KASKUS, PT Darta Media Indonesia. All rights reserved
Ikuti KASKUS di