Arduino ESP8266 WiFi Shield v1.0 WangTongze

[ [ images & links ] ]

Gambar 1. Posisi  switch ON [ Klik gambar untuk memperbesar tampilan ]

Gambar 2. Posisi  switch OFF [ Klik gambar untuk memperbesar tampilan ]

[table id=2 /]

Pengaturan switch untuk tiga mode: flashing/reprogramming ESP8266, komunikasi Arduino ⇔ ESP8266 (system run), Arduino programming

1. flashing/reprogramming ESP8266

Konfigurasi untuk pemrograman modul ESP8266  dengan atau tanpa secara fisik terhubung dengan papan Arduino. Memutus jalur komunikasi serial (hardware), OFF di sw1 dan sw2. Posisi ON pada sw3 (DFU: Device Framework Upgrade) dan posisi ON pada sw4 (lampu LED indikator DFU).

[table id=3 /]

Gambar 3.

2. Arduino programming

Konfigurasi untuk pemrograman papan Arduino dengan shield ESP8266 yang masih terhubung secara fisik.

[table id=4 /]

Gambar 4.

3. komunikasi Arduino ⇔ ESP8266 (system run)

Konfigurasi untuk kondisi saat Arduino bekerja dan berkomunikasi melalui serial hardware dengan modul ESP8266.

[table id=5 /]

Gambar 5.

Gambar 6. [sumber]

 

Gambar 7.

Gambar 8.

Gambar 9. FTDI FT232RL

Gambar 10. Kondisi tegangan kerja 5 V

Gambar 11. Kondisi tegangan kerja 3.3 V

Gambar 12.

Percobaan didahului dengan mengosongkan program pada papan Arduino Uno (Gambar 12). Mengetahui kondisi ESP8266 (Gambar 13), konfigurasi switch mengikuti Gambar 3.

Kondisi peneriksaan semua switch OFF. Kadang-kadang perlu melepas lalu kemudian memasang ulang koneksi kabel USB. Kadang-kadang perlu menekan-tahan tombol reset di shield. Pada beberapa percobaan, penekanan tombol reset saat menunggu jawaban dari papan dapat menggantikan keperluan lepas-pasang koneksi kabel USB. Percobaan berhasil pada tegangan kerja 5 V maupun 3.3 V, dengan penyesuaian pengaturan kabel dari papan FTDI RS232 ke papan WiFi shield  (ESP8266).

Gambar 13.

esptool.py -p /dev/ttyUSB0 flash_id

Perintah penghapusan program di ESP8266, jika diperlukan (Gambar 14), kondisi switch mengikuti Gambar 3.

Gambar 14.

esptool.py -p /dev/ttyUSB0 erase_flash

 

Perintah pengisian firmware program di ESP8266 (Gambar 15), kondisi switch mengikuti Gambar 3.

Gambar 15.

esptool.py write_flash 0x0 ai-thinker-v1.1.1.bin

esptool.py --port /dev/ttyUSB0 write_flash -fm dio 0x00000 ai-thinker-0.9.5.2-115200.bin

Melakukan pemeriksaan kondisi firmware dengan ESPlorer (Gambar 16). Cara yang sama dapat dipakai untuk memberikan perintah AT command.

Kembalikan konfigurasi switch seperti pada Gambar 3 menjadi konfigurasi switch seperti pada Gambar 4.

Gambar 16.

Gambar 17, upload firmware dengan memanfaatkan NodeMCU PyFlasher. Konfigurasi swicth seperti pada Gambar 3.

Gambar 17.

Gambar 18 dan Gambar 19, koneksi ke ESP8266 dengan software moserial, pengaturan switch seperti pada Gambar 4.

Gambar 18.

Gambar 19.

esptool.py write_flash 0x0 ai-thinker-0.9.5.2-9600.bin

esptool.py -p /dev/ttyUSB0 flash_id

Gambar 20, modifikasi Software Serial untuk pengiriman AT command.

Gambar 20.

#include <SoftwareSerial.h>

SoftwareSerial esp8266(10,11); //RX TX

void setup()
{
  Serial.begin(9600);
  
  Serial.println("Hardware serial: aktif");
  Serial.println("");

  esp8266.begin(9600);
}


void loop()
{
  if (Serial.available() > 0)
  {

    byte b = Serial.read();
    esp8266.write(b);
  }

  if (esp8266.available() > 0)
  {
    
    byte b = esp8266.read();
    Serial.write(b);
  }
}

Gambar 21. Koneksi silang untuk SoftwareSerial Rx ⇒ Tx, Tx ⇒ Rx.

 

NodeMCU DEVKIT dan Lua

[ [ images & links ] ]

pinout.pngGambar 1. NodeMCU [sumber]

https://i-esan.com/wp-content/uploads/2013/06/nodemcu_v2_pin_map.pngGambar 2. [sumber]http://c.tutti.ch/images/esp8266-nodemcu-v3-base-board-protoshield-mit-spannungsregle-6355190634.jpgGambar 3. NodeMCU + Base yang tidak memerlukan tambahan adapter [sumber]

Gambar 4. NodeMCU v0.9 pinout [sumber]

Perbedaan antara v0.9 dan v1.0:

If you are going to purchase a NodeMCU board it’s important to know there are two official versions:

  • NodeMCU v0.9 with ESP-12 module
  • NodeMCU v1.0 with ESP-12E module

The main complain about NodeMCU v0.9 is that while it fits on the breadboard, you can’t use as it takes the full width of the board, while NodeMCU v1.0 is really breadboard-friendly as you can see on the right part of the picture above.

wget https://github.com/nodemcu/nodemcu-firmware/releases/download/0.9.6-dev_20150704/nodemcu_integer_0.9.6-dev_20150704.bin
$ /home/sunu/.arduino15/packages/esp8266/tools/esptool/0.4.9/esptool -p /dev/ttyUSB0 erase_flash
$ clear; esptool.py --port /dev/ttyUSB0 flash_id

$ reset; esptool.py --port /dev/ttyUSB0 write_flash -fm dio 0x00000 nodemcu_integer_0.9.6-dev_20150704.bin

$ reset; esptool.py --port /dev/ttyUSB0 write_flash 0x00000 nodemcu_integer_0.9.6-dev_20150704.bin

$ reset; esptool.py --port /dev/ttyUSB1 write_flash -fm dio 0x00000 nodemcu_integer_0.9.6-dev_20150704.bin

$ reset; esptool.py --port /dev/ttyUSB0 write_flash 0x00000 nodemcu-master-7-modules-2017-07-03-14-56-15-integer.bin

Gambar 5.

Gambar 6.

Lakukan hardware reset pada nodeMCU DevKit, setelah menekan Connect pada Moserial.

Gambar 7.

Gambar 8.

Gambar 9.

Lakukan hardware reset pada nodeMCU DevKit, setelah menekan Open pada ESplorer.

Gambar 10.

Gambar 11.

pin = 0
gpio.mode(pin,gpio.OUTPUT)
print("tinker.sunupradna.info")
while 1 do
    gpio.write(pin,gpio.HIGH)
    tmr.delay(100000)
    gpio.write(pin,gpio.LOW)
    tmr.delay(100000)
end

Gambar 12. [ klik gambar untuk memperbesar tampilan ]

~/workspace/LUA/LED_blink $ nodemcu-tool devices
[NodeMCU] Connected Devices | Total: 1
	  |- /dev/ttyUSB0 (Silicon_Labs, usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0)
~/workspace/LUA/LED_blink $ nodemcu-tool --connection-delay 200 -p /dev/ttyUSB0 -b 9600 run blink_led_001.lua 
[NodeMCU-Tool] Connected
[NodeMCU] Version: 0.9.6 | ChipID: 0x74b61 | FlashID: 0x1640e0
~/workspace/LUA/LED_blink $ nodemcu-tool --connection-delay 200 -p /dev/ttyUSB0 -b 9600 upload blink_led_001.lua 
[NodeMCU-Tool] Connected
[NodeMCU] Version: 0.9.6 | ChipID: 0x74b61 | FlashID: 0x1640e0
[NodeMCU-Tool] Uploading "blink_led_001.lua" >> "blink_led_001.lua"...
[NodeMCU-Connector] Transfer-Mode: hex
[NodeMCU-Tool] File Transfer complete!
~/workspace/LUA/LED_blink $ nodemcu-tool init
[NodeMCU-Tool] Creating project based configuration file..
[NodeMCU-Tool] Baudrate in Bit per Seconds, e.g. 9600 (default) (9600) 9600
[NodeMCU-Tool] Serial connection to use, e.g. COM1 or /dev/ttyUSB2 (/dev/ttyUSB0) /dev/ttyUSB0


~/workspace/LUA/LED_blink $ nodemcu-tool run blink.lua
[NodeMCU-Tool] Project based configuration loaded
[NodeMCU-Tool] Connected
[NodeMCU] Version: 0.9.6 | ChipID: 0x74b61 | FlashID: 0x1640e0


~/workspace/LUA/LED_blink $ nodemcu-tool upload init.lua 
[NodeMCU-Tool] Project based configuration loaded
[NodeMCU-Tool] Connected
[NodeMCU] Version: 0.9.6 | ChipID: 0x74b61 | FlashID: 0x1640e0
[NodeMCU-Tool] Uploading "init.lua" >> "init.lua"...
[NodeMCU-Connector] Transfer-Mode: hex
[NodeMCU-Tool] File Transfer complete!

init.lua

--**delay sebelum loop**
--dofile("blink_led_001.lua")

print("tinker.sunupradana.info")

Gambar 13.

Gambar 14. [ klik gambar untuk memperbesar tampilan ]

Gambar 15.

NodeMCU, Lua, Arduino IDE

 

NodeMcu adapter

 

Harapan itu memang kadang tidak menjadi kenyataan, begitulah kenyataan hidup 🙂 . Kadang-kadang perlu kerja ekstra seperti ini.

Tinkering kali ini dilakukan karena ukuran papan yang seharusnya menjadi adapter ternyata tidak cocok dengan ukuran papan sistem NodeMCU. Karena itu papan adapter memerlukan adapter lagi 😀 .  Untung saja apa yang harus dilakukan tergolong mudah.

https://www.aerial.net/shop/imageslarge/IOT-NMCUBase_main.jpgGambar 1. NodeMCU adapter/base [sumber]

Gambar 2. NodeMCU + adapter/base

pinout.pngGambar 3. NodeMCU [sumber]

https://i-esan.com/wp-content/uploads/2013/06/nodemcu_v2_pin_map.pngGambar 4. [sumber]http://c.tutti.ch/images/esp8266-nodemcu-v3-base-board-protoshield-mit-spannungsregle-6355190634.jpgGambar 5. NodeMCU + Base yang tidak memerlukan tambahan adapter [sumber]