"Kembali Ke Dasar Elektronika Digital ... "

  • 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

  • Animasi LED Dengan IC 4017

    IC 4017 adalah IC 16-pin CMOS dekade counter dari seri IC CMOS 4000. Sangat berguna jika ingin membuat animasi lampu atau LED secara sederhana seperti led berjalan, tulisan berjalan , counter/timer dan masih banyak kegunaan lainnya

  • 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

  • BIKIN PCB SEDERHANA TAPI GA MURAHAN

    Bikin PCB itu ga susah kok..dengan software EAGLE CAD dan teknik sterika kamu dapat membuat PCB untuk berbagai project elektronika mu ...

Jumat, 03 Juli 2020

Channel Matrix Garuda Orange Setelah OTA 2020 Untuk Meningkatkan Security



Matrix garuda merupakan receiver yang sejak tahun 2000an dipilih pecinta bola dan sampe sekarang pun tetap menjadi pilihan jika ingin menonton liga inggris melalui MOLA tv. Pada masa pandemi covid-19 di sepanjang awal 2020 ini beberapa peristiwa terjadi pada layanan tv satelit prabayar ini dan yang paling awal adalah berhentinya liga inggris yang membuat penonton khususnya pelanggan tv berbayar seluruh dunia kecewa. Pada skala matrix garuda yang menjadi kejutan adalah berhasilnya dibobolnya sistem encrypsinya melalu cccam / cline yang entah disebarkan oleh pihak siapa.



Penulis sempat meminta trial kepada salah satu agen penyedia cline dari luar negeri dan lumayan mengingatkan ke jaman FLY ASBAK yang berakhir kejayaannya di 2018. Tentunya pihak matrix tidak akan memerlukan waktu lama untuk menyadari bahwa acakan ABV, yang dari website pengembang abv meng claim bahwa CAS on Chip tidak bisa dijebol,  tapi nyatanya bisa dijebol entah dari kesalahan siapa. Dan dapat ditebak kesalahaanya dipihak mana  jika ada pemberitahuan seperti ini beberapa waktu setelahnya.

 

Update via OTA juga dilakukan pada seri-seri receiver terbaru seperti Matrix Mola dan matrix garuda orange / hijau / merah yang parameter OTA nya dianggap TP dan PID nya mendukung. Fatalnya saat informasi upgrade ini dikeluarkan banyak yg melakukan upgrade manual dengan software yg salah sehingga menyebabkan kegagalan boot / mata merah. Seingat penulis varian matrix garuda sangatlah beragam mulai dari matrix soccer mpeg4 SD jaman piala dunia 2010 dan tentunya ini salah satu faktor mengapa tingkat enkripsi dari ABV nya terlihat lemah, ya mungkin untuk meratakan jenis receiver matrix garuda yang bisa diisi voucher mola hingga akhirnya menemui "blunder".

 



Receiver matrix garuda di beberapa user yang penulis pasangkan matrix garuda dan mola matrix umumnya sudah memperoleh download versi terbaru seperti pada gambar yaitu garuda orange dengan  versi 0.9 G1 . Jika dikatakan alasan halus yang diberikan oleh pihak matrix adalah upgrade untuk menambahkan database satelit yang kebetulan pas momennya yaitu migrasi masal dari Palapa D ke Telkom 4. Ya masalah begini sih susah-susah gampang untuk dicerna mungkin anggapannya teknisi tidak ada yang pintar apa? hehehehe



Daripada kita membahas hal yang bagi teknisi lain "ribet amat sih lu ngurusin begituan...cari uang sana treking" saya akan menuliskan update saluran yang ada pada matrix garuda (FTV) yang bisa didapatkan pada matrix garuda orange dengan satelit SES9.

LOKAL FTV :

SCTV HD   INDOSIAR HD    O-CHANNEL   TVRI NASIONAL 
ANTV      RTV     METROTV   TV ONE   KOMPAS TV   NET  




FTA :

[V] CHINESE    TOONMAX    XING KONG SPACETOON
BALI TV  JTV  DA AI   RODJA TV  TVMU  MATRIX SHOP





FTV ANAK:

NICKELODEON      NICK JR










FTV FILM & HIBURAN :

AXN    ZEE BIOSKOP   THRILL   MY CINEMA    MYCINEMA ASIA
SONY ONE      SONY GEM    MTV ASIA   MOLA SPORT FREE







RELIGI:

QURAN TV MEKAH     SUNNA TV MADINAH


Untuk daftar paket voucher berbayar 2020 nya seperti ini :


Share:

Kamis, 02 Juli 2020

The Coolest Way To Visualize VU Meter From Arduino to Microsoft Excel



On this tutorial i will try to show you how cool is python if combined with arduino, as i've already wrote on previous blogs Here dan Here . Sorry since i was writing only in Bahasa so please use google translate for your convenience and now i would like to write in english and i hope you'll understand.

First prepare some components from this schematic for amplifier part, the purpose is to create audio signal gain (from condenser mic) which is too weak for arduino's ADC to read from. 

Since we only want to read the signal's voltage so we can skip loud speaker part, but if you want to hear some poor noisy sound then it is up to you. Pin no 5 of LM386 can directly feed into any arduino ADC pin and the power supply can directly connected to 5 volt on arduino. The Script is quite simple as i only copy and paste from arduino's ADC example scripts collection.


int analogPin = A0; // Any ADC Pin on ardiuno
                    
int val = 0;  // variable to store the value read

void setup() {
  Serial.begin(9600);           //  setup serial
}

void loop() {
  val = analogRead(analogPin);  // read the input pin
  Serial.println(val);          // send value to serial
  delay(100);   // 100 ms delay is the best, try other number
}
That is one simple scripts, i only use hardware serial directly connecting to USB COM port then the python will do the rest. Xlwings library is a simple tools to write and read directly to any excel 'cell' so then the graph chart on excel can becoming "alive" in real time if the data is changed rapidly. 


import serial #serial library
import xlwings as xw #excel library

wb = xw.Book('Audio.xlsx') #file name, change accordingly
sht = wb.sheets['data'] #sheets name, change it depend on your excel
row = 1

serialPort = serial.Serial(port = "COM4", baudrate=9600,   #baudrate
                           bytesize=8, timeout=2, 
                           stopbits=serial.STOPBITS_ONE)

