Reading Requirement:
-
Register (Geeknesia)
-
Create Project (Geeknesia)
-
Create Gateway (Geeknesia)
- Create device (Geeknesia)
Pada project ini akan dibahas tentang Home Scurity Sytem pada bagian pintu rumah, yang dimana sensor akan memberikan sinyal ketika pintu dalam kondisi terbuka atau tertutup.
Contoh gambar aplikasi.
Gambar di atas adalah contoh pemasangan sensor pada pintu, dimana Sensor Magnet terbagi menjadi 2 bagian , bagian fix terpasang di atas pintu dan bagian yang dapat dipindah atau dalam kata lain berpindah ketika buka tutup pintu atau Move, jadi ketika pintu dibuka, sensor akan terbagi 2 menandakan bahwa pintu sedang terbuka, dan sebaliknya ketika pintu tertutup sensor akan saling menempel menandakan pintu sedang tertutup, dan mengirimkan sinyal ke cloud Geeknesia menampilkan kondisi pintu sebenarnya.
Untuk membuat aplikasi ini sangatlah mudah.
Siapkan alat dan bahan yang dibutuhkan:
- Esp8266-12
- Sensor Magnet
- Led
- Resistor 220 Ohm
- Kabel Jumper
- Proto Board
Esp8266-12
|
Sensor Magnet
|
Led
|
Resistor 220 Ohm
|
Kabel Jumper
|
Proto Board |
Software dan Library yang diperlukan:
Adapun tahap pembuatan aplikasi sebagai berikut:
Tahap 1
Pastikan anda sudah membuat Project,Gateway dan Device pada akun Geeknesia anda.
Tahap 2
Rangkaikan FTDI ke ESP8266-12 untuk mengupload program dan supply power ke ESP8266, lihat tabel wiring di bawah ini:
FTDI | ESP8266-12 |
Vcc 3.3 | Vcc 3.3 |
Vcc 3.3 | CH_PD |
Gnd | Gnd |
Gnd | GPIO 0 (Jika mode program) |
Gnd | GPIO 15 |
Rx | Tx |
Tx | Rx |
Tahap 3
Buatlah code pada Arduino IDE yang telah didownload sebelumnya, untuk setting dan konfigurasi software klik di sini.
Sample Code
#include <ESP8266WiFi.h> #include <PubSubClient.h> const char *ssid = "SSID"; // Your SSID const char *pass = "PASSWORD"; // Your Password int buttonState=0; String flag; // device details char *deviceId = "device-9d5e9f151bb2ba337e666415cd3xxxxx"; char *deviceUsername = "190765ba3a8ff26876357819a67xxxxx"; char *devicePassword = "f72d8717b811c3b5aa40b6512e0xxxxx"; String deviceCredential = String(deviceUsername) + ":" + String(devicePassword); IPAddress server(207, 46, 228, 57); // ip geeknesia WiFiClient wclient; PubSubClient client(wclient, server); void senddata(char* topic,String credential, char *var1, String nilai1 ){ String pubString = "{\"code\":\""; pubString += credential; pubString +="\","; pubString +="\"attributes\":{\""; pubString +=String(var1)+"\":\""+nilai1+"\""; pubString +="}}"; char message_buff[pubString.length()+1]; pubString.toCharArray(message_buff, pubString.length()+1); client.publish("iot/data",pubString); } void setup() { Serial.begin(115200); pinMode(2, OUTPUT); // Initialize the BUILTIN_LED pin as an output pinMode(12, INPUT_PULLUP); } // the loop function runs over and over again forever void loop() { if (WiFi.status() != WL_CONNECTED) { WiFi.begin(ssid, pass); if (WiFi.waitForConnectResult() != WL_CONNECTED) return; Serial.println("WiFi connected"); } if (WiFi.status() == WL_CONNECTED) { if (!client.connected()) { if (client.connect(deviceId, "iot/will",0,0,deviceId)) { } } if (client.connected()) client.loop(); } buttonState = digitalRead(12); if (buttonState == 1) { digitalWrite(2, LOW); flag="The Door is Open"; } else { // turn LED off: digitalWrite(2,HIGH); flag="The Door is Close"; } senddata(deviceId,deviceCredential,"Door", flag); delay(5000); }
Jika code atau program sudah dibuat, kemudian upload program ke ESP8266, (Wiring Mode Program).
Tahap 4
Untuk memastikan code atau program berjalan dengan normal, rangkailah Sensor Magnet dan Led yang telah disiapkan seperti gambar di bawah ini:
Tahap 5
Kemudian buka kembali project Geeknesia anda, tes dengan menempelkan Sensor Magnet Fix dan Move seperti gambar di bawah ini.
Lihat status sensor pada IoT Management jika berhasil maka tampilan akan seperti gambar di bawah ini, "The Door is Close" menandakan bahwa pintu sedang tertutup.
Kemudian pindahkan Sensor Magnet Move , seperti gambar di bawah ini: