Semua Tentang Belajar Teknologi Digital Dalam Kehidupan Sehari - Hari

  • IC Timer 555 yang Multifungsi

    IC timer 555 adalah sirkuit terpadu (chip) yang digunakan dalam berbagai pembangkit timer, pulsa dan aplikasi osilator. Komponen ini digunakan secara luas, berkat kemudahan dalam penggunaan, harga rendah dan stabilitas yang baik

  • Ayo Migrasi TV Digital

    Kami bantu anda untuk memahami lebih jelas mengenai migrasi tv digital, apa sebabnya dan bagaimana efek terhadap kehidupan. Jasa teknisi juga tersedia dan siap membantu instalasi - setting perangkat - pengaturan antena dan distribusi televisi digital ke kamar kos / hotel

  • Bermain DOT Matrix - LOVEHURT

    Project Sederhana dengan Dot Matrix dan Attiny2313. Bisa menjadi hadiah buat teman atau pacarmu yang ulang tahun dengan tulisan dan animasi yang dapat dibuat sendiri.

  • JAM DIGITAL 6 DIGIT TANPA MICRO FULL CMOS

    Jika anda pencinta IC TTL datau CMOS maka project jam digital ini akan menunjukkan bahwa tidak ada salahnya balik kembali ke dasar elektronika digital , sebab semuanya BISA dibuat dengan teknologi jadul

  • Node Red - Kontrol Industri 4.0

    Teknologi kontrol sudah melampaui ekspektasi semua orang dan dengan kemajuan dunia elektronika, kini semakin leluasa berkreasi melalui Node Red

Rabu, 22 Januari 2020

[Elektronika mudah] Operasi Input Output Serial Bluetooth HM10 MLT-BT05-BLE4.0 - LED dan DHT11


#daring #daringadalah daring adalah mpls #sekolah #guru #google classroom google classroom sekolah online guru kelas zoom webcam 

Modul Bluetooth HM10 MLT-BT05-BLE4.0 yang saya beli ternyata merupakan emulator komunikasi serial pada BLE dan cocok untuk proses belajar mengenal parameter dan pengaturan dari device BLE pada umumnya. Harapan saya untuk dapat mengoprek UUID dan Service / Characteristic yg ada ternyata terbatas pada CHAR nama Bluetooth serta UUID 0xFFE0 yang merupakan layanan TX RX Serial seperti yg bisa dilihat di hasil scan pada aplikasi android BLE console ( gunakan google play).

Beberapa kali saya temukan kerancuan dalam mengartikan mana yg UUID dan mana CHARACTERISTIC, tapi dari kenyataan hasil praktek dan manual book maka modul saya ini memang hanya mempunyai 1 UUID dan 1 CHAR yaitu 0xFFE0 dan 0xFFE1. Ada beberapa blog yg mengatakan bahwa angka itu muncul dari kombinasi parameter serivis yg bisa read write dan notify. Daripada bingung kita ikut aja aturan seperti contoh yg ada di internet sana dimana harus disertakan AT command berikut ini :

  • AT+ROLE0              ==> Sebagai mode slave
  • AT+UUID0xFFE0   ==>  atur UUID
  • AT+CHAR0xFFE1  ==> atur Characteristic


Kembali ke kelanjutan praktek sebelumnya, kita kembali menghubungkan Arduino Uno dan modul BLE dan kali ini akan disertakan 2 buah lampu LED.



Jadi tujuan dari prakteknya adalah untuk menghidupkan dan mematikan LED melalui terminal android. Scriptnya bagaimana ? Kita bahas satu persatu bagian yuk..

#include <SoftwareSerial.h> // library serial
#define merah 5   // pin LED merah
#define hijau 6   // pin LED hijau

SoftwareSerial mySerial(3, 4); // RX, TX



void setup() {

  pinMode(merah, OUTPUT);     //inisialisasi led merah
  pinMode(hijau, OUTPUT);     //inisialisasi led merah
  digitalWrite(merah, HIGH);  //test led saat awal
  digitalWrite(hijau, HIGH);  // Nyala lalu mati
  delay(500);
  digitalWrite(merah, LOW);
  digitalWrite(hijau, LOW);
  
  mySerial.begin(9600);  // inisialisasi serial BLE
  Serial.begin(9600);    // inisialisasi serial UNO

  // inisialisasi UUID dan BLE sebagai slave mode
  sendCommand("AT");
  sendCommand("AT+ROLE0");
  sendCommand("AT+UUID0xFFE0");
  sendCommand("AT+CHAR0xFFE1");
  sendCommand("AT+NAMEwww.aisi555.com");
}



Nah begitu aturan awal menginisialisasi modul BLE pembaca cukup ikuti saja aturan ini. Lalu untuk mengirim AT command secara serial ke BLE digunakan function / routine bernama sendCommand()