serialString = ""   

while(1):
    if(serialPort.in_waiting > 0): #read if any serial data is coming
        serialString = serialPort.readline()
        data=serialString.decode('utf-8')     
        print(data) 
        if row == 51: #reset the row
          row=2 
        else: 
          row=row+1
        audio='A'+str(row) #new cell
        sht.range(audio).value= float(data) #write cell

The scripts read the integer value from ADC readout which is sent by arduino, then write it rapidly on cell A2 until A51 in excel file. The graph will be "dancing" according to the sound wave traveling through the condenser microphone.



As microsoft excel is easy to use or to customize then you can create any chart or graph you like and can be use as simple visualization as long as the data speed is not very fast, eg: Heart Beat or ECG.





 I hope you understand and happy Visualizing your favorite music on Excel
Share:

[Tutorial] Komunikasi 2 Arah Dari Arduino Langsung ke Excel



Semakin asyik dan mudah, kini kita dapat menulis grafik menggunakan arduino langsung ke microsoft excel dengan bantuan library python xlwings. Tapi ada kendala kalau menggunakan MQTT maka jalur akan sedikit kepanjangan seperti yang telah dibahas sebelumnya disini. Seorang teman menyebut kalau pada dunia industri masih belum digalakkan penggunaan jalur internet pada  mesin industri  alasannya rawan di jahili para opreker Indonesia yang terkenal jago. Untuk itu kali ini kita akan bahas menggunakan komunikasi langsung serial UART dari arduino ke PC dan selanjutnya menulis ke Excel.




Karena komunikasi serial langsung ke PC maka kita dapat sedikit berkreasi dengan mengirim balik data dari excel ke Arduino. Jadi perintah paling sakti dari library python xlwings yang kita gunakan pada tutorial kali ini adalah :


sheets.range('cellname').value=?? 
 

Jadi dapat dilakukan 2 arah perlakuan yaitu penulisan cell dan pengambilan nilai/isi cell , sehingga selain menulis data dari pembacaan DHT11, kita juga dapat mengambil nilai cell untuk mengatur nyala mati led. Bagaimana scriptnya ? Sangat mudah kok ...


#include "DHT.h" // Library DHT11

#define DHTPIN 5 //PIN DHT
#define DHTTYPE DHT11

#define MERAH 4   //PIN LED
#define HIJAU 14
  
DHT dht(DHTPIN, DHTTYPE); 

unsigned long previousMillis = 0; //Timer
const long interval = 2000; //2 detik


void setup() {
pinMode(MERAH, OUTPUT);
pinMode(HIJAU, OUTPUT);
Serial.begin(9600); //serial ke usb com
dht.begin();

}



void loop() {

  unsigned long currentMillis = millis();
  //cek timer 
  if(currentMillis - previousMillis >= interval) {
  previousMillis = currentMillis;  
  float h = dht.readHumidity();
  float t = dht.readTemperature();
 
  // cek pembacaan dht benar
  if (isnan(h) || isnan(t)) {
    Serial.println(F("Failed to read from DHT sensor!"));
  }
  else{
    
   //lempar langsung ke serial
   Serial.println( String(t) + ","+ String(h) );
    }

  }

}

Kalau hanya mengirim data serial maka akan se-simpel itu, sedangkan pada python cukup ditambahkan library pyserial untuk meng-capture data serial yang dikirim oleh arduino.


import serial
import xlwings as xw

wb = xw.Book('Book1.xlsx')
sht = wb.sheets['data']
row = 1

serialPort = serial.Serial(port = "COM4", baudrate=9600,
                           bytesize=8, timeout=2, 
                           stopbits=serial.STOPBITS_ONE)
                           
serialString = ""       


while(1):
    if(serialPort.in_waiting > 0):
        serialString = serialPort.readline()
        data=serialString.decode('utf-8')     
        print(data)	
        datae=data.split(',')
        if row == 51:
           row=2 
        else: 
          row=row+1
        rowsuhu='A'+str(row)
        rowhumi='B'+str(row)
        sht.range(rowsuhu).value= float(datae[0])
        sht.range(rowhumi).value= float(datae[1])

Jadi kalau anda sudah memahami pembahasan pada tulisan sebelumnya di : http://www.aisi555.com/2020/07/tutorial-menggambar-grafik-data-arduino.html ,maka tidak akan mengalami kesulitan yang berarti.



Bagaimana dengan proses mengirim data balik dari excel ke arduino ? kita reverse aja script tambahannya seperti berikut :


def kirim():
    if(sht.range('J27').value =='ON' and sht.range('N27').value =='ON' ):
       serialPort.write(b'1')
    elif(sht.range('J27').value =='OFF' and sht.range('N27').value =='OFF' ):
      serialPort.write(b'2')    
    elif(sht.range('J27').value =='ON' and sht.range('N27').value =='OFF' ):
      serialPort.write(b'3')       
    elif(sht.range('J27').value =='OFF' and sht.range('N27').value =='ON' ):
      serialPort.write(b'4')   

Function / routine diatas akan dipanggil setiap selesai data DHT11 dibaca dan memiliki 4 buah kondisi yang diwakili oleh string '1' , '2' , '3' dan '4' yang memiliki terjemah sendiri terhadap kondisi LED yang diinginkan berdasarkan isian dari CELL yang dimaksud. Jadi pada script arduinonya akan ditunggu pada loop utama adakah data serial masuk seperti script berikut:


if (Serial.available() >0) { 
  // baca data masuk: 
  byte incomingByte = Serial.read(); 
  //pilihan konsidi led sesuai script python
 if( incomingByte == '1') {
     digitalWrite(MERAH,HIGH);
     digitalWrite(HIJAU,HIGH);
     }
 else if( incomingByte == '2') {
     digitalWrite(MERAH,LOW);
     digitalWrite(HIJAU,LOW);
     }
 
 else if( incomingByte == '3') {
     digitalWrite(MERAH,HIGH);
     digitalWrite(HIJAU,LOW);
     }
  else if( incomingByte == '4') {
     digitalWrite(MERAH,LOW);
     digitalWrite(HIJAU,HIGH);
     }
   } 

