• MUHILHAM • Electronics Hobbyist and Maker
  • Shop
  • Sitemap
  • Portfolio
  • Jasa Custom Project





  • Home IoT
    Showing posts with label IoT. Show all posts
    Showing posts with label IoT. Show all posts
    IoT STM32

    Monitoring Daya Listrik 3 Phase [3 Phase AC Power Monitoring] - Data Logger

    MUHAMMAD ILHAM 4 Comments


    Artikel kali ini akan membahas tentang sebuah alat untuk monitoring listrik 3 phase, project kali ini menggunakan STM32, diharapkan dengan menggunakan mikrokontroler 32-bit dengan resolusi ADC 12-bit ini data pengukuran akan lebih baik dan untuk koneksi ke internet digunakan modul SIM800L. Data hasil pengukuran akan dikirim ke database mysql sebagai datalogging.

    Project untuk mengukur daya listrik 3 phase ini tergolong cukup ribet dan mahal menurut saya, dikarenakan sensor yang digunakan sebanyak 6 buah, dimana digunakan 3 single phase voltage sensor dan juga 3 sensor untuk arusnya.

    Sensor tegangan yang digunakan ZMPT101B dan SCT-013 untuk sensor arus, SCT-013 merupakan sensor arus berjenis non-kontak dengan sistem clamp, sensor ini cukup baik dari segi instalasi, hanya dengan menjepit pada salah satu kabel, artinya tidak perlu memutus atau mengubah instalasi yang sudah ada.

    Komponen yang digunkan
    • Modul STM32F1 Bluepill
    • Modul SIM800L
    • Modul DC-DC Step Down
    • Sensor Tegangan ZMP101B
    • Sensor Arus SCT103 
    • LCD 16x2 + i2c
    • Kapasitor 10uF
    • Resistor 10K
    • Resistor 330R
    Rangkaian/Electrical Circuit


    PCB Design



    Bagian program untuk mengukur daya listrik 3 phase



    void process_power_data(int16_t channel) {
      int32_t sample_V, sample_I, signed_V, signed_I;
    
      // ----------------------------------------
      // Voltage
      if (channel == 0) sample_V = ADC_DMA_BUFF[0];
      if (channel == 1) sample_V = ADC_DMA_BUFF[1];
      if (channel == 2) sample_V = ADC_DMA_BUFF[2];
      signed_V = sample_V - MID_ADC_READING;
      sum_V[channel] += signed_V;
      sum_V_sq[channel] += signed_V * signed_V;
    
      // ----------------------------------------
      // Current
      if (channel == 0) sample_I = ADC_DMA_BUFF[3];
      if (channel == 1) sample_I = ADC_DMA_BUFF[4];
      if (channel == 2) sample_I = ADC_DMA_BUFF[5];
      signed_I = sample_I - MID_ADC_READING;
      sum_I[channel] += signed_I;
      sum_I_sq[channel] += signed_I * signed_I;
    
      // ----------------------------------------
      // Power
      sum_P[channel] += signed_V * signed_I;
    
      count[channel] ++;
    
      // ----------------------------------------
      // Zero crossing detection
      last_positive_V[channel] = positive_V[channel];
      if (signed_V > 0) positive_V[channel] = true; else positive_V[channel] = false;
      if (last_positive_V[channel] != positive_V[channel]) cycles[channel]++;
    
      // ----------------------------------------
      // Cycle count == cycle set (MAX_CYCLES)
      if (cycles[channel] >= MAX_CYCLES) {
        cycles[channel] = 0;
    
        double Vmean = sum_V[channel] * (1.0 / count[channel]);
        double Imean = sum_I[channel] * (1.0 / count[channel]);
    
        sum_V_sq[channel] *= (1.0 / count[channel]);
        sum_V_sq[channel] -= (Vmean * Vmean);
        Vrms[channel] = V_RATIO[channel] * sqrt((double)sum_V_sq[channel]);
        sum_V[channel] = 0;
        sum_V_sq[channel] = 0;
    
        sum_I_sq[channel] *= (1.0 / count[channel]);
        sum_I_sq[channel] -= (Imean * Imean);
        Irms[channel] = I_RATIO[channel] * sqrt((double)sum_I_sq[channel]);
        sum_I[channel] = 0;
        sum_I_sq[channel] = 0;
    
        double mean_P = (sum_P[channel] * (1.0 / count[channel])) - (Vmean * Imean);
        sum_P[channel] = 0;
        count[channel] = 0;
    
        realPower[channel] = V_RATIO[channel] * I_RATIO[channel] * mean_P;
        apparentPower[channel] = Vrms[channel] * Irms[channel];
        powerFactor[channel] = realPower[channel] / apparentPower[channel];
    
        endMillis[channel] = HAL_GetTick();
        unsigned long timeMs = (endMillis[channel] - startMillis[channel]);
        WattHour[channel] += realPower[channel] * ((double) timeMs / 3600000); // Watt-Hour
        startMillis[channel] = HAL_GetTick();
    
        readings_ready = true;
      }
    }
    

    Pemasangan sensor SCT-013 pada kabel fasa



    Pemasangan sensor ZMPT-101B fasa terhadap neutral (L/N)



    Datalogging database mySQL


    Data pengukuran di kirim ke database menggunakan modul GSM dengan mode GPRS, data diterima oleh webserver hosting dan dimasukkan ke database dengan PHP.


    👉 UNTUK PERTANYAAN ATAU CUSTOM PROJECT 👈



    Pengujian Monitoring Daya Listrik

    Untuk interface digunakan LCD16x2 dengan sebuah tombol yang berfungsi sebagai pengubah tampilan layar lcd, terdapat 4 tampilan layar tegangan, arus, daya aktif (watt) dan konsumsi daya (Wh).

    Tampilan tegangan/voltage


    Tampilan arus/current


    Tampilan daya/power


    Tampilan konsumsi daya (watt hours)


    Video 3 Phase Power Monitoring


    Referensi learn.openenergymonitor.org
    IoT

    Sistem Keamanan Rumah Berbasis IoT Dengan Sensor Gerak [Motion Detection]

    MUHAMMAD ILHAM Comment


    Sesuai dengan judul artikel kali ini akan membahas tentang project IoT atau Internet of Things, sistem keamanan rumah berbasis internet of things berarti sebuah sistem keamanan yang terhubung dengan perangkat melalui koneksi internet, artinya perangkat yang terhubung dapat melakukan pemantauan maupun pengendalian melalui jarak jauh dengan syarat adanya koneksi internet tentunya.

    Pemantauan yang dimaksud pada sistem keaman rumah ini adalah memantau pergerakan objek atau dalam hal ini manusia, dimana pada suatu ruangan di pasang sensor dan jika terdeteksi pergerakan maka alat akan memberikan notifikasi atau pesan peringatan pada perangkat yang terhubung, selain itu terdapat juga buzzer pada alat yang akan berbunyi jika mendeteksi pergerakan dan tidak akan mati sebelum dimatikan melalui perangkat yang terhubung.

    Selain sistem keamanan alat ini juga dilengkapi dengan kendali perangkat elektronik, yang berarti dapat mengendalikan dari jarak jauh, contohnya dapat mematikan maupun menghidupkan lampu pada suatu ruangan.

    Pada project kali ini perangkat untuk monitoringnya digunakan smartphone android, kenapa dipilih smartphone karena pada jaman saat ini perangkat seluler tidak bisa terlepas dari kegiatan sehari hari orang - orang dimana akan mempermudah segala urusan mulai dari berkomunikasi dan lain-lain.

    Komponen yang digunakan
    • Modul WiFi Wemos D1
    • Sensor PIR
    • Buzzer
    • Modul Relay
    • Tombol - Tombol dan Switch
    • PCB untuk Rangkaian
    • Power Supply atau Adaptor 5V
    • Black Box
    Rangkaian/Wiring Electrical

    Setelah di rangkai dan di solder


    👉 UNTUK PERTANYAAN ATAU CUSTOM PROJECT 👈



    Video Pengujian Alat
    IoT

    Smart Socket Power Meter IoT

    MUHAMMAD ILHAM 6 Comments

    Sedikit intermezzo dulu kali ya, soalnya sudah cukup lama blog ini tidak update lantaran saya sebagai penulis masih berstatus mahasiswa, apalagi saat ini sudah memasuki mahasiswa tingkat akhir, sedikit curhat hehe... :). Dimana pada waktu yang lalu saya disibuk kan dengan Proyek Akhir dimana itu dituntut harus selesai dalam 1 semester alat dengan laporannya dan sidang lolos dengan revisian selesai juga tentunya, kalau tidak yaa harus nambah semester dan yang pasti nambah bayar lagi, tapi alhamdulillah nya alat maupun laporan selesai tepat waktu dan pas pada saat itu dapat jadwal sidang pada hari pertama dan urutan pertama pula, mungkin taulah gimana rasanya :).

    Sebenarnya yang akan dibahas pada artikel kali ini merupakan alat Proyek Akhir yang saya kerjakan dan sebenarnya alat ini sudah selesai pada bulan desember 2018 lalu. Dikarenakan setelah itu masuk di semester berikutnya saya mendapatkan mata kuliah magang industri selama 4 bulan, nah.. tidak tau kenapa baru saat ini lah saya bisa menulis artikel ini, oke mungkin cukup segitu curhatnya :) kelamaan intermezzo sepertinya hehe... ohh iya artikel ini mungkin akan agak sedit panjang penjelasannya dikarenakan memang isinya itu saya ambil dari laporan proyek akhir saya, oke langsung saja kita masuk pada pembahasan.


    Smart socket power meter (kalau di proyek akhir saya judulnya Pengendalian Stop Kontak dan Monitoring Penggunaan Daya Listrik Menggunakan Android) merupakan socket atau stop kontak yang di desain dapat melakukan pengendalian on/off perangkat listrik dari jarak jauh, selain mengendalikan smart socket ini juga mampu memonitoring penggunaan daya listrik pada perangkat listrik yang dihubungkan dengan smart socket power meter ini.

    Sistem pengendalian jarak jauh saat ini dibutuhkan, karena akan mempermudah dalam pengoperasian atau memonitoring dari tempat yang jauh. Smart socket ini merupakan penerapan Internet Of Things (IoT), metode yang digunakan yaitu membangun sebuah sistem yang mampu mengendalikan perangkat listrik sekaligus mengukur parameter daya listrik AC, menggunakan Arduino pada subsistem pengukuran sedangkan pada subsistem kendali dan monitoring jarak jauh menggunakan Wemos D1 Mini sebagai penghubung dengan koneksi internet melalui jaringan Wi-Fi, pada pengendali digunakan TRIAC sebagai switching perangkat listrik, data hasil pengukuran dikirim ke sebuah server realtime database. Adapun media interface yang digunakan adalah smartphone Android dengan aplikasi yang dirancang mampu mengendalikan maupun memonitoring. 

    Perancangan Sistem
    Smart socket power meter ini menggunakan interface android yang dirancang agar dapat mengendalikan dan memonitoring menggunakan koneksi internet, kemudian informasi ditampilkan pada smartphone android, pada perancangan ini terdapat dua subsistem yaitu subsistem pembacaan daya dan subsistem pengirim yang mempunyai fungsi masing - masing.

    Pada subsistem pertama yaitu proses pembacaan daya terdapat sebuah mikrokontroler arduino sebagai pemroses dari pembacaan sensor, kemudian hasil pembacaan ditampilkan di LCD. Selanjutnya subsistem kedua yang berperan sebagai pengirim data terdapat mikrokontroler wemos D1 mini yang berkomunikasi serial dengan mikrokontroler arduino yang ada pada subsistem pembacaan daya, subsistem pengirim akan menerima data tegangan, arus dan penggunaan daya kemudian data tersebut diproses untuk dikirim ke database firebase dengan keadaan alat terhubung dengan koneksi internet.

    Data yang dikirim ke firebase kemudian akan tampil pada aplikasi android dengan syarat android memiliki koneksi internet. Aplikasi android akan mengambil data yang di kirim ke firebase dan menampilkan secara realtime.

    Rangkaian Elektrikal


    Untuk layout PCB yang di desain menggunakan software eagle dapat dilihat pada gambar berikut :

    Rangkaian elektrikal terdiri dari mikrokontroler wemos d1 mini terhubung ke mikrokontroler arduino dengan komunikasi serial dan rangkaian driver triac yang terhubung dengan stop kontak. Dikarenakan pin I/O mikrokontroler wemos bekerja pada tegangan 3.3 volt, digunakan sebuah modul logic level converter yang berfungsi sebagai converter tegangan 5 volt ke 3.3 volt atau sebaliknya dari 3.3 volt ke 5 volt.

    Rangkaian driver beban dirancang dengan menggunakan triac BTA12 dan optocoupler MOC 3020. Triac berfungsi sebagai saklar dua arah untuk mengontrol beban AC sedangkan optocoupler berfungsi sebagai isolator untuk mengisolasi tegangan AC dengan rangkaian kontrol tegangan DC agar tidak saling terhubung.

    Prinsip kerjanya keluaran dari pin mikrokontroler wemos masuk ke pin 2 MOC 3020 atau pin katoda led yang ada dalam kemasan ic, untuk mengaktifkan output MOC 3020 yaitu dengan cara memberi logika low atau 0 volt pada katoda led tersebut dan 5 volt pada anodanya pada saat itu output MOC 3020 akan aktif untuk memberikan trigger pada gate triac BTA12 sehingga triac aktif dan menyalakan beban listrik.

    Perancangan Mekanikal

    Flowchart Sistem
    Gambar diatas menunjukkan flowchart proses dari keseluruhan sistem mulai dari wemos menghubungkan dengan koneksi internet, terdapat subproses pengendalian stop kontak di aplikasi android kemudian pada subproses status stop kontak akan merubah status stop kontak untuk menyalakan atau mematikan stop kontak.

    Lalu ada subproses terima data tegangan, arus dan daya dari arduino yang merupakan subsistem pengukuran daya, kemudian data yang diterima oleh wemos di kirim ke server firebase, yang terakhir ada subproses monitoring tegangan, arus dan daya yang tampil pada aplikasi android.

    Selanjutnya masuk pada proses pemrograman, disini saya hanya akan menjelaskan program pada sub sistem pengendalian dan monitoring yaitu pada mikrokontroler wemos D1 mini, pada alat ini wemos di program pada dua mode yaitu mode sebagai Acces Point atau membuat Web Server dan sebagai Client, untuk jelasnya langsung saja.

    Wemos Sebagai Acces Point dan Web Server
    Wemos diatur sebagai Access Point, dan smartphone android atau web browser sebagai client. Adapun fungsi wemos sebagai Access Point digunakan saat ingin konfigurasi atau pengaturan jaringan Wi-Fi yang akan terhubung dengan alat. Untuk sketch program Arduino IDE nya dapat dilihat di bawah ini.
    Untuk menggunakan wemos sebagai Access Point dan web server digunakan library ESP8266WiFi untuk konfigurasi Acces Point dan ESP8266WebServer untuk membuat local web server, sedangkan library EEPROM untuk menyimpan data ke memori wemos.
    Pengaturan mode wemos sebagai Access Point dilakukan dengan perintah WiFi.mode(WIFI_AP) kemudian atur alamat ip dengan perintah WiFi.softAPConfig(alamat ip, gateway, subnet), untuk mengatur nama dan password Access Point dengan perintah WiFi.softAP(ssid, pass).
    Program diatas digunakan untuk pembuatan halaman web server menggunakan script atau kode HTML, adapun untuk mengakses halaman utama dari local web server yang dibuat adalah dengan mengetik alamat 192.168.1.1 pada web browser, untuk hasil percobaan web server dapat dilihat pada gambar berikut:
    Hasil percobaan web server dengan membuka alamat 192.168.1.1 pada web browser maka akan tampil halaman utama, yang dimana terdapat form ssid dan password yang harus di isi dengan nama wifi dan password wifi yang akan dihubungkan dengan alat dan terdapat sebuah tombol kirim, saat form di isi dan tombol kirim ditekan maka akan tampil halaman kedua yang berarti akan menyimpan data pada eeprom wemos, untuk perintah membaca data eeprom dapat dilihat pada berikut:
    Program diatas merupakan perintah untuk pembacaan karakter pada memori wemos dengan perintah EEPROM.read() adapun data disimpan dimulai dari byte 0 sampai 31 untuk ssid dan 32 sampai 95 untuk password, kemudian setiap karakter yang dibaca dimasukkan ke variabel masing - masing, dapat dilihat pada screenshot dibawah ini merupakan respon serial monitor saat web server diakses dan simpan data ke eeprom.
    Untuk hasil dari percobaan ini dapat dilihat pada hasil screenshot serial monitor dibawah ini, dimana dengan membuat wemos sebagai Access Point dan membuat local web server dapat dilakukan pengaturan jaringan WiFi untuk terhubung dengan alat dengan cara menyimpan data pada eeprom.

    Wemos Sebagai Client
    Selain sebagai Access Point wemos juga dapat diatur sebagai client, jadi disini wemos akan terhubung dengan jaringan Wi-Fi atau sebagai client Wi-Fi tersebut, sehingga dibutuhkan setting nama Wi-Fi dan passwordnya. Selain itu wemos juga akan terhubung dengan server firebase atau sebagai client server melalui koneksi internet dari jaringan Wi-Fi, untuk pengaturan dan program Arduino IDE dapat dilihat di bawah ini.
    Program diatas digunakan untuk mengatur wemos sebagai client, library yang digunakan ESP8266WiFi untuk menghubungkan dengan jaringan Wi-Fi dan FirebaseArduino untuk menghubungkan dengan server firebase, agar dapat terhubung dengan jaringan Wi-Fi maka di atur terlebih dahulu nama dan password Wi-Fi yang ingin dihubungkan. Untuk menghubungkan ke database domain dan kode rahasia dari server firebase juga perlu diatur.
    Program diatas merupakan perintah untuk menghubungkan dengan Wi-Fi dan server, pada saat pertama kali dinyalakan wemos akan mencoba menghubungkan dengan Wi-Fi hingga terhubung, jika belum terhubung maka akan terus mengulang pada while looping untuk menghubungkan, saat sudah terhubung maka akan keluar dari while.
    Setelah terhubung dengan koneksi internet maka dapat di lakukan pengiriman data ke server, adapun perintahnya seperti pada pada program diatas. Adapun data yang dikirim adalah parameter listrik ac, pengiriman dilakukan dalam dua paket data diantaranya paket data yang pertama data tegangan, arus dan daya aktif untuk data kedua daya reaktif, daya semu dan faktor daya.

    Adapun tujuan dilakukan pengiriman tiga parameter listrik pada setiap paket data akan mempercepat proses pengiriman dimana hanya dilakukan dua kali pengiriman untuk semua parameter. Dapat dilihat pada hasil screenshot dibawah ini yang merupakan respon serial monitor saat proses pengiriman data ke server.
    Gambar diatas terlihat tampilan serial monitor pada pc, dimana dimulai dari menghubungkan dengan koneksi wifi hingga proses pengiriman, terlihat pada awal pengiriman data semua parameter bernilai kosong atau garis strip dimana pada saat itu belum ada data yang di terima melalui komunikasi serial oleh wemos dari arduino.

    Pada pengiriman data yang kedua terlihat data yang di kirim ke server firebase sesuai dengan data yang diterima oleh wemos, ada dua paket data yang di kirim selalu dipisah dengan huruf V untuk tegangan, I untuk arus, P untuk daya aktif, Q untuk daya reaktif, S daya semu, PF faktor daya dan diakhiri dengan tanda bintang *. Huruf - huruf tersebut dimaksud sebagai pemisah antar data untuk melakukan proses parsing pada aplikasi android.
    Gambar diatas merupakan hasil dari percobaan ini, dimana wemos terhubung dengan koneksi internet dan berhasil mengirimkan data ke server, data yang ditampilkan pada server merupakan data yang terakhir dikirim.

    Aplikasi Android
    Aplikasi android dibuat dengan menggunakan MIT App Inventor 2 yang merupakan aplikasi berbasis web open source. Untuk tampilan aplikasi yang telah dibuat dapat dilihat sebagai berikut.
    Gambar diatas merupakan tampilan aplikasi android yang telah dibuat, tampilan awal aplikasi adalah login dengan pin untuk masuk ke tampilan utama aplikasi, pada tampilan utama aplikasi merupakan tampilan monitoring pengukuran daya dan terdapat dua tombol kendali on-off stop kontak.

    Jika ada yang ingin ditanyakan silahkan tinggalkan komentar atau untuk informasi lebih lanjut mengenai project ini agar dapat menghubungi saya.


    IoT

    Kontrol Lampu Dengan Suara Menggunakan Android Melalui Internet [Speech Recognition]

    MUHAMMAD ILHAM 10 Comments


    Pada kesempatan kali ini saya akan membahas sebuah teknologi yang menarik untuk di bahas tentunya, yaitu Internet Of Things atau sering disingkat IoT, merupakan konsep yang bertujuan dengan memanfaatkan koneksi internet diharapkan dapat dihasilkan teknologi yang dapat mempermudah pekerjaan manusia, sederhananya penerapannya sebagai remote kontrol jarak jauh, yang akan dibahas pada artikel kali ini.

    Adapun penerapan IoT yang akan dibahas kali ini adalah menyalakan dan mematikan lampu dengan menggunakan suara dengan memanfaatkan speech recognition yang ada di smartphone android, nantinya alat yang dibuat mampu mengendalikan lampu melalui jarak jauh dengan syarat adanya koneksi internet.

    Masuk ke pembahasan mengenai pengendalian lampu dengan suara dari jarak jauh, adapun komponen yang dibutuhkan untuk membuatnya diataranya, Wemos D1 yang merupakan komponen utama pada project kali ini karena fungsi dari wemos ini sebagai penghubung alat atau perangkat yang akan dikendalikan dengan koneksi internet kelebihan dari wemos ini bisa diprogram dengan menggunakan software Arduino IDE jadi bisa lebih mudah dalam pembuatan program atau codingnya, adapun komponen berikutnya yaitu Relay yang berfungsi sebagai saklar pemutus dan penghubung sumber listrik ke beban lampu.

    Komponen yang digunakan
    • Wemos D1 Mini
    • Module Relay 5V
    • Transistor BC557
    • Resistor 10k
    • Lampu
    • Projectboard
    • Kabel Jumper Secukupnya
    • Smartphone Android
    Berikut ini block diagram sistem

    Sistem pengendalian ini dirancang agar dapat menyalakan dan mematikan lampu menggunakan suara menggunakan android melalui internet, prinsip kerjanya terdapat wemos sebagai penerima perintah dari android dimana perintah dikirim menggunakan koneksi internet, agar wemos dan android dapat bekomunikasi digunakan sebuah web server thingspeak yang dapat menyimpan data yang kirim oleh android yang kemudian wemos akan menerima data yang dikirim oleh android, kemudian data di proses oleh wemos untuk pengendalian relay.

    Rangkaian/Wiring Elektrical

    Membuat channel di web thingspeak

    1. Pergi ke thingspeak.com
    2. Jika belum memiliki akun silahkan buat akun terlebih dahulu jika sudah langsung Sign In saja
    3. Kemudian buatlah Channel baru
    4. Setelah berhasil membuat channel masuk ke Channel setting kemudian tambahkan field
    5. Masuk ke API Keys catat Channel ID dan Read API Keys
    6. Setelah itu masukkan Channel ID dan Read API Keys pada coding arduino kemudian upload coding dan tes dengan aplikasi android, kemudian lihat pada Private View apakah data yang dikirim masuk pada field yang dibuat
    Silahkan copy program ke software Arduino IDE

    /**************************
     Kontrol lampu dengan suara menggunakan android melalui internet
     [Speech Recognition]
     www.muhilham.com
     15/07/2018
    ***********************/
    
    #include 
    #include 
    
    WiFiClient TSpeak_client;
    
    const char* namawifi = "Roy Anak IndiHome"; // nama acces point wifi 
    const char* password = "1234554321"; // password wifi
    unsigned long myChannelNumber = 483487; // isi channel ID anda 
    const char* myReadAPIKey = "Read API Key"; // Isi dengan read api key anda
    const int Lampu1 = D5;
    const int LED = D4;
    
    void setup() {
      Serial.begin(115200);
      pinMode(LED, OUTPUT);
      pinMode(Lampu1, OUTPUT);
      digitalWrite(Lampu1, HIGH);
      digitalWrite(LED, HIGH);
      Serial.println("** SETUP **");
      Serial.println();
      delay(500);
      WIFI_Connect();
      ThingSpeak.begin(TSpeak_client);
    }
    
    void WIFI_Connect() {
      digitalWrite(LED, HIGH);
      WiFi.disconnect();
      WiFi.mode(WIFI_AP_STA);
      WiFi.begin(namawifi, password);
      Serial.println();
      Serial.print("Menghubungkan Dengan ");
      Serial.println(namawifi);
      // wait for connection
      while (WiFi.status() != WL_CONNECTED) {
        delay(250);
        digitalWrite(LED, LOW);
        Serial.print(".");
        delay(250);
        digitalWrite(LED, HIGH);
      }
    
      // Terhubung dengan acces point
      Serial.println();
      Serial.println("-- WIFI TERHUBUNG --");
      Serial.print("IP address: ");
      Serial.println(WiFi.localIP());
      Serial.println();
      digitalWrite(LED, LOW);
    }
    
    void loop() {
    
      if (WiFi.status() != WL_CONNECTED) {
        delay(500);
        ESP.wdtDisable();
        Serial.println("WiFi Terputus, RESET WEMOS !");
        digitalWrite(LED, HIGH);
      }
      else {
    
        int Field1 = ThingSpeak.readIntField(myChannelNumber, 1, myReadAPIKey); // mengambil/membaca data pada filed 1
        Serial.print("Field 1 : ");
        Serial.println(Field1);
    
        if (Field1 == 1) {
          digitalWrite(Lampu, HIGH); 
          Serial.println("LAMPU MATI");
        }
        if (Field1 == 2) {
          digitalWrite(Lampu1, LOW);
          Serial.println("LAMPU NYALA");
        }
      }
    }
    


    Update : Server dengan Google Firebase


    Pembaharuan dengan server Firebase ini membuat respon lebih cepat dibandingkan dengan server Thingspeak yang versi gratis, mungin berbeda juka menggunakan thingpeak yang berbayar. Namun pada server firebase versi spark yang merupakan versi gratis dari firebase menurut saya respon server nya sudah cepet, sama - sama gratis kan kalau saya ya mending pilih yang ini.

    Untuk versi update dengan firebase ini rangkaian yang di gunakan tidak berbeda, hanya saja berbeda di aplikasi android dan program wemos nya saja.

    Membuat database Google Firebase
    • Pergi ke console.firebase.google.com login dengan akun google kamu
    • Kemudian buat project baru dengan memilih Add project
    • Pada panel sebelah kiri, klik Database pilih Realtime Database
    • Buat struktur database seperti berikut


    • Catat FirebaseURL kamu


    • Selain FirebaseURL kita juga butuh Secret Code database, catat juga



    Konfigurasi Aplikasi Android dan Program Wemos
    • Pergi ke ai2.appinventor.mit.edu login dengan akun google kamu
    • Kemudian Import file .aia aplikasi android yang sudah saya buat, dwonload disini



    • Atur Komponen firebase dengan Secret Code dan FirebaseURL yang kamu catat tadi


    • Untuk konfigurasi program wemos atur juga dengan Secret Code dan FirebaseURL yang kamu catat tadi, dan jangan lupa mengatur koneksi WiFi


    Tampilan Aplikasi Android

    Program terbaru dengan Firebase, lengkapi terlebih dahulu library yang digunakan


    /**************************
      Kontrol lampu dengan suara menggunakan android melalui internet
      [Speech Recognition]
      www.muhilham.com
      2018
    ***********************/
     
    #include  // Memasukkan library wemos
    #include  // Memasukkan library database (firebase)
    const char FIREBASE_HOST[] = "smart-lamp-voice-controlled.firebaseio.com"; // domain database firebase
    const char FIREBASE_AUTH[] = "hbt3lUQ4TDyj6CYv4C6uCq19tlVmXe0QbZ7qQghj"; // kode rahasia database (firebase)
    const char WIFI_SSID[] = "NAMA WIFI"; // Nama SSID wifi yang akan dihubungkan dengan alat
    const char WIFI_PASSWORD[] = "PASSWORD WIFI"; // Password wifi yang akan dihubungkan dengan alat
    // WEMOS
    const int Relay = D5; // pin digital yang digunakan untuk mengaktifkan relay
    const int LED = D6; // pin untuk led buitltin wemos
    // NODE MCU
    //const int Relay = 14; // pin digital D5 (untuk mengaktifkan relay)
    //const int LED = 2; // pin digital D4 (led buitltin Node MCU)
    bool lastState = false;
    void setup() { // fungsi program yang dijalankan sekali saat mikrokontroller di beri sumber listrik
      Serial.begin(115200); // baudrate / kecepatan serial monitor
      pinMode(Relay, OUTPUT); // set pin relay(D5) sebagai output
      pinMode(LED, OUTPUT); // set pin LED (D4) sebagai output
      digitalWrite(LED, HIGH); // set pin LED high (3.3 volt) matikan LED
      WiFi.begin(WIFI_SSID, WIFI_PASSWORD); // hubungkan dengan WIFI
      Serial.print("Menghubungkan"); // tampilkan pada serial monitor
      while (WiFi.status() != WL_CONNECTED) { // selagi wifi tidak terhubung jalankan program didalamnya
        Serial.print(".");
        digitalWrite(LED, LOW);  // hidupkan led
        delay(600); // waktu tunda 600 milidetik
        digitalWrite(LED, HIGH); // matikan led
        delay(500); // waktu tunda 500 milidetik
      }
      Serial.println();
      Serial.println("Terhubung");
      digitalWrite(LED, LOW); // hidupkan led
      Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); // hubungkan dengan database (firebase)
    }
    void loop() { // program perulangan
      String stateLOAD = Firebase.getString("Relay1"); // ambil data dari database
      if (stateLOAD == "\"off\"" && lastState) { // jika data in = 1 jalankan program dibawah nya
        digitalWrite(Relay, LOW); // non aktifkan relay (matikan lampu)
        digitalWrite(LED, HIGH); // matikan LED builtin
        Serial.println("Relay 1 Off");
        lastState = false;
      } else if (stateLOAD == "\"on\"" && !lastState) { // jika data in = 2 jalankan program dibawah nya
        digitalWrite(Relay, HIGH); // aktifkan relay (hidupkan lampu)
        digitalWrite(LED, LOW); // hidupkan LED builtin
        Serial.println("Relay 1 On");
        lastState = true;
      }
      if (WiFi.status() != WL_CONNECTED) { // jika tidak terputus dari wifi reset wemos
        ESP.restart(); // restart
      }
    }
    


    Older Posts Home

    Popular Posts

    • Download Cadsoft Eagle Professional 7.2.0 Full
    • Cara Mudah Membuat Layout PCB Dengan Menggunakan Lotion Anti Nyamuk
    • Membuat Mobil Remote Control dengan Arduino [RC Car Control with Bluetooth]
    • Cara Memperbaiki Kipas Angin Mati Total [Tidak Berputar Sama Sekali]
    • Line Follower Robot Using PID Control

    Categories

    Elektronika Arduino Tips dan Trik Robotic Tutorial IoT Software Arduino Tutorial PCB STM32

    Recent Posts

     
    Copyright © MUHILHAM • Electronics Hobbyist and Maker. All Rights Reserved.