headerphoto

ESP8266
ESP8266 is high integration wireless SOCs, designed for space and power constrained mobile platform designers. It provides unsurpassed ability to embed Wi-Fi capabilities within other systems, or to function as a standalone application, with the lowest cost, and minimal space requirement.
ESP8266 adalah sebuah chip micro controller unit (MCU) yang sudah dilengkapi dengan wifi. ESP8266 dikembangkan oleh tim AI-Thinker menjadi sebuah modul yang siap digunakan. Berkambang menjadi berbagai seri, menjadi sebuah keluarga, keluarga ESP8266 (esp8266-module-family) diantaranya:
  1. ESP-WROOM-02
    ESP-WROOM02
  2. ESP-01
    ESP01
  3. ESP-02
    ESP02
  4. ESP-03
    ESP03
  5. ESP-04
    ESP04
  6. ESP-05
    ESP05
  7. ESP-06
    ESP06
  8. ESP-07
    ESP07
  9. ESP-08
    ESP08
  10. ESP-09
    ESP09
  11. ESP-10
    ESP10
  12. ESP-11
    ESP11
  13. ESP-12
    ESP12
  14. ESP-12F
    ESP12F
  15. ESP-12-E/Q
    ESP12E
  16. ESP-12S
    ESP12S
  17. ESP-13
    ESP13
  18. ESP-14
    ESP14
    ESP14 dengan Cover Terbuka
  19. WT8266-S1
    ESP-WT8266-S1
Seperti halnya Arduino, keluarga ESP8266 berukuran kecil-kecil dengan harga relatif murah, kurang dari Rp 50.000, dan bisa diprogram dengan aplikasi Arduino IDE, di Windows ataupun di Linux OS.

Sumber gambar tulisan ini dan infomasi esp8266-module-family yang lebih lengkap, bisa dilihat di ESP8266 Community
--------------------------------
Ditulis dengan menggunakan:
Host: zaldi-linuxmint
Distro: Linux Mint 19.3 Tricia
Kernel: 5.0.0-32-generic
Desktop: Xfce 4.14.1
Player: Audacious 3.9
Browser: Chromium 87.0.4280.66

Lanjut baca »»

Apakah sistem pull-up atau pull-down masih relevan untuk digunakan pada output Arduino, Esp8266 dan micro controller unit (MCU) sejenisnya? Bukankah output Arduino/ Esp8266/ micro controller unit (MCU) bisa langsung dipasang beban yang sesuai (misal buzzer 5 VDC yang berkebutuhan arus 20 mA)? atau cukup dengan memasang sebuah resistor seri ke beban lampu LED? seperti pada gambar schematic pin 13 Arduino Nano di bawah ini
Skema Pin 13 Arduino Nano
Pada pin Arduino/ Esp8266/ micro controller unit (MCU) yang menjadi output seperti di atas, tidak terdapat resistor ke VCC untuk menaikkan (pull-up) atau resistor ke GND untuk menurunkan (pull-down), dan hal itu tidak menjadi masalah.

Tapi... perhatikan gambar schematic NodeMCU di bawah ini
Skema Pin GPIO0 NodeMCU
Pada pin GPIO0 dan GPIO2 NodeMCU terpasang seri resistor ke VDD untuk menaikkan (pull-up resistor) dan pin GPIO15 terpasang seri resistor ke GND untuk menurunkan (pull-down resistor).

:awas: Bila resistor pull-up atau pull-down ini tidak dipasang pada ESP12E, yang merupakan main board NodeMCU, atau tidak dipasang pada ESP12F atau keluarga ESP8266 lainnya, maka MCU tersebut tidak akan bekerja, error atau tidak stabil.

:catat: Kesimpulan: sistem pull-up atau pull-down untuk digunakan pada output Arduino, Esp8266 dan micro controller unit (MCU) itu tergantung kebutuhan, ada yang wajib dipasang, seperti pada ESP12E dan keluarga ESP8266 lainnya, atau tidak wajib dipasang seperti pada Arduino Nano.

--------------------------------
Ditulis dengan menggunakan:
Host: zaldi-linuxmint
Distro: Linux Mint 19.3 Tricia
Kernel: 5.0.0-32-generic
Desktop: Xfce 4.14.1
Player: Audacious 3.9
Browser: Chromium 87.0.4280.66

