IOT Basic Tutorial

Last updated: January 27 th, 2017

Geeknesia Microcontroller & IOT Starter Kit

Geeknesia Kit

Sebuah Starter Kit Lengkap dari Geeknesia untuk mempelajari IOT dan Micro Controller dengan mudah melalui praktek secara langsung.
Starter Kit ini menyediakan development board ESP 8266 tipe WeMos D1 yang compatible dengan board arduino sehingga mudah dipahami, muda diperlajari, dan mudah dimengerti. Dalam kit ini tersedia komponen elektronik lengkap untuk berbagai keperluan tutorial dan project real.

Read More or Buy Now !

Part 3 ESP8266 HTTP- Send data to Geeknesia using Wifi

Reading requirement :

 

Pada tutorial ini, Anda akan diberikan sebuah contoh untuk mengirimkan PIR sensor ke Geeknesia melalui protokol HTTP. Koneksi internet menggunakan Wifi, pastikan koneksi anda stabil.

Kelengkapan :

  • Modul ESP8266
  • PIR Sensor
  • USB To FTDI
  • Kabel Konektor
  • Wifi Internet Connection

 

Important Note :

  • Data yang dikirim harus valid JSON.
    Anda dapat memeriksa dengan menggunakan JSONLint
  • Fungsi send data dapat dikustomisasi sesuai kebutuhan jumlah attribut yang dikirimkan

 

Wiring Sensor PIR dengan ESP8266 :

Sebelum lanjut membuat program, pastikan wiring antara PIR Sensor dan ESP8266 sudah benar. Perhatikan nilai tegangan pada FTDI yang terpakai karena tegangan supply ke modul ESP8266 tidak boleh melebihi 3.3V DC.

ESP8266PIR Sensor
GNDGND
GPIO0N/A
GPIO2Pin out
VCCVCC 3.3V DC

 

LUA Code :

-- https://github.com/nodemcu/nodemcu-firmware/wiki/nodemcu_api_en
-- One time ESP Setup --
-- setup wifi connection --
wifi.setmode(wifi.STATION)
wifi.sta.config ( "SSID_NAME/WIFI_NAME" , "WIFI_PASSWORD" )  
print(wifi.sta.getip())

--inisial
pin = 4
pinState = 0

--- Get temp and send data to geeknesia.com
function sendData()
gpio_read=gpio.read
gpio.mode(pin,gpio.INPUT)
if (gpio_read(pin)==0) then
   pinState=1
else
   pinState=0
end
print(pinState)

conn=net.createConnection(net.TCP, 0) 
conn:connect(80,'geeknesia.com') 
conn:send("GET /api/data?api_key=API_KEY&attributes={\"motion\":\""..pinState.."\"}\r\n\r\n") 
end

-- send data every X ms to geek
tmr.alarm(2, 30000, 1, function() sendData() end )


Upload script di atas menggunakan Lua Uploader.

 

Penjelasan Program :

  • Baris 9 - 10
    Penentuan pin yang akan dipakai, dalam hal ini adalah GPIO2, pin = 4. Jika ingin menggunakan pin GPIO0 maka pin = 3. pinState digunakan hanya sebagai flag dan inisialisasi value = 0.
     
  • Baris 13 - 20
    Fungsi send data yang dibuat khusus untuk memudahkan pengiriman data dari device ke Geeknesia. Fungsi gpio_read(pin) merupakan suatu perintah untuk membaca input nilai "pin" tertentu pada modul ESP8266. 
     
  • Baris 23 - 25
    Untuk menyambungkan device ke Geeknesia tentunya memerlukan IP Address dari geeknesia.com  dengan PORT "80". Anda harus mengganti API key sesuai dengan device yang digunakan, serta attributes yang dikirim harus berupa JSON.
     
  • Baris 29
    Untuk pengiriman data paling cepat maksimal 30 detik.

 

Setelah selesai, maka script program dapat dijalankan baris per baris menggunakan Button "Execute Selection". Apabila tidak ditemukan error di layar kanan. Setelah itu program dapat diupload ke device ESP8266 menggunakan Button "SAVE to ESP" dengan nama filename : init.lua