Sesingkat itu scriptnya dan selengkapnya dapat dilihat pada video dibawah ini, selamat mencoba ..


 
Share:

[Tutorial] Menggambar Grafik Data Arduino ke Excel



Sangat jarang saya menulis blog setelah youtube nya duluan saya upload, jadi mungkin terbawa perasaan kehilangan teman yang sering bikin vlog, jadi beberapa hari belakangan saya rajin mengunggah video tutorial. Bahasan yg di tampilkan adalah mengenai cara menulis data dan menampilkan grafik dari Arduino ke microsoft excel, walau diluaran sana sudah ada tools langsung jadi tapi kini saya bahas lebih mudah menggunakan bantuan python / xlwings. Jadi dengan tutorial kali ini maka tidak susah-susah lagi menggunakan mysql+php pada windows (xamp) cukup excel aja.




Sensor sejuta umat DHT11 mungkin paling sering dibahas dimana-mana termasuk pada blog ini dimana untuk DHT11 vs MQTT sudah pernah saya bahas di :http://www.aisi555.com/2019/10/iot-lebih-lanjut-dengan-mqtt.html , jadi kali ini saya anggap pembaca sudah paham cara mengirim data MQTT nya. Kita akan lebih ke library python nya yang saya gunakan yaitu XLWINGS.



import xlwings as xw   #library

wb = xw.Book('Book1.xlsx') #nama file excel
sht = wb.sheets['coba']  #nama sheets

sht.range('C1').value= 10
sht.range('C2:C10').value='aku menulis'


for x in range(1,50): 
    a='A'+str(x)
    b='B'+str(x)
    sht.range(a).value= x*3
    sht.range(b).value= x*2

Sangat jelas dan singkat script python diatas jadi tidak perlu dibahas lagi dan jika dijalankan hasilnya akan seperti berikut:


xlwings merupakan library paling bagus menurut saya kalau dilihat dari segi metode penulisannya yang langsung saat excel terbuka, jadi sangat cocok untuk menampilkan grafik realtime dari pengukuran DHT11. Script dari wemos-esp8266-wifi-mqtt yang saya gunakan seperti berikut :

#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#include "DHT.h"

const char *ssid =  "myIOT";  //ubah sesuai wifi anda
const char *pass =  "selaluterhubung";  
//broker gratisan hivemq.com
const char *mqtt_server = "broker.hivemq.com";
const int mqtt_port = 1883;
const char *mqtt_user = "";
const char *mqtt_pass = "";
const char *mqtt_client_name = "ahocool445566"; 
//inisialisasi DHT
#define DHTPIN 5
#define DHTTYPE DHT11
  
DHT dht(DHTPIN, DHTTYPE); 

WiFiClient wclient;
PubSubClient client(wclient);

#define TOPIKDHT "/test/dht11" //topik yang digunakan


//koneksi wifi
void setupwifi()
{
   if (WiFi.status() != WL_CONNECTED) {
    Serial.print("Connecting to Wifi:  ");
    Serial.print(ssid);
    Serial.println("...");
    WiFi.begin(ssid, pass);

    if (WiFi.waitForConnectResult() != WL_CONNECTED)
      return;
    Serial.println("WiFi connected");
    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());
  }
}

void setup() {
Serial.begin(9600); //serial monitoring
setupwifi();
client.setServer(mqtt_server, mqtt_port); // server mqtt
dht.begin();  //mulai dht

}

void kirim(String kata) //publish ke topik
{

    Serial.println("publish to topic: " );
    Serial.print(TOPIKDHT);
    Serial.print(" : ");
    Serial.println(kata);
    char message_buff[kata.length() + 1];
    kata.toCharArray(message_buff, kata.length() + 1);
    client.publish(TOPIKDHT,message_buff);
  
}

void reconnectmqtt() //konek mqtt lagi jika putus
{

      Serial.println("Connecting to MQTT server..");
     
      if (client.connect(mqtt_client_name,mqtt_user, mqtt_pass)) {
        Serial.println("Connected to MQTT server");
      } else {
        Serial.println("Could not connect to MQTT server");   
      }
   
}


void loop() {

  if (!client.connected()) //cek koneksi mqtt
   {
    reconnectmqtt();
   }
 //baca suhu dan kelembaban
  float h = dht.readHumidity();
  float t = dht.readTemperature();
 
  // Cek jika pembacaan sensor benar lalu kirim
  if (isnan(h) || isnan(t)) {
      Serial.println(F("Failed to read from DHT sensor!"));
  }
  else{
    
  //kirim ke serial monitoring
      Serial.print(F("Humidity: "));
      Serial.print(h);
      Serial.print(F("%  Temperature: "));
      Serial.print(t);
      Serial.print(F("°C "));
  //kirim ke mqtt data "suhu,kelembaban"
      kirim( String(t) + ","+ String(h) );
    }

 delay(5000); //delay pengiriman mqtt
}

Sangat sederhana tujuan script diatas berupa pengiriman ke sebuah TOPIK MQTT yaitu : "/test/dht11" berupa data string "suhu , kelembaban" (contoh :  "30.5,70.00") lalu oleh python akan di subscribe dan jika ada data masuk akan ditulis oleh library python XLWINGS seperti script berikut:


import paho.mqtt.client as mqtt #library mqtt
import xlwings as xw #library menulis excel

wb = xw.Book('Book1.xlsx') #nama book/file excel
sht = wb.sheets['data'] #nama sheets
row = 1
########## menulis ke excel #########
def to_excel(data):
    print(data)
    datae = data.split(",") #bikin list delim koma
    global row  #ini reset row kembali ke 2
    if row == 51:
       row=2 
    else:
      row=row+1 #increment row tiap ada data masuk
    rowsuhu='A'+str(row) #kolom suhu
    rowhumi='B'+str(row) #kolom kelembaban
    sht.range(rowsuhu).value= float(datae[0]) #tulis suhu
    sht.range(rowhumi).value= float(datae[1]) #tulis kelembaban
############ call back pesan mqtt masuk ##########
def on_message(client, userdata, message):
    print("message received " ,str(message.payload.decode("utf-8")))
    print("message topic=",message.topic)
    print("message qos=",message.qos)
    print("message retain flag=",message.retain)
    to_excel(str(message.payload.decode("utf-8"))) #tulis ke excel  
########################################
broker_address="broker.hivemq.com" #broker mqtt
broker_port=1883
broker_user=""
broker_pass=""
print("creating new instance")
client = mqtt.Client("P1") #create new instance
client.on_message=on_message #attach function to callback
client.username_pw_set(broker_user,broker_pass)
print("connecting to broker")
client.connect(broker_address,broker_port) #connect to broker
 #start the loop
print("Subscribing to topic","/test/dht")
client.subscribe("/test/dht11")
client.loop_forever()
Jadi jika kita run script pythonnya dan data kemudian akan ditulis ke excel sehingga grafik terupdate.


Ini cocok digunakan untuk sensor yang jarak jauh dan ingin ditampilkan sebagai monitoring langsung dan karena excel  umum digunakan maka pengaturan tampilannya dapat disesuaikan dengan mudah. Jika alat yang dimonitoring letaknya dekat maka cukup menggunakan serial port dan akan dibahas pada tulisan selanjutnya.



Share:

Senin, 29 Juni 2020

[Rest In Peace] Mengenang kawan yang hebat dan "inspiring" Dr. Istas Pratomo ST MT


 .... A person, when dies, his soul leaves the body only, the mortal world and then enters the immortal one .....

Pada suatu minggu pagi  di awal juni 2020 saya diminta oleh kawan saya yg hebat, dengan kualitas pertemanan dari level duta besar - Menteri - Gubernur hingga rakyat jelata seperti saya seorang tukang solder, untuk mengisi podcast yang sedang dia gandrungi. Entah kenapa tukang solder ini diminta untuk menjadi narasumber mengingat sebelumnya kaliber yang diwawancarai  membuat tukang solder ini minder. Ya beliau adalah Dr. Istas Pratomo ST MT pengajar handal di bidang telekomunikasi dari Elektro ITS dan juga merangkap Dekan Fakultas Teknik UNUSA surabaya. Kita berbicara membahas algoritma medsos dan efeknya pada kehidupan.

Tak menyangka di akhir bulan yang sama dan sedang dihebohkan dengan meningkatnya kasus  covid 19, dengan posisi duduk saya yg sama (saat beliau mengundang saya) setelah rutinitas nyapu halaman, tercenganglah saya mendengar berita dari group WA bahwa beliau telah dipanggil yg maha kuasa. Tak kuasa menahan keheranan sampai kopi dihadapan saya dingin karena tatapan mata saya, ter-ngiang bagaimana keceriaan beberapa minggu yg lalu saat meminta menjadi narasumber. Ahhh saya terlalu baper dan menghubungi teman-teman sejawat untuk memastikan berita dan benar beliau sakit dan telah tiada. Sangat sedih dan saya akan membagi pengalaman saya untuk mengenang jiwa beliau. Mungkin beberapa rekan dari "Orang Baik" ini  juga menulis pengalaman yg lebih hebat, tapi ini versi saya untuk mengenang kawan yang bagi saya sangat Inspiring ! 


Kami diikat oleh persaudaraan angkatan 98 yang disebut e-38 atau Elektro ITS angkatan ke-38, dimana pada masa reformasi itu banyak di warnai dengan demo mahasiswa dan sedikit ketidakpastian. Tapi saya dan mungkin teman saya seangkatan tidak merasakan sama sekali kesulitan diluar sana, maklum masih bau kencur dan kebanyakan perantauan yang diutus ortu hanya untuk menuntut ilmu. Jadi kami santai saja walau ajakan berdemo sering muncul dari kakak kelas, apalagi ketika kakak di Fakultas Teknik ITS sempat berorasi : " Kalian Bayi - Bayi FTI ..ayo lekaslah besar agar bisa meneruskan estafet kami yg akan segera lulus ini  !" .....Salah satu teman berkelakar sambil berbisik : "...tas..istas..awakmu ta sing sing jenenge bayi FTI ? " Sejak itulah kami sering berkelakar kepada rekan kami yang bertubuh mungil dan bulat ini sebagai BAYI FTI. 


Ingatan penulis saat kuliah dulu tidak terlalu sering mengerjakan tugas kuliah bersama beliau karena mungkin beda "genk", beliau  sering kumpul dirumah salah satu teman untuk membahas tugas, mereka umumnya arek suroboyo alumni SMA 5, namun saya tetap akrab karena kadang ketemu di acara kampus seperti saat menjadi panitia reuni home coming elektro ITS di foto diatas. Jangan kaget kalau penulis sempat berambut gondrong dan dengan jailnya teman kami ini menarik rambut saya saat berfoto bersama.


Tukang solder ini sangat idealis tetap pada jalurnya masuk elektro karena ingin melanjutkan kecintaannya pada dunia solder menyolder, beliau masuk bidang telekomunikasi bersama genk yang sama, sangat solidnya mereka dan benar saja sekarang rata-rata mempunyai karir yang moncer. Pernah suatu hari beliau datang ke LAB B202 tempat penulis sering nongkrong dan dengan gayanya membuka tutup flip HP MOTOROLA , penulis bertanya : " wihhh sugihe rek..isok duwe hp" . Penulis memang bermimpi memiliki HP seperti teman lainnya, apa daya uang kiriman cukupnya buat beli tempe penyet dan sesekali nasi goreng + telor ceplok (seminggu sekali). Berbeda 180 derajat dengan penulis,  beliau ini mandiri sejak kuliah seingat saya dan dia menjawab nyinyiran saya : " yo kerjo rek...nge-lesi arek2 SMA - SMP , utowo awakmu kan pinter nyolder, golek'o monitor bekas2 nang loak trus dipermak isok didol dadi duwik !" kalau diterjemahkan " ya kerja dong, bikin les anak smp-sma atau kamu kan pinter nyolder cari aja monitor bekas di loak trus di perbaiki lalu dijual dan jadi uang ! " Ternyata kata seorang teman pernah menyebut, kalau beliau menjadi makelar komputer bekas yang di refurbish dan dijual ulang. 

Naifnya tukang solder ini langsung ingin mengikuti jejak beliau menjadi guru LES, kebetulan ada kakak kelas guru les  ( mahasiswa juga dari Singaraja ) yang penuh jadwalnya dan yang di beri les ternyata adik sepupu teman sekolah dari SMP s/d SMA. Karena sepertinya gayung bersambut deal di harga 17.500 per jam, dengan seminggu 4 jam, jadi sebulan 280rb dikantong lumayan buat nambah jajan dan harapannya jam ditambah bisa deh buat beli HP. Untung tak boleh diraih, sang anak SMP tidak naik kelas, yah karena memang niat belajarnya kurang, dalam waktu 2 bulan saya di pesangoni 500rb dan di minta jangan datang lagi. Sepupunya si anak didik yang teman lama saya langsung cemberut dan sampe sekarang tidak pernah kontak saya lagi. Hehehehe mungkin takdirnya saya disuruh ortu hanya untuk belajar gak boleh cari uang dulu.

Beliau terkenal lucu dan energic..tapi cerdas tentunya


Setelah 4 tahun menempuh kuliah, beliau lulus cepat bersama  kuartet arek pintar yang juga teman akrab beliau, penulis harus menambah masa bertapa di LAB elektronika karena sesuai rencana harus belajar microcontroller dulu baru sah lulusnya. Beliau menjadi asisten dosen termuda di lab telekomunikasi bersama pak Dr Afandi dan kemudian menjadi dosen tunggu. Suatu malam saat kuliah malam mau buyar , dilorong LAB saya bertemu beliau dan ber-keluh kesah kalau gaji nya jadi dosen tunggu sangat kecil dan seingat saya ada beberapa rekan kakak kelas yg ikut nimbrung menyarankan kalau ingin cepat jadi dosen tetap, segeralah S2 dan dengan ajaibnya saat saya lulus kuliah beliau mengabari kalau akan berangkat ke ITB Bandung untuk kuliah S2. Luar biasa kegigihannya..

Setelah itu kami berpisah ke dunia kerja masing-masing, hanya terdengar kabar kalau beliau ikut juga pada proyek telco bersama dosen-dosen telekomunikasi ITS, saya kebetulan juga melenceng pekerjaan dari tukang solder ke dunia CDMA kala itu. Jadi ketika bertemu sub-kontraktor tukang panjat tower maka nama beliau sering dibicarakan. Fast forward ke masa saat medsos facebook mendekatkan kami lagi walau dia jauh di Perancis mengambil Doctoral, kadang masih juga saling stalking sampe dia tahu kalau saya balik nyolder lagi. Hasilnya tahun 2012 saat beliau balik ke tanah air sempat menawari beberapa project sensor dan yang paling ingat adalah kegusarannya karena anaknya yg sejak kecil di prancis gak mau nonton upin ipin. Dimintalah saran ke saya harus pasang parabola apa untuk menonton TV perancis. Youtubenya kenapa kan ada?  Dia bilang gak mau, yang biasa ditonton di  ch 1,2,3 prancis dan sayangnya parabola yg sampe di Indonesia hanya menampilkan sedikit saluran prancis dan kebanyakan saluran berita. Ujungnya saya sarankan memakai STB Android dan menginstall aplikasi streaming , hasilnya sukses !



Saat kembali ke Indonesia nama beliau semakin sering terdengar di media apalagi ketika menjadi dekan Fakultas Teknik di Universitas NU Surabaya (UNUSA), pada tahun 2017 sempat diajak menjadi peserta workshop FGD  kompetensi, dan tahun 2019 diminta membantu mobile data UNUSA untuk merancang hardware pengambil data kualitas udara secara IOT. Senang sekali penulis mendapatkan kepercayaan ini karena mengembalikan "ROH" solder ke tangan saya dan percaya diri bahwa dunia saya adalah solder-microcontroller-IOT.




Kesibukan beliau yang luar biasa menyebabkan proyek ini sedikit terbengkalai, apalagi sekitar desember 2019 beliau dikirim menjadi dosen tamu di Guilin China. Mungkin ini menjadi jalan-jalan paling heboh sebelum covid menyerang daratan china dan benar saja tahun 2020 beliau kembali ke Indonesia dan menghadapi situasi pandemi memaksa semua kuliah dari rumah. Semua yg beliau pelopori sejak dulu yaitu ONLINE CLASS - VIDEO LEARNING - ZOOM dan kelakarnya tahun 2018 saat kami reuni di kampus tercinta " Dunia pendidikan sekarang sudah berbeda dari jaman kita, sekarang cukup bikin video, upload youtube, konsultasi lewat whatsapp dan diskusi via skype. Gak ada lagi mahasiswa yg tidur di LAB demi internet gratis ". Beliau adalah pelopor penggunaan zoom untuk pendidikan dimana sejak awal 2019 sudah beliau gunakan mengajar di lab Telekomunikasi Elektro ITS terutama saat kesibukan beliau keliling negeri maupun luar negeri. 



Nyambung ke alat mobile data yang sempat tertunda,  beliau kontak lagi kesaya sekitar mei 2020 dan menyerahkan sepenuhnya ke saya untuk menyelesaikan alatnya dan sesuai gambar diatas saya telah berhasil menyelesaikan dan melakukan test keliling surabaya sesuai map diatas yang lengkapnya bisa dilihat (klik disini). 




Ternyata legacy dan amal jariyah berupa ilmu dan "video" yang beberapa waktu terakhir makin sering beliau upload di berbagai macam platform medsos menjadi pertanda halus kalau beliau akan pergi untuk selamanya. Kadang kita tertawa oleh tingkah laku beliau di app "smule" yang terlihat begitu riang gembira sampai di grup WA angkatan kami sering meminta beliau untuk nyanyi atau request lagu tertentu. Pertemuan terakhir bersama angkatan merupakan inisiasi beliau saat lebaran melalui zoom dan kami merasa dipersatukan oleh beliau. 


Akhirnya ...kamipun berdoa melepas kawan saudara sejawat kami melalui aplikasi yang beliau pelopori penggunaanya. Semua yang berbicara pada acara tahlilan online via zoom merasa kehilangan, mulai dari mantan rektor dan menteri era SBY prof M Nuh hingga rekan akademisi ITS utamanya elektro ITS merasakan kesedihan ditinggalkan putra terbaiknya. Bapak Dedet yg mewakili elektro mengenang sosok beliau sebagai salah satu diantara mereka yang "Larinya Sangat Cepat ".  Saya pun  sangat kehilangan teman yang luar biasa baiknya tidak membedakan pertemanan dengan kalangan atas maupun bawah, dengan keluwesannya dan persistensi kegigihannya mencapai tujuan yang diinginkan. Semangat nya menginspirasi bahwa tiada yang tidak mungkin kalau kita terus berusaha , membekas di hati saya dan menjadi pecut buat lebih maju kedepan.



Dr. Istas Pratomo, ST., MT.
Lahir tgl. 25/03/1979
Wafat tgl. 28/06/2020
Pendidikan :
S1 ITS (elits 38)
 S2 ITB
S3 Univ. Rennes 1, France
Pekerjaan:
Dosen ITS sejak 2002 di Dep Teknik Elektro, Bid studi Telekomunikasi Multimedia
Sejak 2015 Ketua LPPM UNUSA & Sejak 2017 Dekan Fak Teknik UNUSA



Selamat Jalan Kawan...
suatu hari kita akan PODCAST lagi 
di sana...di keabadian...
Share:

Kamis, 25 Juni 2020

[Solved] Bug Fatal Pada Mqtt Subscription - Library AntaresESP8266Mqtt - Part 2



[versi youtube dapat dilihat disini]

Kegatalan akibat "kutu" pada library AntaresEsp8266Mqtt berlanjut padahal telah diobati makan siang yang lumayan maknyus di sebual mall surabaya ( sekalian survey apa cafe sudah buka setelah psbb). Selama makan siang, saya beberapa kali ditegur tidak fokus sama kawan, ya iyalah karena pada tulisan sebelumnya http://www.aisi555.com/2020/06/solution-bug-pada-library-antares-mqtt.html , saya hanya berhasil melakukan proses PUB atau kirim dari esp8266 menuju server serta dibaca oleh client pc MQTT.FX. Kenapa tidak lanjut ke proses SUB atau menerima data ? Sebelumnya untuk mendapatkan konsep MQTT dan rangkaian yg saya gunakan sebaiknya lihat video youtube saya di https://www.youtube.com/watch?v=2o9JRb1FGEc .




Konsep yang berbeda ternyata ditemui pada proses PUBSUB apabila terbiasa menggunakan broker berbasis Mosquitto. Dari manual pada website antares.id dinyatakan bahwa proses Menyimpan dan Mengambil data baik secara http maupun mqtt berpola sama seperti ini :

PUSH/PUB  : /oneM2M/req/your-access-key/antares-cse/choose-a-serialization-format 
GET/SUB   : /oneM2M/resp/antares-cse/your-access-key/choose-a-serialization-format 

Dari keduanya ditemukan "oneM2M" yg merupakan standar IOT platform yg digunakan oleh antares, jadi data akan dikirim dan diolah menggunakan REST API dengan serialization berformat XML ata JSON. Pada library antares yg kita bahas kali ini yg karena library oprekan dari pubsubclient maka digunakan format JSON yang saya sangat sukai. Jadi dalam library ini dicopas juga berbagai file library ArduinoJSON untuk melakukan parsing data seperti contoh payload MQTT berikut:

{
   "m2m:rsp" : {
      "rsc" : 2001,
      "rqi" : "123456",
      "pc" : {
         "m2m:cin" : {
            "rn" : "cin_702783788",
            "ty" : 4,
            "ri" : "/antares-cse/cin-702783788",
            "pi" : "/antares-cse/cnt-682859183",
            "ct" : "20200625T172017",
            "lt" : "20200625T172017",
            "st" : 0,
            "cnf" : "message",
            "cs" : 24,
            "con" : "{\"ledstatus\":\"hijau on\"}"
         }
      },
      "to" : "Accesskey:Password",
      "fr" : "/antares-cse"
   }
}


Nah, kini sudah jelas data yg di kirim-terima pada antares berformat json dan kita akan melakukan parsing untuk mendapatkan nilai pada bagian "con", dan saya oprek dulu tambahan  script untuk SUB sebuah topik yg akan menunggu perintah menyalakan atau mematikan LED. Gunakan saja script contoh subscribe yang ada pada LIBRARY ...dan ternyata hasilnya tidak bisa membaca respon SUB apapun ...kesalahan fatalnya ada dibagian ini  antares.checkMqttConnection(); dan kita check dulu


void AntaresESP8266MQTT::checkMqttConnection() {
    

_subscriptionTopic = "/oneM2M/req/" + _accessKey + "/antares-cse/json";

    if(!client.connected()) {
        while(!client.connected()) {
            printDebug("[ANTARES] Attempting MQTT connection...\n");

            String clientId = "ESP8266-" + _accessKey;

            char clientIdChar[clientId.length() + 1];
            clientId.toCharArray(clientIdChar, clientId.length() + 1);

            if(client.connect(clientIdChar)) {
                printDebug("[ANTARES] Connected! Client ID:");
                printDebug(clientIdChar);
                printDebug("\n");
                char subscriptionTopicChar[_subscriptionTopic.length() + 1];
                _subscriptionTopic.toCharArray(subscriptionTopicChar, _subscriptionTopic.length() + 1);

                Serial.println();
                Serial.print("[ANTARES] Topic: ");
                Serial.println(subscriptionTopicChar);

                client.publish(subscriptionTopicChar, "connect!");
                client.subscribe(subscriptionTopicChar);
            }
            else {
                printDebug("[ANTARES] Failed, rc=" + String(client.state()) + ", Will try again in 5 secs.\n");
                delay(5000);
            }
        }
    }
    client.loop();
}

Yang berwarna merah pada library antaresEsp8266mqtt.cpp merupakan KESALAHAN FATAL karena seharusnya pada proses SUBSCRIBE scriptnya seperti ini :

   _subscriptionTopic = "/oneM2M/resp/antares-cse/" + _accessKey + "/json";

Setelah dicoba..ehhh ternyata salah juga..pesan diterima tapi payloadnya kosong ..


Usut-punya usut setelah melakukan debug satu persatu kesalahn FATAL mengikuti kesalahan sebelumnya yaitu parsing JSON "rqp" vs "rsp", sehingga harus diubah pada bagian ini :

String AntaresESP8266MQTT::get(char* topic, byte* payload, unsigned int length) {
    _receivedTopic = String(topic);

    String payloadString;
    for(int i = 0; i < length; i++) {
        payloadString += char(payload[i]);
    }

    DynamicJsonBuffer jsonBuffer;
    JsonObject& object = jsonBuffer.parseObject(payloadString);
    //ASLINYA SALAH
    //String parsedString = object["m2m:rqp"]["pc"]["m2m:cin"]["con"];
    //BENAR NYA SEPERTI INI
    String parsedString = object["m2m:rsp"]["pc"]["m2m:cin"]["con"];
    
    
    _jsonSubDataString = parsedString;
    
    return _jsonSubDataString;
}


Dan ketika saya publish payload json dengan message con: "{\"hijau\":\"on\"} " dari MQTT.FX , saya sukses menyalakan LED pada Wemos D1 saya .




Karena penulis lagi bergembira dapat sukses mengoprek ANTARES yang terlihat cacat, maka saya share script lengkap untuk mengirim PUB tombol dan SUB led pada Wemos D1



#include <AntaresESP8266MQTT.h>

//gunakan acces key antares kamu
#define ACCESSKEY "access:key"

#define WIFISSID "myIOT" //wifi ssid
#define PASSWORD "selaluterhubung" //wifi pass

//Nama project dan device antares
#define projectName "AHOCOOL_IOT"
#define deviceName "test_pubsub"

AntaresESP8266MQTT antares(ACCESSKEY);

int counter=0;


void setup() {
  pinMode(16, INPUT); //Tombol pada port GPIO 16
  pinMode(4, OUTPUT); //LED pada port GPIO 4
  Serial.begin(9600);//Serial monitor
  //koneksi antares
  antares.setDebug(true);
  antares.wifiConnection(WIFISSID, PASSWORD);
  antares.setMqttServer();
  //set function callback yg akan mendeteksi pesan masuk
  antares.setCallback(callback);
}

void loop() {
  
  // ngecek koneksi
  antares.checkMqttConnection();
  
  //tombol ditekan = 0, pin GPIO pullup
  if( digitalRead(16) == 0 ){
  //tambah counter
  counter++;
  //kirim mqtt ke antares
  antares.add("counter", counter);
  antares.publish(projectName, deviceName);
  delay(300);
  }
}