void sendCommand(const char * command){
  Serial.print("Command kirim :");  // menulis command ke monitor
  Serial.println(command);
  mySerial.println(command);  // kirim AT command ke BLE
  //tunggu bntar
  delay(100);
  
  char reply[100]; //kumpulkan reply dalam char array 
  int i = 0;
  while (mySerial.available()) { 
    reply[i] = mySerial.read(); 
    i += 1;
  }
  //akhir string selalu '\0'
  reply[i] = '\0';  
  Serial.print(reply);

  Serial.println("Pesan Dibalas");



Untuk menerima perintah dari lawan yaitu Smartphone Android dengan aplikasi BLE Console maka diperlukan pembacaan perintah dan dicompare sesuai kata "kunci" yg dipakai. Misal "LED ON" maka akan di compare melalui script STRCMP seperti berikut :



if (strcmp(reply,"merah on")==0) digitalWrite(merah, HIGH);
else if (strcmp(reply,"merah off")==0) digitalWrite(merah, LOW);
else if (strcmp(reply,"hijau on")==0) digitalWrite(hijau, HIGH);
else if (strcmp(reply,"hijau off")==0) digitalWrite(hijau, LOW);
  
  if(strlen(reply) > 0){
    Serial.println(reply);
    Serial.println("Perhatikan LED nya");


  }
}  

Simple bukan ? Dengan kreasi menambahkan delay maka kita bisa juga menambahkan fasilitas flip- flop pada hijau merah seperti pada script dan video dikakhir tulisan ini

void loop() {
  readSerial();
  delay(500);

  if( flip == true) {
      if(flop == false) {
        digitalWrite(merah, LOW );
        digitalWrite(hijau, HIGH);
        flop = true;
      }

      else  {
        digitalWrite(merah, HIGH );
        digitalWrite(hijau, LOW);
        flop = false;
      }
  }

}


Bagaimana jika kita tambahkan DHT11 dan akan membaca suhu udara? Kita cukup menambahkan proses pembacaan DHT11 saat ada perintah serial masuk dari BLE yg dikirim smartphone,  misalnya seperti gambar dibawah. Saya menggunakan aplikasi BLE console dengan setting Notify centang dan Send Enter jangan di centang.



Jadi modifikasi script sama saja seperti pembahasan pembacaan DHT 11 pada percobaan yang lalu lalu, yg ditambahkan hanya reply ke  BLE melalui serial port.


void SendTempHumid(bool jenis){ // jenis suhu apa humi

    //script umum pembacaan DHT11
    float h = dht.readHumidity();
    float t = dht.readTemperature();

    if (isnan(h) || isnan(t)) {
      Serial.println("Failed to read from DHT sensor!");
      //return; This will ensure that data is always sent
    }

    
    if(jenis == false) // baca suhu
    {
    
    Serial.print("Temperature: "); 
    Serial.print(t);
    Serial.println(" °C ");

    mySerial.print("T: "); //kirim suhu ke BLE
    mySerial.print(t); 
    mySerial.println("°C ");

    }
    else
    {
    Serial.print("Humidity: "); 
    Serial.print(h);
    Serial.println(" %");

    mySerial.print("H: "); //kirim humi ke BLE
    mySerial.print(h); 
    mySerial.println(" %");
    }
}

Sedangkan pada function readSerial() kita tambahkan seperti ini  untuk menangkap pengiriman kata "suhu" dan "humi" yg dikirimkan oleh smartphone.

      else if (strcmp(reply,"suhu")==0) SendTempHumid(false);
    else if (strcmp(reply,"humi")==0) SendTempHumid(true);



Hasil selengkapnya bisa dilihat pada video berikut ini :



 SELAMAT MENCOBA ..
Share:

[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:

  • 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.



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.
Share:

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 ?
Share:

[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 !.
Share:

Kontak Penulis



12179018.png (60×60)
+628155737755

Mail : ahocool@gmail.com

Site View

Categories

555 (8) 7 segmen (3) adc (4) amplifier (2) analog (19) android (14) antares (11) arduino (27) artikel (11) attiny (3) attiny2313 (19) audio (5) baterai (5) blog (1) bluetooth (1) chatgpt (2) cmos (2) crypto (2) dasar (46) digital (11) dimmer (5) display (3) esp8266 (26) euro2020 (13) gcc (1) gsm (1) iklan (1) infrared (2) Input Output (3) iot (75) jam (7) jualan (12) kereta api (1) keyboard (1) keypad (3) kios pulsa (2) kit (6) komponen (17) komputer (3) komunikasi (1) kontrol (8) lain-lain (8) lcd (2) led (14) led matrix (6) line tracer (1) lm35 (1) lora (11) lorawan (2) MATV (1) memory (1) metal detector (4) microcontroller (70) micropython (6) mikrokontroler (2) mikrokontroller (14) mikrotik (5) modbus (9) mqtt (3) ninmedia (5) ntp (1) paket belajar (19) palang pintu otomatis (1) parabola (88) pcb (2) power (1) praktek (2) project (33) proyek (1) python (8) radio (28) raspberry pi (9) remote (1) revisi (1) rfid (1) robot (1) rpm (2) rs232 (1) script break down (3) sdcard (3) sensor (2) sharing (3) signage (1) sinyal (1) sms (6) software (18) solar (1) solusi (1) tachometer (2) technology (1) teknologi (2) telegram (2) telepon (9) televisi (167) television (28) telkomiot (5) transistor (2) troubleshoot (3) tulisan (94) tutorial (108) tv digital (6) tvri (2) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (3) yolo (7)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika