Netbeans IDE as NodeJS editor

Assalaamualaikum Wr. Wb.

Hi guys, saya ingin share tentang cara membuat agar project nodeJS bisa di buka menggunakan Netbeans IDE. Kebanyakan programmer biasanya menggunakan sublime text untuk editing script, namun kadang diperlukan IDE agar coding style kita lebih mudah dalam pengetikan nya dan menghindari error juga.

So, just make it fast.. Untuk tutorial ini saya menggunakan Netbeans V.8xx sehingga kalau bisa di samakan saja versinya.. kalau netbeans lawas kemudian ketika instalasi ada error, saya ga bertanggung jawab ya.


  1. Buka web https://timboudreau.com/builds/job/NetBeans-NodeJS-Plugin/lastSuccessfulBuild/ dan unduh file NodeJS.nbm
  2. Buka Netbeans, Klik tools->plugin
  3. Klik tab downloaded kemudian add plugins -> pilih file yang telah di download tadi
  4. Jangan dulu di restart, masuk ke tab available plugins dan ketik di kotak search nodejs, kemudian install plugin nya
  5. Restart Netbeans
Bila ada folder yang isinya project NodeJs sekarang bisa dibuka sebagai project, atau bilapun tidak ada, cobalah buat project baru, nanti disana akan tampil project baru untuk nodeJS seperti gambar dibawah:


Sekian tutorial singkat nya, happy ngoding :).

Wassalam
Install Bootloader Arduino Duemilanove

Install Bootloader Arduino Duemilanove

Board Duemilanove mungkin udah jarang banget ada di pasaran, kebanyakan sekarang board yang dijual adalah Arduino Nano. Sama-sama menggunakan ATMEGA328P (ada P nya di belakang loh) tapi bedanya ada di development boardnya. Revisi yang terakhir board nano ini ada menggunakan 2 microcontroller, yang satu nya yaitu ATMEGA16 untuk ISP programmer.

Kali ini saya mau share bagaimana caranya ATMEGA328P yang masih fresh dari toko agar bisa digunakan di development board Duemilanove (Lah terus Nano gimana? Ntar dijelasin juga), ya jaga-jaga kalo tiba-tiba si microcontroller hangus kebakar atau misal ke lock jadi ga mau flashing.

Memangnya gak bisa dipakai langsung ya microcontroller yang baru fresh langsung dipake di DevBoard? Yup, gak bisa sama sekali. Ini beberapa alasan kenapa gak bisa dipakai:

  1. DevBoard menggunakan External Oscillator Crystal 16MHz, sedangkan fresh chip menggunakan internal oscillator 1MHz, jadi perhitungan waktunya beda jauh
  2. Harus dimasukin dulu file Hex untuk bootloader karena system flashing Arduino itu menggunakan bootloader, sedangkan zaman nenek moyang sebelumnya itu menggunakan ISP programmer. Yaa sebelum arduino terkenal, kita masih pake ISP
OK, langsung aja, mari kita ikuti langkah-langkah ini secara seksama, Ini adalah langkah untuk PC berbasis OS Windows:
  1. Siapin Arduino Duemilanove+ATMEGA328P yang sudah tertancap, breadboard, ATMEGA328P fresh dari toko, R 10KOhm 1ea, 1 Osc Crystal 16MHz, 2 ea Capacitor 20pF, kabel kabel jumper
  2. Sebelum wiring dimulai, kita buat Arduino Board agar menjadi ISP terlebih dahulu. Buka Arduino IDE, kemudian cari example ArduinoISP, kemudian upload (CTRL+U) ke DevBoard
  3. Pasang semuanya seperti gambar 
  4. Download AVRDude disini
  5. Extract semua file misal ke D:\avrdude
  6. Buka command prompt kemudian masuk ke directory d:\avrdude
  7. ketik perintah berikut: avrdude -P COM2 -b 9600 -c avrisp -p m328p -v -e -U efuse:w:0x05:m -U hfuse:w:0xDA:m -U lfuse:w:0xFF:m Sebagai catatan, COM2 disesuaikan dengan COM PORT nya arduino (Lihat device manager) sedangkan baudrate 9600 bisa diganti dengan 19200 bila ada masalah can't sync STK500. Langkah ini adalah membuat settingan fuse bit agar microcontroller menggunakan oscillator luar yaitu dari crystal 16MHz
  8. Copy file C:\Program Files (x86)\Arduino\hardware\arduino\avr\bootloaders\atmega\ATmegaBOOT_168_atmega328.hex ke D:\avrdude
  9. ketik perintah berikut: avrdude -P COM2 -b 9600 -c avrisp -p m328p -v -e -U flash:w:ATmegaBOOT_168_atmega328.hex -U lock:w:0x0F:m Ini adalah perintah untuk flashing file hex
  10. Cabut kabel USB, tukar microcontroller yang terpasang di devBoard dengan yang fresh. Ujilah dengan salah satu sample source code arduino kemudian upload seperti biasa.

Sekarang bagaimana caranya bila menggunakan Arduino Nano? Langkahnya sama persis namun langkah ke 7 menjadi seperti berikut: avrdude -P COM2 -b 9600 -c avrisp -p m328p -v -e -U efuse:w:0x05:m -U hfuse:w:0xDE:m -U lfuse:w:0xFF:m 

Hello World Arduino IDE ESP8266 Coding

Hello World Arduino IDE ESP8266 Coding

Bila sebelumnya sudah diterangkan bagaimana caranya men-setup Arduino IDE agar bisa digunakan untuk membuat firmware dan sekaligus digunakan untuk menge-flash nya maka sekarang kita coba membuat program sederhana untuk menuliskan kata "Hello World" ke serial monitor yang biasa dipakai arduino untuk men-debug program dan juga membuat LED agar berkedip setiap ada tulisan Hello World. DevBoard yang saya pakai disini adalah dari Wemos mini. Dikarenakan di Wemos sudah ada terpasang led indikator, maka kita bisa menggunakan LED tersebut untuk bahan percobaan dengan kata yang sudah didefinisikan LED_BUILTIN

void setup() {
  pinMode(LED_BUILTIN, OUTPUT);  
}

void loop() {
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);                     
  digitalWrite(LED_BUILTIN, HIGH);  
  Serial.write("Hello World");
  delay(2000); 
}

Setelah itu pasang DevBoard ESP8266 kalian ke komputer melalui USB, kemudian masuk menu Tools>Port kemudian pilih port mana DevBoard nya.

Kemudian Tekan Ctrl+U untuk meng-compile dan flashing/upload binary hasil compile ke ESP8266. Ketika proses compiling ini biasanya lama, sangat jauh berbeda ketika kita menggunakan NodeMCU firmware.

Bila sudah selesai coba tekan Ctrl+Shift+M untuk melihat debug serial nya.

ESP8266 Family

Untuk makers pemula mungkin membingungkan dengan banyaknya Development Board ESP8266 yang banyak dijual. Karena itu saya coba jabarkan beberapa macam ESP8266 family.

ESP-01 Ini adalah versi pertama dari keluarga ESP8266, namun sayangnya development board ini yang terlalu simple sehingga tidak bisa di koneksikan dengan breadboard langsung melainkan harus menggunakan adapter lagi.










ESP-02 persis sama dengan ESP-01 namun tidak dibuatkan koneksi kaki melainkan harus dibuatkan lagi development board nya. Spesifikasinya sama persis dengan ESP-01








ESP-03 mempunyai GPIO yang lebih banyak









ESP-04 Tidak disediakan antena









ESP-05 Disediakan adapter antenna









ESP-06











 ESP-07











 ESP-08
 ESP-09

ESP-10
 
ESP-11



ESP-12









ESP-12E
Adalah yang paling populer dipakai oleh makers untuk dibuatkan developer boardnya. Beberapa dev board yang memakai ESP-12E adalah NodeMCU dan WEMOS












ESP-13












ESP-14


Sources:
http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family#modules_family

ESP8266 Arduino coding

Kalau sebelumnya saya membahas tentang bagaimana caranya programming ESP8266 dengan menggunakan firmware NodeMCU. Kali ini saya akan membahas flash ESP8266 menggunakan firmware sendiri menggunakan IDE Arduino.

Sebelumnya yang harus disiapkan:

  • ESP8266 Board development (Saya menggunakan Wemos Mini)
  • Arduino IDE terbaru
  • Full internet
  • Persiapan Perut harus kenyang hehe

Setelah instalasi Arduino dan masuk ke IDE nya, pilih menu file kemudian preferences. Kemudian pada kotak Additional Boards Manager URL masukkan URL berikut:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

Kemudian OK dan setelah itu Arduino akan memasangkan board baru untuk ESP8266 family board. Berikut contoh instalasi board manager sudah terpasang:

Sebelum bisa dipakai, beberapa parameter harus disesuaikan dengan board ESP8266. Di gambar diatas ada beberapa pilihan yang harus di setting yaitu:
  • CPU frequency: default nya adalah 80 MHz, karena memang ESP8266 menggunakan frequency clock di 80 MHz
  • Board : Karena saya menggunakan WEMOS Mini, saya pilih board tersebut
  • Flash Size: Untuk beberapa modul ESP ada perbedaan, masing masing mempunya kapasitas memory yang berbeda, bisa dibaca di datasheet/web yang menyediakan board ESP8266 menggunakan tipe ESP berapa atau baca di Postingan saya selanjutnya untuk mengetahui beberapa tipe ESP8266
  • Upload speed: 115200 adalah defaultnya, bisa saja dipertinggi namun beberapa kasus ESP8266 tidak bisa mengenali bila kecepatan upload diatas baud rate default

Lalu apa bedanya pemrograman ESP8266 menggunakan AT-Command yang sama-sama menggunakan arduino IDE? Yang paling mendasar adalah bila menggunakan AT-Command artinya Kita menggunakan 1 board arduino(tipe apapun entah nano, yun dll) dan satu board ESP8266.

Sedangkan yang saya bahas kali ini seperti nodeMCU, Firmware ESP8266 yang kita buat untuk langsung mengendalikan GPIO dan fungsi lainnya sehingga lebih hemat tempat juga hemat biaya.


Sekian,


Fadli
1000 Startup Digital

1000 Startup Digital



Terima kasih 1000 startup digital,

Dengan mendatangkan beberapa speaker yang keren cool dan yg pasti patut ditiru langkahnya, saya jadi semakin menginginkan untuk bisnis di bidang teknologi. Dari sekian banyak speaker, beberapa saya ambil kesimpulan penting bagi saya yang sedang membuat prototype produk. Diantaranya yaitu making the product by the problem to make it solve, kemudian diadakan dahulu market validation yaitu agar mengetahui bahwa memang produk kita akan benar-benar dibutuhkan oleh konsumen seperti contoh CEO eFishery, dia mencoba melakukan market validation ke si Pak Haji yang juga sesama bisnis kolam ikan untuk ditawarkan produknya dan mendapatkan feedback kebutuhannya. Dan dalam hal ini konsumen harus kita targetkan untuk segmen mana, sebisa mungkin memilih semen yang memudahkan kita untuk deploy produk kita.

Dari permasalahan dan market validation maka inovasi produk diwujudkan dalam bentuk prototype/produk jadi. Dan dalam hal ini inovasi terbagi dua yaitu inovasi produk
yang memang belum pernah ada sebelumnya dan inovasi produk dalam hal penambahan fitur atau perbaikan-perbaikan dari produk sebelumnya.