void callback(char* topic, byte* payload, unsigned int length) {
  /*
   Function ini di panggil saat ada pesan masuk
   pada topic : "/oneM2M/resp/antares-cse/" + _accessKey + "/json" 
*/
antares.get(topic, payload, length); Serial.println("New Message!"); // Print topic and payload Serial.println("Topic: " + antares.getTopic()); Serial.println("Payload: " + antares.getPayload()); // Print individual data Serial.println("Lednya: " + antares.getString("ledstatus")); //nyala dan matikan LED if( antares.getString("ledstatus") == "hijau on" ) digitalWrite(4,HIGH); if( antares.getString("ledstatus") == "hijau off" ) digitalWrite(4,LOW); }
Untuk mengirim pada MQTT.FX maka ikuti aturan berikut :

TOPIK PUB :  /oneM2M/req/ACCESS:KEY/antares-cse/json
 
dengan format payload :

{"m2m:rqp": {"fr": "ACCESS:KEY","to": "/antares-cse/antares-id/AHOCOOL_IOT/test_pubsub","op": 1,"rqi": 123456,"pc": {"m2m:cin": {"cnf": "message","con": "{\"ledstatus\":\"hijau off\"}"}},"ty": 4}}

Sedangkan untuk menerima data pada MQTT.FX seperti berikut:

TOPIK SUB :  /oneM2M/resp/antares-cse/ACCESS:KEY/json


Bagaimana sudah puyeng kah ? yang penting ..

[CASE CLOSED and SOLVED]
Share:

[Solved] BUG pada Library antares Mqtt ESP8266 - part1



[youtube version dapat klik disini]

Antares merupakan sebuah entitas IOT yang dikembangkan oleh PT TELKOM INDONESIA untuk menjawab tantangan teknologi terbaru jaman now. Penulis yang pernah 10 tahun berhubungan dengan perusahaan BUMN ini  sangat memahami bahwa telkom merupakan pelopor banyak teknologi mutahir di negeri ini. Jadi setiap ada tren baru diluar sana maka telkom dan groupnya dengan RnD yang kelas wahid akan segera mempelajari dan selanjutnya  mendeploy layanannya. Dari laman web antares.id, perkenalan dari antares seperti yg saya baca :

ANTARES merupakan sebuah Horizontal IoT Platform, yang berarti kami mencoba untuk menjadikan layanan kami se-umum mungkin agar solusi vertikal IoT anda dapat menyesuaikan dengan arsitektur yang umumnya digunakan. Banyak kasus-kasus IoT yang dapat dipecahkan dengan menggunakan layanan kami, contohnya adalah smart home, smart metering, asset tracking, smart building, dan lain-lain.

Kebutuhan akan platform IOT dalam negeri memang sangat saya dukung agar kita tidak hanya menjadi pengguna tapi juga bisa menjadi penyedianya. Lawan berat dari luar sana seperti AWS, Google IOT, ThingSpeak dll. dan  memang akan membuat ciut nyali dengan nama besar itu apalagi  melihat prospek meng "uang" kan belum secepat jualan fiber optik ke pelanggan indihome. 


Perkenalan penulis dengan antares terjadi sekitar tahun 2019, saat penulis kembali menekuni dunia 8 bit. Dari saran beberapa teman menujulah ke platform iot lokal ini dan terkejutnya karena terlalu banyak sisi IT nya dan menyoldernya hampir sedikit sekali, dan otak serta otot solderan saya berontak ketika melihat perintah pengiriman data melalui REST API seperti dibawah ini:




Bingung dan terkesan sulit dan saya beralih ke MQTT berbasis Mosquitto yang sangat mudah bagi tukang solder ini. Saya tinggalkan menggunakan antares sampai ada request dari seorang pembaca blog dan kebetulan saya sudah sedikit paham mengenai mqtt dengan esp8266. Apalagi pada sketch arduino, library ANTARES sudah terpampang dengan gagahnya di library manager.


Kita akan mencoba mencontoh example pada libraries ini dengan sedikit modifikasi mengirimkan counter penekanan tombol, scriptnya sederhana saja , saya gunakan wemos d1 r1:



#include <AntaresESP8266MQTT.h>

//gunakan acces key antares kamu
#define ACCESSKEY "access:key"

#define WIFISSID "myIOT" //wifi ssid
#define PASSWORD "selaluterhubung" //wifi pass

//Nama project dan device antares
#define projectName "AHOCOOL_IOT"
#define deviceName "test_pubsub"

AntaresESP8266MQTT antares(ACCESSKEY);

int counter=0;


void setup() {
  pinMode(16, INPUT); //Tombol pada wemos
  Serial.begin(9600);//Serial monitor
  //koneksi antares
  antares.setDebug(true);
  antares.wifiConnection(WIFISSID, PASSWORD);
  antares.setMqttServer();
}

void loop() {
  
  // ngecek koneksi
  antares.checkMqttConnection();
  
  //tombol ditekan = 0, pin pullup
  if( digitalRead(16) == 0 ){
  //tambah counter
  counter++;
  //kirim mqtt ke antares
  antares.add("counter", counter);
  antares.publish(projectName, deviceName);
  delay(300);
  }
}



Dan hasil yg saya dapatkan sedikit mengecewakan..


Seperti kembali ketahun lalu dan saya kembali membaca manual pada website antares dan de-ja-vu dengan bahasa Inggris yg di paksakan menjadi Bahasa Indonesia. Jadi maaf sepertinya developer antares hanya berusaha menterjemahkan manual ke bahasa Indonesia tapi bukan berusaha menjelaskan secara teknisnya. Ayo kita perhatikan debug diatas, saya menemukan bahwa yg belum konek WIFI NYA ! ESP saya rusak? Oooo tidak ketika saya mencoba script mqtt lain lancar saja, berarti ada salah di library antaresesp8266mqtt, dan saya coba buka script library AntaresESP8266MQTT.cpp


bool AntaresESP8266MQTT::wifiConnection(String SSID, String wifiPassword) {
    char ssidChar[sizeof(SSID)];
    char wifiPasswordChar[sizeof(wifiPassword)];

    SSID.toCharArray(ssidChar, sizeof(SSID));
    wifiPassword.toCharArray(wifiPasswordChar, sizeof(wifiPassword) );

    int count = 0;
    _wifiSSID = ssidChar;
    _wifiPass = wifiPasswordChar;
   
    WiFi.begin(_wifiSSID, _wifiPass);
    

   
    printDebug("[ANTARES] Trying to connect to " + SSID + "...\n"); 
    //saya tambahkan debug wifi name dan password disini
    printDebug("ssid dan password setelah di char array:  "); 
    printDebug(String(_wifiSSID) +" : " + String(_wifiPass));
    
 for (count=0;count<20;count++)
    {
      delay(500);
      printDebug(".");
    }

    if(WiFi.status() != WL_CONNECTED) {
        printDebug("[ANTARES] Could not connect to " + SSID + ".\n");
        return false;
    }
    else {
        WiFi.setAutoReconnect(true);
        printDebug("\n[ANTARES] WiFi Connected!\n");
        printDebug("[ANTARES] IP Address: " + ipToString(WiFi.localIP()) + "\n");
        return true;
    }
}
Dan benar saja librarynya hanya merupakan penyesuaian dari library yang sudah banyak beredar yaitu pub sub client milik knoleary, tapi tidak mengapa namanya juga library OPEN SOURCE sah sah aja bikin, tapi dari hasil penambahan debug saya dapatkan kenyataan wifi saya tidak konek sesuai gambar berikut:



Ternyata ohh ternyata..terjadi lagi permasalahan classic pada C++ yaitu passing string ke function, dimana banyak yg mengeluh sampe ada yg pindah coding ke micropython. Password saya terpotong hampir 4 char array...jadi solusinya gampang saja..kita tambahkan panjang arraynya + 5.



Dan console Antares saya di website antares.id pun pertama kalinya merasakan data masuk...wkwkwkwkw


Yeahhhh...berhasil ...dan yg bikin saya geleng-geleng ada output pada layar sub MQTT.FX yang biasa saya gunakan untuk mencoba pub sub, awalnya saya sebelum menggunakan esp8266 saya gunakan mqtt.fx, lalu frustasi gak ada data masuk. Ehhhh nongol dia...


Ternyata memang data yg dikirim masih berupa JSON REST API ..ckkcckkkckkk , jadi cicak deh saya

Baiklah..demikian penelusuran BUG PADA ANTARES MQTT , semoga pihak antares bisa memperbaiki librarynya..

PS: BUG yang lebih gatel ternyata muncul juga..silahkan baca lanjutannya di :
Share:

Kontak Penulis



12179018.png (60×60)
+628155737755

HP: 081331339072
Mail : ahocool@gmail.com

Site View

Categories

555 (6) 7 segmen (3) adc (4) amplifier (2) analog (10) android (11) antares (2) arduino (12) attiny (1) attiny2313 (17) blog (1) bluetooth (1) cmos (2) crypto (2) dasar (35) display (3) esp8266 (2) gcc (1) iklan (1) infrared (2) Input Output (3) iot (11) jam (6) jualan (12) kereta api (1) keyboard (1) keypad (3) kios pulsa (2) kit (6) komponen (12) komputer (3) komunikasi (1) kontrol (2) lain-lain (8) lcd (2) led (9) led matrix (6) line tracer (1) lm35 (1) memory (1) metal detector (4) microcontroller (50) mikrokontroller (2) mikrotik (5) ninmedia (1) ntp (1) paket belajar (19) palang pintu otomatis (1) parabola (29) pcb (2) praktek (1) project (33) proyek (1) python (1) radio (3) raspberry pi (3) remote (1) revisi (1) rfid (1) robot (1) rpm (2) rs232 (1) script break down (3) sdcard (3) sensor (1) sharing (3) signage (1) sms (6) software (18) tachometer (2) telepon (7) televisi (57) television (1) transistor (1) troubleshoot (3) tulisan (54) tutorial (76) tvri (1) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (2)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika