NodeMCU DEVKIT dan Lua

[ [ images & links ] ]
[su_panel border=”3px solid #FFFF33″ radius=”10″]

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.

[/su_panel] [su_panel border=”3px solid #CC99FF” radius=”10″]
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.

[/su_panel] [su_panel border=”3px solid #CC0066″ radius=”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")
[/su_panel] [su_panel border=”3px solid #999900″ radius=”10″]

Gambar 13.

Gambar 14. [ klik gambar untuk memperbesar tampilan ] [/su_panel] [su_panel border=”3px solid #FF9900″ radius=”10″]

Gambar 15.

NodeMCU, Lua, Arduino IDE
[/su_panel]

 

Sublime Text Lua

 

[intense_panel shadow=”11″ border=”1px solid #696161″]

Sublime Text sebagai text editor dapat dipergunakan untuk untuk melakukan pemrograman dalam berbagai bahasa pemrograman. Pada tulisan yang lalu sudah coba saya tampilkan Sublime Text dengan contoh untuk melakukan pemrograman dalam bahasa C (termasuk dialect untuk Arduino), pada artikel berikutnya telah saya sampaikan secara singkat penggunaannya untuk mempermudah pemrograman dalam bahasa Python. Pada artikel ini saya coba sampaikan secara singkat penggunaan ST (Sublime Text) untuk pemrograman dalam bahasa Lua.

[/intense_panel] [su_panel border=”2px solid #CCFF00″ radius=”10″]

Ada beberapa sumber yang menarik untuk dibaca supaya bisa mengerti apakah Lua itu. Setelah saya seleksi beberapa yang paling menarik akan saya cantumkan dalam bentuk tautan (link). Tetapi mari mulai dengan mengutip salah satu sumber, yaitu situs utama Lua:

What is Lua?

Lua is a powerful, efficient, lightweight, embeddable scripting language. It supports procedural programming, object-oriented programming, functional programming, data-driven programming, and data description.

Lua combines simple procedural syntax with powerful data description constructs based on associative arrays and extensible semantics. Lua is dynamically typed, runs by interpreting bytecode with a register-based virtual machine, and has automatic memory management with incremental garbage collection, making it ideal for configuration, scripting, and rapid prototyping. lua.org >> about.html

Secara sederhana bahasa pemrograman Lua cenderung lebih dekat dengan pola penggunaan bahasa Python daripada bahasa C. Pengguna dapat langsung mencoba tiap baris kode dan memperhatikan hasil eksekusinya. Sebelum melanjutkan, Lua perlu diunduh (download) di link ini dan diinstal di sistem.

Lebih lanjut untuk mempelajari Lua, ada beberapa tutorial yang memudahkan untuk mengawali belajar memprogram dalam bahasa Lua. Saya urutkan sebagai berikut:

[/su_panel]
[su_panel border=”2px solid #A6C5FF” radius=”10″]

Setelah mengenal apakah bahasa Lua itu, maka langkah selanjutnya adalah bagaimana malakukan pengaturan agar Sublime Text dapat dipergunakan untuk mempermudah proses pengerjaan program dalam bahasa Lua.

Sebagaimana plugin atau paket lain (semisal untuk bahasa Python), instalasi paket-paket tambahan yang diperlukan untuk bahasa Lua ini akan lebih mudah dilakukan jika menggunakan Package Control.  Jika belum ter-install maka cara instalasi Package Control bisa dibaca dan diikuti pada link ini.

Gambar 1. Package Control telah terinstal dan siap untuk dipergunakan

Dua sumber informasi yang baik yang dapat dipakai untuk memandu instalasi paket untuk Lua adalah:

Berikut adalah paket-paket yang saya instal di Sublime Text untuk pemrograman dalam bahasa Lua:

LuaLove is a package for Sublime Text 2/3 with support for the Love2D API. It is based on SublimeLove, LuaSublime, and lua_snippet.

LuaExtended is a syntax definition and snippet package for Sublime Text 3.

Meskipun tertulis untuk ST 3, paket ini juga dapat berfungsi di ST 2.

Gambar 2. Contoh penggunaan LuaExtended [sumber]

Paket ini berfungsi untuk menyediakan interpreter internal sehingga pengguna dapat mencoba kode program secara interaktif. Sama seperti penggunaannya untuk bahasa Python , paket ini juga berfungsi baik untuk bahasa Lua.

Gambar 3. Penggunan REPL untuk Lua

[/su_panel]
[su_panel border=”2px solid #FF7F44″ radius=”10″]

Terakhir, kita dapat mencoba kode-kode contoh dari link pada bagian pertama artikel ini dengan Sublime Text yang telah konfigurasi sebagaimana pada bagian dua.

Gambar 4. Hasil uji Lua dengan menggunakan build (Ctrl+B)

[/su_panel]