Kemudian kita yang akan menjadi calon founder harus memiliki beberapa karakter yaitu:
- pantang menyerah (Modal wajib)
- mencari masalah dan menjadikan masalah tersebut menjadi potensi/peluang bisnis


Itulah beberapa kesimpulan yang saya tangkap dari hasil ignition. Mudah-mudahan bisa diterapkan di kehidupan di bisnis dan sehari-hari.


Cheers,


Fadli

Thing Speak sebagai visualisasi data IOT

Pernah ga, ada rasanya penasaran ketika di rumah cuaca pada jam sekian sama jam sekian berapa celcius, kemudian berapa kelembabannya. Nah sekarang daripada bengong mending ikut proyek kecil buat monitoring temperature dan kelembaban rumah.

Alat dan bahan:
- ESP8266 esp01 cukup 1 buah (flash dengan firmware nodeMCU)
- Power bank
- Sensor DHT22
- Otak yang masih segerr
- Kopi kalau ada

Koneksikan DHT22 dengan ESP8266 dengan wiring sebagai berikut:

Kemudian, buat account di thingspeak.com dan bila dibutuhkan authentikasi by email, di authentikasi dulu agar lancar kesananya.

- Di tab Channel, create new channel
- Kemudian masukkan beberapa detail seperti nama chanel misal "Monitor rumah orang"
- Field1, field2 ...etc adalah tempat kita nanti memasukkan data dari node kita (ESP8266 mksdnya)
- centang Field1 dan Field2, kemudian ubah nama Field1 menjadi Temperature dan Field2 menjadi Humidity. Dan save channelnya.
- Setelah itu akan didapatkan API key
- Coba tes menggunakan browser apapun dan ketik di alamatnya: http://api.thingspeak.com/update?key=YOUR_API_KEY&field1=40&field2=70
setelah itu coba masuk ke tab Private/public view, maka akan ada satu titik disana

Kembali ke hardware, berikut adalah source codenya, mudah-mudahan bisa dipahami hehe:
--tes TCP Connection
    INPUT_DHT = 3 
        ssid = blabla
             pwd = 1234567890987654321 
require "dht_lib"
CHANNEL_API_KEY = "YOUR_API"
gpio.mode(INPUT_DHT, gpio.INPUT);

wifi.setphymode(wifi.PHYMODE_N);
wifi.setmode(wifi.STATION);
wifi.sta.disconnect();
wifi.sta.config(SSID, PWD);
repeat
  print("connecting to AP...\r\n"
  wifi.sta.getip());
  tmr.delay(1000)
  Until wifi.sta.getip()~=nil
local ip, br, gate = wifi.sta.getip()
Print('IP Address:',ip,'\r\nBroadcast:',br,'\r\nGateway: ',gate);

function bebeb()
    soket = net.createConnection(net.TCP,0)
    status,temp,humi,temp_decimial,humi_decimial = dht.readxx(INPUT_DHT)
    if( status == dht.OK ) then
        -- Float firmware using this example
        temperature = string.format("%d.%03d",
        math.floor(temp),
        temp_decimial)
        humidity = string.format("%d.%03d",
        math.floor(humi),
        humi_decimial)               
    end
    request = "GET /update?api_key="..CHANNEL_API_KEY..
              "&field1="..temperature.."&field2="..humidity.." HTTP/1.1\r\n"..
              "Host: api.thingspeak.com\r\n"..
              "Connection: close\r\n"..
              "Accept: */*\r\n"..
              "User-Agent: Mozilla/4.0 (Compatible; NodeMCU)\r\n\r\n"
    soket:on("connection", function(conn,payload)
    soket:send(request)
    end)
    soket:on("receive", function(conn,payload)
    --print(payload)
    end)
    soket:on("disconnection", function(conn,payload)
    soket:close()
    collectgarbage()
    end)
    --print(request)
    soket:connect(80,"api.thingspeak.com")
end

tmr.alarm(2,15000,1, function() bebeb() end)


maka hasilnya akan seperti ini kira-kira: