Semua Tentang Belajar Teknologi Digital Dalam Kehidupan Sehari - Hari

Sabtu, 18 Juli 2020

[IOT Itu Gampang] NBIOT - Alat Pengukur Kematangan Kultur Alga - Flashback ke Jaman Kuliah



Pada tahun 2002 penulis mendapatkan tantangan dari dosen ketua bidang studi elektronika almarhum ir soetikno yang sangat legendaris di elektro ITS, saat itu kami di lab elka sedang mengalami kejenuhan tugas akhir yang temanya cenderung mirip - mirip. Tantangan ini berupa pilihan untuk mengerjakan skripsi mengenai "Teknologi Baru" atau "Teknologi Terapan Masyarakat". Penulis yang otak nya lumayan "cekak" membuang jauh - jauh tantangan teknologi baru dimana kawan kami yang paling pintar mendapatkan tugas akhir teknologi baru FPAA (field programmable analog array) yang fresh from the oven dari amerika dan  terbatas sekali penelitian awalnya. Tapi karena topik judul skripsi paling mudah yaitu pengenalan awal sudah diambil, maka tantangan ke mahasiswa lainnya adalah membuat aplikasi dari modul FPAA yang datang langsung dari amerika, dimana syaratnya kalau sampai merusakkan alatnya maka harus menggatinya. Otak cekak , uang juga apalagi jadi larilah penulis ke topik pilihan lainnya yaitu teknologi terapan masyarakat.


Seketika penulis teringat akan sebuah balai penelitian perikanan di bukit gondol bali yg pernah dikunjungi pada masa SMA,  membuka beberapa foto album lama saat kunjungan kesana, dan berujung pada keputusan untuk menjajaki kerja praktek pada balai perikanan yang pilihannya ada di Sidoarjo, Sukabumi dan Buleleng Bali. Ternyata balai di sidoarjo yg cukup dekat sedang penuh karena memang ada kampus perikanan berdempet dengan balai. Sukabumi kejauhan walau ingin banget mencoba pengalaman hidup di kota lain. Akhirnya pilihan akhir kembali ke kota kelahiran singaraja bali dan melakukan penjajakan kerja praktek di balai perikanan disana dan sedikit kecewa karena hampir ditolak dengan alasan tidak ada topik untuk anak elektronika disana. Berita baiknya ada fasilitas baru kerjasama uni eropa yang super canggih dibangun di ujung tanjung bukit gondol dan saya berhasil menego pihak balai untuk bisa kerja praktek pada fasilitas tropical marine fish farming, dengan syarat saya harus tetap mengikuti kerja praktek standar siswa perikanan selama sebulan dan tidak berhak untuk mengutak-atik alat-alat kontrol yang fresh baru dibuka plastiknya.


Kulit menggelap karena tiap hari berjemur memberi pakan ke tambak dan tempat pembesaran ikan pelari kencang macam ikan kuwe dan red snapper, mengecek perkembangan pembesaran kerapu, memijah ikan dan mengambil gonad/telur ikan, mengecek jenis kelamin ikan, mengumpulkan telur bandeng di malam hari, menghitung banyaknya plankton pada mikroskop dan banyak hal diluar elektronika yang saya kerjakan, padahal didepan mata ada mesin kontrol PLC buatan jerman yang sedang dikonfigurasi oleh seorang bule finlandia  dan karena bahasa inggris saya lumayan bagus jadi mengalami momen "jaka sembung bawa golok". Si bule kurus tinggi ini hanya berbahasa jerman - perancis dan Finish ..lhaa kok finish ? Lomba lari dong ? hehhe benar baru pertama kali melihat bule skandinavia bahasa inggrisnya kacau dan susah di mengerti. Jadilah bahasa tarzan lebih dominan kita gunakan dalam komunikasi sehari-hari.

- Prinsip Dasar


Diujung sebulan menjadi calon petambak handal, saya kembali ke wujud asli sebagai tukang solder dan dengan sekejap mata mendapatkan judul laporan skripsi yaitu alat pembaca tingkat kematangan kultur alga / pithoplankton berbasis mikrokontroler mcs 51 dengan prinsip sensor cahaya terhalang. Kultur alga pada polibag bening ini akan berubah tingkat kegelapannya karena mahluk hidup berfungsi sebagai makanan ikan kecil ini adalah tumbuhan yang berfotosintesis. 


Back to the future pada tahun 2020 saya merangkai alat ini kembali dengan menambahkan prinsip IOT yang nantinya akan mengirim pembacaan sensor ke smartphone. Bisa dilihat pada video dibawah ini dimana merupakan kelanjutan pada praktek membaca ADC ke microsoft excel. Awalnya saya akan mengirim data pembacaan langsung ke PC menggunakan komunikasi serial saja persis dengan pembahasan membikin grafik excel lewat arduino disini. 

 




- Menghubungkan Dengan NBIOT - ANTARES




Beberapa tulisan saya sebelumnya sudah cukup lengkap membahas pengiriman data melalui NBIOT modul SIM7000 ke MQTT dan chart seperti yang dibahas disini. Jadi silahkan menuju pembahasan cara pengiriman data melalui NBIOT dan jangan kecewa kalau dilokasi kalian hanya terdapat sinyal GPRS saja yang bisa dikoneksikan. Sedangkan untuk platform antares saya sampai ke tahapan penggunaan NBIOT dengan ESP8266. Jadi jika menggunakan Antares dan SIM7000 maka yang diwaspadai adalah kemampuan pengolahan data json yang lumayan panjang dan untungnya karena proses sensor kita ini satu arah saja maka menjadi lebih mudah.

Saya akan membagi skripnya dari percobaan saya dan selanjutnya anda bisa melihat pebahasannya pada videonya.



#include <SoftwareSerial.h> //koneksi ke modem

#define TINY_GSM_MODEM_SIM7000
#define TINY_GSM_DEBUG SerialMon
#define BAUD 9600
#define SerialMon Serial

SoftwareSerial SerialAT(2, 3); // RX, TX ke modem

const char apn[]  = "NB1INTERNET"; //untuk gprs gunakan "internet"
const char user[] = "";
const char pass[] = "";
byte randomValue = random(0, 37);
const char *mqtt_server = "mqtt.antares.id"; //server antares
const char *mqtt_user = "";
const char *mqtt_pass = "";
const int mqtt_port = 1883;
const char *mqtt_client_name = "ahocool" + randomValue; // random

//dibawah ini sesuaikan dengan akun atares kamu
#define TOPIKPUB "/oneM2M/req/access:key/antares-cse/json"
#define accessKey "access:key"
#define projDev "Device/project"

// library modem dan mqtt 
#include <TinyGsmClient.h>
#include <PubSubClient.h>

#ifdef DUMP_AT_COMMANDS
  #include <StreamDebugger.h>
  StreamDebugger debugger(SerialAT, SerialMon);
  TinyGsm modem(debugger);
#else

TinyGsm modem(SerialAT);
#endif
TinyGsmClient client(modem);
PubSubClient mqtt(client);

long lastReconnectAttempt = 0;
int val;


void setup()
{
  // Set debug console dan modem
  SerialMon.begin(9600);
  delay(10);
  SerialAT.begin(9600);
  delay(3000);

  String modemInfo = modem.getModemInfo();
  SerialMon.print("Modem: ");
  SerialMon.println(modemInfo);

  SerialMon.print("Waiting for network...");
  if (!modem.waitForNetwork(240000L)) {
    SerialMon.println(" fail");
    delay(10000);
    return;
  }
  SerialMon.println(" OK");

  if (modem.isNetworkConnected()) {
    SerialMon.println("Network connected");
  }

  SerialMon.print(F("Connecting to "));
  SerialMon.print(apn);
    if (!modem.gprsConnect(apn, user, pass)) {
    SerialMon.println(" fail");
      delay(10000);
      return;
  }
  
    SerialMon.println(" OK");


   // MQTT Broker setup
  mqtt.setBufferSize(512);
  mqtt.setServer(mqtt_server, mqtt_port);
}


boolean mqttConnect() {
  SerialMon.print("Connecting to ");
  SerialMon.print(mqtt_server);

  // koneksi ke MQTT Broker
  boolean status = mqtt.connect(mqtt_client_name,mqtt_user, mqtt_pass);

  if (status == false) {
    SerialMon.println(" fail");
    return false;
  }
  SerialMon.println(" OK");

  return mqtt.connected();
}


void loop()
{

  //cek jika koneksi mqtt gagal maka ulang lagi
   if (!mqtt.connected()) {
    SerialMon.println("=== MQTT NOT CONNECTED ===");
    // Reconnect every 10 seconds
    unsigned long t = millis();
    if (t - lastReconnectAttempt > 10000L) {
      lastReconnectAttempt = t;
      if (mqttConnect()) {
        lastReconnectAttempt = 0;
      }
    }
    delay(100);
    return;
  }

  val = analogRead(0);  //baca sensor photodioda
                

  String pubString ;

 //JSON yang panjang untuk kirim data ADC ke antares
    pubString +=  F("{");
    pubString += F("\"m2m:rqp\": {");
    pubString += F("\"fr\": \"");
    pubString += String(accessKey) ;
    pubString += F("\",");
    pubString += F("\"to\": \"/antares-cse/antares-id/");
    pubString += String(projDev);
    pubString += F("\",");
    pubString += F("\"op\": 1,");
    pubString += F("\"rqi\": 123456,");
    pubString += F("\"pc\": {");
    pubString += F("\"m2m:cin\": {");
    pubString += F("\"cnf\": \"message\",");
    pubString += F("\"con\": \"{\\\"level\\\":");
    pubString += String(val);
    pubString += F("}\"");
    pubString += F("}");
    pubString += F("},");
    pubString += F("\"ty\": 4");
    pubString += F("}");
    pubString += F("}");
  
  // kirim atau publish ke antares

  SerialMon.println(pubString);
  char message_buff[pubString.length() + 1];
  pubString.toCharArray(message_buff, pubString.length() + 1);
  mqtt.publish(TOPIKPUB, message_buff);

delay(5000);
}
Penjelasan videonya bisa dilihat pada youtube berikut ini :




telkomsel iot, telkomsel, nbiot, ITS surabaya, ITB Bandung, Telkom antares, Telkom University, elektronika, Kementrian kelautan dan perikanan, susi pudjiastuti, eddy prabowo, deddy corbuzier
Share:

3 komentar:

  1. kalau mengunakan library sim800l, script mana saja yang di ganti ya gan?

    BalasHapus
  2. yg diubah hanya inisialisasi define untuk modem nya saja ..paling atas

    BalasHapus
    Balasan
    1. Kalo yg disesuaikan akun antares itu apa saja yg diubah? TOPIKPUB, AccessKey sama ProjDev kah? Maklum saya masih amatiran 🙏

      Hapus

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 (12) antares (8) arduino (25) 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 (25) euro2020 (13) gcc (1) iklan (1) infrared (2) Input Output (3) iot (58) 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 (5) MATV (1) memory (1) metal detector (4) microcontroller (70) micropython (6) mikrokontroler (1) 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 (7) radio (15) raspberry pi (4) 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) transistor (2) troubleshoot (3) tulisan (92) tutorial (108) tv digital (6) tvri (2) vu meter (2) vumeter (2) wav player (3) wayang (1) wifi (3)

Arsip Blog

Diskusi


kaskus
Forum Hobby Elektronika