Lanjut baca »»

Setelah kita memahami sistem input Arduino/ Esp8266/ micro controller unit (MCU) dengan perintah INPUT_PULLUP, dan tidak perlu memasang resistor pada input Arduino/ Esp8266/ micro controller unit (MCU) tersebut, maka kita bisa bangun rangkaian input cukup mudah, hanya dengan switch atau push button saja, seperti rangkaian di bawah ini
button-swith-arduino2
LOW Input Arduino
Dari rangkaian input Arduino di atas, kita pahami bahwa Arduino tersebut bekerja dengan LOW input.
LOW input = INPUT_PULLUP
Bagaimana bila kita ingin memasang HIGH input? memasang input yang bertegangan? apakah bisa dengan memberi perintah INPUT_PULLDOWN, seperti perintah INPUT_PULLUP pada LOW input?

Jawabannya, tidak bisa, Arduino/ Esp8266/ micro controller unit (MCU) tidak menyediakan fasilitas INPUT_PULLDOWN, bila dilakukan akan error seperti gambar di bawah ini
Error INPUT_PULLDOWN
Lalu apa yang harus dilakukan jika ingin membangun input HIGH pada Arduino/ Esp8266/ micro controller unit (MCU)? Jawabannya, ya memasang pull-down circuit, menambahkan resistor seri input dengan GND, seperti gambar di bawah ini
pull-down-circuit2
Pull-down Circuit
Sistem pull-down dibangun dengan menurunkan input atau output Arduino/ Esp8266/ MCU menjadi 0, yaitu dengan menghubungkan input atau output Arduino/ Esp8266/ MCU secara seri ke GND melalui sebuah resistor. Pin 16 pada gambar di atas terhubung ke Arduino, kemudian diseri dengan resistor R12 (10k Ohm) ke GND. Resistor R11 dan led D6 berfungsi sebagai indikator, tambahan saja.
:awas: Jangan memasang input HIGH tanpa resistor pull-down (VCC terhubung langsung ke input), karena akan merusak Arduino/ ESP8266/ micro controller unit.


--------------------------------
Ditulis dengan menggunakan:
Host: zaldi-linuxmint
Distro: Linux Mint 19.3 Tricia
Kernel: 5.0.0-32-generic
Desktop: Xfce 4.14.1
Player: Audacious 3.9
Browser: Chromium 87.0.4280.66

Lanjut baca »»

Pull-up circuit yang digunakan sebagai sistem input Arduino, Esp8266 dan micro controller unit (MCU) sejenisnya, bisa kita bangun tanpa memasang resistor seri pada input Arduino/ Esp8266/ micro controller unit (MCU) tersebut. Lalu bagaimana cara membangun sistem input Arduino/ Esp8266/ micro controller unit (MCU) yang aman tanpa memasang resistor?
pull-up-circuit
Pull-up Circuit: VCC terhubung ke R1, R1 terhubung ke pin 15 (input Arduino). Status Pin 15 akan HIGH jika saklar terbuka dan LOW jika saklar tertutup.
Fasilitas yang umumnya ditanamkan pada sebuah micro controller unit (MCU) yaitu adanya resistor pull-up internal. Kita bisa bangun resistor pull-up internal ini dengan memberi perintah INPUT_PULLUP, seperti dibawah ini:
...
void setup(){
/* setup input */
pinMode(sw1, INPUT_PULLUP);
pinMode(sw2, INPUT_PULLUP);
pinMode(sw3, INPUT_PULLUP);
pinMode(sw4, INPUT_PULLUP);
pinMode(sensor, INPUT);
...
Perintah INPUT_PULLUP
Setelah memberi perintah INPUT_PULLUP, maka kita tidak perlu memasang resistor pada input Arduino/ Esp8266/ micro controller unit (MCU), hingga kita bisa bangun rangkaian input cukup mudah, hanya dengan switch atau push button saja, seperti rangkaian di bawah ini
Rangkaian Input Arduino/ ESP8266/ MCU

--------------------------------
Ditulis dengan menggunakan:
Host: zaldi-linuxmint
Distro: Linux Mint 19.3 Tricia
Kernel: 5.0.0-32-generic
Desktop: Xfce 4.14.1
Player: Audacious 3.9
Browser: Chromium 87.0.4280.66

Lanjut baca »»

Sistem input atau output yang digunakan oleh Arduino, Esp8266 dan micro controller unit (MCU) sejenisnya, umumnya berjenis pull-up atau pull-down circuit. Sistem pull-up atau pull-down yang dibangun tersebut berguna untuk menjaga arus yang mengalir ke dalam MCU hingga sesuai dengan kebutuhan, dan menjaga kestabilan kinerja MCU.
Pull-down Circuit
Sistem pull-down dibangun dengan menurunkan input atau output Arduino/ Esp8266/ MCU menjadi 0, yaitu dengan menghubungkan input atau output Arduino/ Esp8266/ MCU secara seri ke GND melalui sebuah resistor. Pin 16 pada gambar di atas terhubung ke Arduino, kemudian diseri dengan resistor R12 (10k Ohm) ke GND.

Apabila VCC sebesar 5 VDC, maka arus yang mengalir pada Arduino yaitu sebesar 5 VDC ÷ 10k Ohm samadengan 0,0005 A atau samadengan 0,5 mA. Arus ini cukup untuk menggerakkan Arduino dan sangat aman. Resistor R11 dan led D6 berfungsi sebagai output (indikator) dan saklar sebagai input, pilih salah satu fungsi, tambahan saja.

Pull-up circuit
Sistem pull-up dibangun dengan menaikkan input atau output Arduino/ Esp8266/ MCU menjadi (+), yaitu dengan menghubungkan input atau output Arduino/ Esp8266/ MCU secara seri ke VCC melalui sebuah resistor. Pin 15 pada gambar di atas terhubung ke Arduino, kemudian diseri dengan resistor R1 (10k Ohm) ke VCC. Resistor R2 dan led D1 berfungsi sebagai output (indikator) dan saklar sebagai input, pilih salah satu fungsi, tambahan saja.
--------------------------------
Ditulis dengan menggunakan:
Host: zaldi-linuxmint
Distro: Linux Mint 19.3 Tricia
Kernel: 5.0.0-32-generic
Desktop: Xfce 4.14.1
Browser: Chromium 87.0.4280.66

Lanjut baca »»

Tipe data merupakan bagian program yang sangat penting, karena tipe data mempengaruhi setiap instruksi atau perintah yang akan dilaksanakan oleh komputer, micro controller unit (MCU), Arduino dan sejenisnya.

Beberapa tipe data yang umum digunakan pada Arduino dan micro controller unit (MCU), antara lain:
  1. bool
    bool kependekan dari boolean, berukuran 1 byte (8 bit), range dari bool hanya 0 dan 1 (false dan true)
  2. char
    char kependekan dari character (karakter), berukuran 1 byte (8 bit), range dari char yaitu -128 s/d 127
  3. byte
    ukuran 1 byte sama dengan 8 bit, range dari byte yaitu 0 s/d 255
  4. unsigned char
    unsigned char itu char tanpa simbol minus, unsigned char sama dengan byte
  5. int
    int kependekan dari integer, berukuran 2 byte (16 bit), range dari int yaitu -32768 s/d 32767 (bilangan bulat)
  6. unsigned int
    unsigned int itu int tanpa simbol minus, berukuran 2 byte (16 bit), range dari unsigned int yaitu 0 s/d 65535
  7. word
    word itu sama dengan unsigned int
  8. long
    long berukuran 4 byte (32 bit), range dari long yaitu -2147483648 s/d 2147483647
  9. unsigned long
    unsigned long itu long tanpa simbol minus, berukuran 4 byte (32 bit), range dari unsigned long yaitu 0 s/d 4294967295
  10. float
    float berukuran 4 byte (32 bit), range dari float yaitu -3,4E38 s/d 3,4E38 (bilangan pecahan)
Untuk operasi matematika, tipe data yang digunakan pada kedua variabel itu harus sama, tipe int harus ditambah, dikurangi, dibagi, dikali dengan tipe int juga. Bila tipe data kedua variabel berbeda, maka hasil operasi matematika tidak akan tepat atau keliru.
--------------------------------
Ditulis dengan menggunakan:
Host: zaldi-linuxmint
Distro: Linux Mint 19.3 Tricia
Kernel: 5.0.0-32-generic
Desktop: Xfce 4.14.1
Player: Audacious 3.9
Browser: Chromium 87.0.4280.66

Lanjut baca »»