Reading requirement :
-
Register
-
Create Project
-
Create Gateway
-
Create device
-
Wiring USB to FTDI dengan ESP8266
-
ESP8266
-
LUA Uploader
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.
ESP8266 | PIR Sensor |
GND | GND |
GPIO0 | N/A |
GPIO2 | Pin out |
VCC | VCC 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 )
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