- Power supply bisa gunakan 5Volt jadi aman menggunakan micon atau arduino
- Level serial ditulisan 3.3V , tapi serial TTL cukup juga kok levelnya
- Jika menggunakan USBSERIAL untuk mencoba berkomunikasi maka akan sangat kesulitan sebab batasan muncul ketika perintah serial yg dikirim tanpa memerlukan CR (enter) dan LF (\n). Jadi AT command yg dikirim akan sedikit berbeda seperti pada modem GSM
- Akibatnya untuk hello world sebaiknya langsung menggunakan arduino saja seperti gambar rangkaian dibawah ini.
Rabu, 22 Januari 2020
[Elektronika mudah] Hello World modul Bluetooth HM10 MLT-BT05-BLE4.0
BLE alias bluetooth low energy merupakan pengembangan terbaru teknologi wireless jarak dekat yaitu versi bluetooth 4.0 keatas dimana merupakan salah satu penggerak dunia IOT yang sangat digemari. Apabila anda jalan-jalan ke MALL dan melakukan scan bluetooth melalui perangkat HP smartphone maka anda akan terkejut melihat banyaknya perangkat disekitar kita yang menggunakan komunikasi BLE. Contohnya dapat saya gambarkan disebuah mall di surabaya dengan hasil scan pada toko sepatu dan saya terkejut melihat hasilnya ...
Kira-kira barang apa yg ada disekitar saya ya ? Kok bisa banyak banget..dan ternyata setelah saya menengadah diatas kepala saya terdapat ratusan lampu LED dengan bentuk yg sedikit "oversize" dan ketika saya googling hasilnya lampu itu merupakan smartlamp BLE yang secara IOT dapat mengatur posisi dan kecerahannya sesuai kondisi yang diinginkan. Canggih bukan ?
Blog ini sempat juga berkenalan dengan modul bluetooth versi jadul yang bisa anda baca disini : http://www.aisi555.com/2013/09/tutorial-avr-bluetooth-android-its-easy.html , dan dapat diperoleh penjelasan dari praktek tentang kemudahan berkomunikasi serial secara wireless. Bagaimana dengan versi terbaru yang sudah mengadopsi teknologi BLE 4.0 ? Ternyata ada istilah baru yg harus digoogling apabila pertama mengenal BLE yaitu ADVERTISING, UUID, SERVICE, GATT, CHARACTERISTIC dan sebagainya. Untuk mempersingkat pemahaman bisa dilihat pada hasil scanning di smart TV berikut.
dan ketika kita bonding dengan alat BLE semacam smart watch bisa dilihat akan muncul beberapa UUID dan Characteristicnya dalam format yg sedikit menakutkan bagi orang awam.
Jadi biar tidak bingung cukup dibayangkan UUID sebagai bapaknya, Characteristic sebagai anaknya. Prosesor yg terhubung dengan BLE akan menentukan properties dari masing CHAR apakah bisa dibaca, ditulis atau memberikan notifikasi. Nah data CHAR inilah yg nanti akan diisikan data oleh prosesor Input Output BLE dan pihak lawan membacanya atau merubah nya seperti umumnya client/server yg berkomunikasi secara wireless.
Dipasaran modul siap pakai BLE hanya ditemukan satu model yaitu "clone" yg mengaku BT09-AT . Tetapi ketika penulis mencoba berkenalan "hello world" ternyata modul ini lebih ke versi MLT-BT05 yang memang sudah ber versi BLE 4.0 . Mari kita bahas cara berkenalan dengan modul BT05 ini. Kesan saya pertama kalinya memegang alat ini:
Dengan script berikut ini yg berdasarkan komunikasi serial biasa maka akan dapat di test hasil dari AT command paling dasar yaitu AT+NAME<nama nya bluetooth> .
include <SoftwareSerial.h>
SoftwareSerial mySerial(3, 4); // RX, TX
void setup() {
mySerial.begin(9600);
Serial.begin(9600);
sendCommand("AT");
sendCommand("AT+NAMEwww.aisi55.com");
}
void sendCommand(const char * command){
Serial.print("Command send :");
Serial.println(command);
mySerial.println(command);
//delay bentar
delay(100);
char reply[100];
int i = 0;
while (mySerial.available()) {
reply[i] = mySerial.read();
i += 1;
}
//biar string end
reply[i] = '\0';
Serial.print(reply); //tulis jawaban dari BLE
Serial.println("Sukses");
}
void loop() {
}
jika dilihat monitor terminal serial akan muncul jawaban sebagai berikut
Dan hello world saya sukses dengan berhasil memancarkan sinyal BLE dengan nama www.aisi555.com. Bisa dicoba juga menambahkan beberapa AT command lainnya seperti AT+VERSION dan AT+ADDR . Selamat mencoba.
Kamis, 16 Januari 2020
[Elektronika Simple] Mudahnya mengkoding pengiriman SMS melalui Mblock
Pada tahun 2013 silam saya telah menuliskan cara berkirim SMS melalui modem dan microcontroller AVR ( dapat dibaca disini ) dan begitu ringkasnya perintah AT command yg dikirimkan. Untuk merubah coding nya ke format Mblock mungkin bukan menjadi masalah besar bagi saya, cukup mengikuti alur langkah pengiriman serial. Tapi kali ini saya akan memposisikan ke kondisi dimana saya anggap yang melakukan koding adalah anak-anak. Jadi sebelumnya kita akan berkenalan dengan AT COMMAND dari modem yg kita gunakan yaitu SIM800L
Ketika barang datang mungkin kita butuh melakukan penyolderan kaki-kaki header dan antena ke board, tapi jika kamu membeli yg sudah tersolder mungkin akan lebih gampang. Jadi pertimbangan jika perkenalan koding pengiriman sms diberikan ke anak-anak maka sebaiknya dilakukan penyolderan sebelumnya dibantu oleh orang dewasa. Dengan alat tambahan USB to TTL Serial maka kita dapat melakukan perintah dasar AT command seperti pada umumnya yg telah saya bahas tahun 2013. Perintah yg umum perlu ditest melalui terminal serial / putty adalah :
ATE1 <enter> : untuk menampilkan penekanan keyboard
AT+IPR? <enter> : Untuk mengetahui baudrate serial, umumnya saat datang baudrate default 115200 (pas dengan baud rate serial pada Mblock)
AT+IPR=9600 <enter> : Jika ingin merubah baudrate ke 9600 bps , gunakan default saja karena sesuai dengan baudrate serial pada Mblock
AT&W <enter> : Menyimpan setting ke eeprom SIM800
AT+CMGF=1 <enter> : Mengubah SMS menjadi mode teks
AT+CMGS="081xxxxxx" <enter> : Mengirim sms ke nomer yg dituju
AT+CMGR=1 <enter> : membaca sms pada memori no 1
Lebih khususnya ketika kita mengirimkan AT COMMAND untuk perintah kirim SMS seperti berikut :
AT+CMGS="081xxxxxx" <enter>
maka pada terminal akan muncul caret
> masukkan teks yang akan dikirim
lalu setelah teks di tuliskan maka harus dilakukan pengiriman tombol CTRL+Z atau ASCII (0x1A)
Bagaimana dengan pengiriman SMS menggunakan MBLOCK ? Kita akan bahas satu persatu dengan menggabungkan project lanjutan dari pembacaan DHT11 ke LCD yang bisa dibaca terlebih dahulu disini . Kita akan mengirimkan SMS yg berisikan pesan berupa pembacaan suhu dan kelembaban.
Dari gambar diatas merupakan blocks inisialisasi setup dari perangkat yaitu berupa sensor DHT11 , dua buah variabel suhu dan humi, inisialisasi port LCD serta perintah inisialisasi modem yaitu :
AT+CMGF = 1 serta ASCII 13
Kita tahu AT+CMGF=1 merupakan perintah untuk merubah menjadi modem menjadi SMS format teks (bisa juga langsung disimpan saja seting nya dan modem menjadi selalu bermode SMS teks), lalu ASCII 13 itu apa? itu artinya CR (cariage return) alias enter, dimana 13 decimal dalam tabel ascii berarti CR (enter) , lalu kalau CTRL+z (0x1A) ? Kita gunakan kalkulator saja dan kita dapatkan angka desimalnya 26 dan cocok pada tabel ascii nya.
Blok diatas telah kita bahas pada pembahasan DHT11 vs LCD cuma ada perbaikan dimana nilai pembacaan data kita simpan ke variabel suhu dan humi sehingga dapat digunakan lagi (alias pembacaan sensor sekali saja dalam satu periode loop).
Kelanjutannya adalah blocks untuk pengiriman SMS dengan perintah yg dikirim melalui serial ke modem SIM800 yaitu : AT+CMGS ="081xxxxxx" , dan kemudian diikuti dengan penyusunan kalimat SMS berupa " saat ini suhu = (suhu dht11) celsius , kelembaban = (humi dht11) %rH. Diakhiri dengan pengiriman desimal 26 yang dalam tabel ASCII berarti CTRL+Z . Pesan SMS akan dikirimkan setiap 30 detik (LOOP FOREVER) dan hasilnya seperti dalam gambar dan video dibawah.
Bagaimana ? Mudah bukan ?
[Elektronika mudah] Berkreasi Lebih Jauh Dengan Mblock Extension - DHT11 dan LCD matrix
Mungkin jika anda mencari di mesin pencari google dengan kata kunci "DHT11 LCD ARDUINO" maka ratusan website dengan bahasan yg sama akan muncul. Saking mudahnya membuat iri penulis ketika mesin pencari yahoo 20 tahun lalu hanya menunjuk ke website yang itu lagi dan lagi. Anak jaman sekarang mungkin jarang melakukan aktivitas mencari buku referensi di perpustakaan yg memakan waktu tidak sebentar. Tapi itulah kemajuan jaman kita harus flexibel dalam pemanfaatan semua teknologi yang telah disediakan. Termasuk dalam hal pemrograman arduino secara drag and drop yang kita bahas kali ini.
Mblock yang dasar-dasarnya telah kita bahas ditulisan sebelumnya http://www.aisi555.com/2020/01/berkenalan-dengan-makeblock-vs-arduino.html juga mengijinkan penambahan extension yg dikreasikan oleh developer luar atau kita sendiri juga bisa menambahkan. Salah satunya yg tersedia dan tinggal download adalah extension library untuk sensor DHT11 dan LCD matrix 16x2 . Jadi sangat mudah sekali untuk melakukan pembacaan DHT11 yg kemudian dihubungkan ke Arduino Uno dan output nya dituliskan ke serial port.
Cukup sederhana hanya 6 baris blocks yang dibutuhkan dan mungkin anak-anak yg belajar akan menjadi bosan karena saking simplenya. Yang seharusnya dikembangkan agar menarik perhatian anak adalah pemanfaatan pembacaan dari sensor ke penggunaan yang lebih aplikatif semisal untuk pengaturan kenyamanan didalam mobil dan lain sebagainya. Menyambung dengan penggunaan DHT11 di kontrol suhu ruang mobil sepertinya akan menjadi lebih menarik jika ada tampilan di LCD matrix. Kalau googling maka akan mendapatkan sebarek rangkaian seperti ini salah satunya.
Rangkaian seperti diatas merupakan rangkaian standar yg bisa disesuaikan port UNO yang ingin digunakan. Selanjutnya adalah kreasi pada scratch Mblock yang sangat mudah seperti pada penjelasan dibawah ini.
Untuk setting awal seperti biasanya pada library LCD bawaan arduino urutan pin nya adalah RS-EN-D4-D5-D6-D7 , sedangkan pin R/W tidak digunakan dan cukup di hubungkan ke ground. Jangan lupa memutar potensio untuk mendapatkan kontras karakter pada LCD. Langsung upload dan ...voilla...muncul pembacaan DHT11 pada LCD...
Kreativitas tidak terbatas pada tampilan saja dan silahkan mencoba dengan buzzer-relay-switch dan lain sebagainya. SELAMAT MENCOBA !.
Senin, 13 Januari 2020
[Elektronika mudah] Berkenalan Dengan MakeBlock vs Arduino - Praktek Dasar Led Blink & Sensor LM35
" Mengajarkan ilmu ke anak-anak yg lahir setelah generasi milenial haruslah berbasis VISUAL .."
Apaan lagi nih bikin pusing aja ? Quote tadi saya kutip dari pembicaraan bersama teman sesama penjaga stand pada pameran ARTPRENEUR pada akhir desember 2019. Kegalauannya pecah ketika melihat kenyataan siswanya (anak smk) dimana hanya segelintir saja yg bisa menyerap ilmu coding web php yg dan berujung banyak siswa yg bolos. Kenapa sepeti itu ya ? Kenapa coding menjadi tidak menarik ? Padahal penulis sangat mencintai coding (yang gampang tentunya). Saya merasakan masuk kedalam koding sangat mengasyikkan layaknya memecahkan sebuah role play game, mungkin dapat dibandingkan seperti keasikan anak sekarang bermain Mobile Legend.
Pada dasarnya pemrograman DRAG & DROP bukan barang baru terutama era 90-an dengan platform pemrograman desktop yaitu Visual Basic, C# dan Delphi dimana membuat tombol dan input teks hanya dari ujung mouse. Apalagi setelah era macromedia / adobe flash malahan semakin dimanja pemrograman nya dengan penggabungan animasi dan actionscript (penulis jagonya di flash sih). Lalu kita tengok pemrograman visual drag-drop lainnya, Scratch menjadi Visual IDE (berbasis flash) pilihan untuk tujuan edukasi koding ke anak-anak yg dikembangkan oleh MIT. Semakin dimanjanya anak-anak dengan gadget dan pilihan aplikasi yg langsung tampil "VISUAL" nya menyebabkan proses koding berbasis teks menjadi kurang menarik lagi. Bagaimana dengan pemrograman microcontroller yg selama ini selalu dilakukan pada mode teks?
Mulai tertarik dengan bahasa pemrograman drag and drop diatas ? Jika iya mari saya ajak menyelam membuat Hello Word dengan praktek Led Kedip dan Pembacaan Sensor Suhu LM35. Untuk itu anda perlu menuju ke IDE online web ( http://ide.mblock.cc ) atau download saja programmer offline nya yg tersedia di websitenya (googling aja). Perlu diketahui makeblock atau mblock merupakan platform programming robotik dari senzhen china yg demi menarik pasar anak-anak pencinta robotik maka dimanfaatkanlah scratch sebagai programming IDE nya. Tentunya jika ingin lebih menarik minat anak-anak anda harus membeli Mbot atau modul robotik yg memang dibuat semenarik mungkin dan sesuai tujuan mblock. Namun bagi anda yg hanya mempunyai board clone arduino seperti UNO jangan khawatir masih bisa kok. Mau saya bagi langkah-langkahnya berkenalan ? Ikuti tulisan dibawah.
- Device & Connection : Untuk arduino UNO butuh melakukan download modul librarinya. Menu awal ketika membuat project baru akan muncul device Codey dan sprite panda. Hapus saja karena tidak diperlukan.
- Component : Berisikan semua block komponen pemrograman yang diperlukan. Penggunaannya sangat simple hanya klik drag dan drop.
- Block Canvas : Yaitu tempat menyusun komponen menjadi blok saling berkaitan yang kemudian akan diterjemahkan menjadi suatu software arduino
- Code : Tempat kode yang equivalen dengan block pada canvas. Jadi bagi anda yg sudah menguasai sketch arduino akan mudah memahami walau akan ada batasan yg akan dihadapi.
HELLO WORD LED BLINK
PIN 13 sebenarnya sudah memiliki LED internal pada PCB tapi kalau mau lebih terang ya bisa mengikuti gambar diatas. Langkahnya dari awal seperti ini nih..
Jangan lupa ya gambar diatas dimana harus ditambahkan device Arduino UNO pada kolom devices. Pastikan driver USB to Serial ch340 sudah terinstal juga di komputer kamu.
Gambar diatas menunjukkan cara melakukan koneksi ke board arduino uno kamu dan akan muncul gambar dikanan apabila sudah terkoneksi dengan baik. Lanjut yuk kita berkenalan dengan Component beserta proses drag-dropnya ke dalam canvas.
Komponen block events yg mungkin satu-satunya dipakai dalam pemrograman arduino Uno adalah "when Arduino Uno Starts up "
Komponen PIN berisikan blocks yg berhubungan dengan PIN IO baik untuk mengatur fungsinya maupun pembacaan datanya, jadi super lengkap dari PWM sampai ADC. Contoh diatas kita akan menyusun blocks sehingga PIN 13 (LED) merupakan pin OUT dan kemudian kita bisa tentukan statenya apakah HIGH (nyala) atau LOW (mati).
Komponen control berisikan block perintah pengulangan, delay serta conditional statement. Tidak begitu susah kalau hanya buat menyalakan dan mematikan LED tiap 1/2 detik seperti gambar diatas. Tinggal menentukan blocks yg sesuai urutannya dan selanjutnya dapat dievaluasi melalui script yang berada dikanannya. Memang akan terjadi kesalahpahaman mengenai fungsi LOOP yg digantikan oleh perintah WHILE(1) pada fungsi void setup. Tapi secara fungsi itu PODO WAE MUNYER SAMPEK KIAMAT.
Komponen blocks Variables seperti namanya kita akan mendaftarkan sebuah variabel atau list(array) dan kemudian dapat kita tentukan nilai nya melaui block "set" atau perubahannya melalui block "change". Pada gambar diatas kita buat variabel coba bernilai awal 0, kemudian pada awal setup dirubah menjadi 2 dan melalui LOOP FOREVER akan berubah nilainya bertambah 1 tiap 1 detik.
Komponen operators berisikan operator aritmatika, binary serta operasi string. Tidak jauh berbeda dengan pemrograman teks lainnya yg menjadi spesial adalah drag drop antar blocks yg harus sesuai bulat atau persegi sesuai operasi yang diinginkan. Contoh penggabungan blocks control dengan blocks operators ada pada pembahasan dibawah.
Tujuan dari blocks diatas adalah menghidupkan dan kemudian mematikan LED dengan memperhatikan nilai dari variabel angka. Jadi saat angka <50 maka LED akan menyala lalu saat angka >50 maka LED akan mati. Untuk mengembalikan variabel angka ke 0 maka dibuat satu blocks IF statement lagi yg akan meReset varibel angka menjadi NOL. Sudah siap mencoba di Arduino UNO kamu ? Langsung tancapkan saja dan tekan UPLOAD !
MEMBACA SUHU LM35
Jika berbicara tentang pembacaan sensor LM35 pasti semua paham sangat gampang scriptnya bertebaran dibahas di google..jadi jika dikembangkan melalui scratch Mblocks menjadi satu baris yg sangat indah seperti gambar dibawah ini.
Mau tahu hasilnya seperti bagaimana di terminal serial putty ?
Tentunya MakeBlock memiliki keterbatasan untuk penggunaan arduino uno tapi saya rasa cukup menarik untuk dipelajari. Jika ada uang lebih bisa tuh membeli modul robot mBot yang sangat memungkinkan diajarkan ke anak-anak generasi Z . Semoga tulisan saya dapat mengispirasi kalian untuk tetap semangat belajar.