Anda di halaman 1dari 11

1.

WIRING

A. WSN Motor

Wiring WSN menggunakan Wemos ESP8266

Wemos Esp
8266 #1

PSU 12V Relay 4 I2C


AHT10 LCD 20 x 4
Step Down Wemos Esp Channel
MP1584 8266 #1

Wiring Wemos ESP8266 #1


D7 – D8 Wemos ESP8266 #2
D8 – D7 Wemos ESP8266 #2
5V – 5V Out + Step Down
G – G Out – Step Down
Wiring Wemos ESP8266 #2
D7 – D8 Wemos ESP8266 #1
D8 – D7 Wemos ESP8266 #1
5V – 5V Out + Step Down
G – G Out – Step Down

Relay
IN1 Relay – D4
IN2 Relay – D0
IN3 Relay – D6
IN4 Relay – D5

LCD 20x4
LCD 20 x 4 SDA – D2
LCD 20 x 4 SCL – D1

AHT10
AHT10 SDA – D2
AHT20 SCL – D1
B. Sensor Gateway
Wiring ESP32 Sensor Gateway

DS18B20 ESP32
Sensor PH
Sensor TDS
ESP-32 OLED – Battery Shield

Temperatur air (DS18B20)


Putih – 26
VCC – 5V
GND – GND

Sensor PH
V+ - VCC
G - GND
Po – 32

Sensor TDS
Merah - VCC
Hitam - GND
Biru – 33
2. Penjelasan Direktori

A. Sensor Gateway

1. File sensorGateway.ino , file untuk inisialisasi sensor, oled dan


painlessMesh library.
2. File lcd_functions.cpp, menampung fungsi untuk tampilan oled dan
data sensor.
3. File mesh.cpp, menampung fungsi untuk mengirim data .
4. File sensor.cpp, menampung fungsi untuk mendapatkan data dari
sensor.
5. File global_var.cpp, menampung variable – variable yang dibutuhkan.

B. WSN Sender

1. File wsnSender.ino, file untuk inisialisasi painlessMesh dan


softwareSerial.
2. File global_var.cpp, file untuk menyimpan variable – variable yang
dibutuhkan.
3. File mesh.cpp, menampung fungsi untuk menerima data dari
sensor node.
4. File send_slave.cpp, menampung fungsi pengiriman dengan
software serial.

C. WSN Receiver

1. File wsnReceiver.ino, file untuk inisialisasi Wifi, Lcd, Serial dan


Sensor.
2. File firebase.cpp, menampung fungsi pengiriman data ke firebase.
3. File global_var.cpp, file untuk menyimpan variable – variable yang
dibutuhkan.
4. File lcd_functions.cpp, menampung fungsi untuk menampilkan
tampilan ke lcd.
5. File receive_master.cpp, menampung fungsi untuk menerima data
dari slave/sender.
6. File sensor.cpp, menampung fungsi untuk mengambil data dari
sensor.
7. File wifi.h, menampung fungsi konfigurasi wifi.

3. Penjelasan Fungsi

A. Sensor Gateway

1. Mesh.cpp

a. Void sendMessage(), mengirim data ke client/wsn.


b. Void receivedCallback(uint32_t from, String &msg), fungsi wajib
untuk painlessMesh.
c. Void newConnectionCallback(uint32_t nodeId), fungsi wajib
untuk painlessMesh.
d. Void nodeTimeAdjustedCallback(int32_t offset), fungsi wajib
untuk painlessMesh.
e. Void changedConnectionCallback(), fungsi wajib untuk
painlessMesh.
f. Void meshSetup(), fungsi untuk menginisialisasi library
painlessMesh.
g. Void meshStart(), fungsi untuk menjalankan library
painlessMesh.
Untuk poin b, c, d dan e lebih jelas lihat di dokumentasi
painlessMesh library

2. Sensor.cpp
a. Void initTds(), fungsi untuk menginisialisasi TDS Meter.
b. Void initSensor(), fungsi untuk menginisialisasi sensor analaog,
yaitu sensor PH dan sensor suhu air.
c. Float readDS(), fungsi untuk membaca suhu air, dengan return
nilai dari sensor suhu air.
d. Float readPH(), fungsi untuk membaca nilai PH, dengan return
nilai dari sensor PH.
e. Int readTds(), fungsi untuk membaca nilai ppm, dengan return
nilai dari sensor TDS.
3. Lcd_functions.cpp
a. Void lcdSetup(), fungsi untuk menginisialisasi built-in oled
eps32.
b. Void textCenter(), fungsi untuk membuat text di oled ke tengah.
c. Void headerTitle(), fungsi untuk membuat text di lcd menjadi
judul di oled.
d. Void headerMenu(), fungsi untuk membuat header menu pada
oled.
e. Void displayToOled, fungsi untuk menampilkan menu yang
sudah dibuat.

B. WSN Sender
1. Mesh.cpp
a. Void receivedCallback(uint32_t from, String& msg), fungsi untuk
menerima data dari sensor gateway.
b. Void newConnectionCallback(uint32_t nodeId), fungsi wajib
untuk painlessMesh.
c. Void changedConnectionCallback(), fungsi wajib untuk
painlessMesh.
d. Void nodeTimeAdjustedCallback(int32_t offset), fungsi wajib
untuk painlessMesh.

Untuk poin b, c dan d lebih jelas lihat di dokumentasi


painlessMesh Library
2. send_slave.cpp
a. Void sendSerialBegin(),fungsi untuk inisialisasi software serial,
setting pin untuk pengiriman data (pin yang digunakan adalah
pin D7 dan D8, diwiring cross), dan setting baudrate untuk
kecepatan pengiriman.
b. Void sendToSlave(), fungsi untuk mengirim data ke
slave/receiver.
C. WSN Receiver

1. Firebase.cpp
a. Void firebaseBegin(), fungsi untuk setting firebase.
b. Void sendToFirebase(), fungsi untuk mengirim data firebase.
Untuk detail lihat di dokumentasi library firebase.
2. Lcd_functions.cpp
a. Void lcdInit(), fungsi untuk inisialisasi lcd.
b. Void lcdBegin(), fungsi untuk menampilkan start-up display.
c. Void updateMenu(), fungsi untuk menampilkan menu pada lcd.
d. Void executeMenu(), fungsi untuk mengesekusi perintah pada
menu.
e. Void reverseExecuteMenu(), fungsi untuk mengesekusi
perintah pada menu.
f. Void displayData(), fungsi untuk menampilkan data sensor ke
lcd.
3. Receive_master.cpp
a. Void receiveSerialBegin(), fungsi untuk inisialisasi software
serial, setting pin untuk pengiriman data (menggunakan pin D7
dan D8 ), dan setting baudrate untuk.
b. Void receiveFromMaster(), fungsi untuk menerima data dari
master/sender, menjalankan fungsi dari button dan
mengeksekusi relay. Note : untuk menghidari bug
penerimaan data dan eksekusi tombol dan relay dijalankan
pada fungsi ini.
4. Sensor.cpp
a. Void sensorInit(), fungsi untuk menginisialisasi sensor aht dan
floating sensor.
b. Float readAht(), fungsi untuk membaca suhu udara dengan
return nilai suhu udara.
5. Wifi.cpp
a. Void wifiBegin, fungsi untuk mengatur wifi pada esp8266 yang
akan menjadi soft AP, untuk menyambungkan wifi melewati
web agar pengaturan wifi menjadi lebih fleksible.

Default SSID dan Password


SSID : FarmingWSN1
Password : farmingf

Note: Untuk password jika ingin mengganti min 7 karakter

4. List Library dan Link Dokumentasi


Semua library ada pada file global_var.h

A. Sensor Gateway
1. Wire : Library pelengkap untuk oled.
2. Adafruit_GFX : Library pelengkap untuk oled.
3. Adafruit_SSD1306 : Library untuk oled. Link library dan
dokumentasi : https://github.com/adafruit/Adafruit_SSD1306
4. OneWire : Library pelengkap untuk sensor temperature air
(DS18B20)
5. DallasTemperature : Library untuk sensor temperature air
(DS18B20). Link library dan dokumentasi :
https://github.com/milesburton/Arduino-Temperature-Control-Library
6. EEPROM : Library pelengkap untuk TDS Meter.
7. GrafityTDS : Library untuk TDS Meter. Link library dan
dokumentasi : https://github.com/DFRobot/GravityTDS
8. painlessMesh : Library untuk mengirim data lewat wifi antar device.
Link library dan dokumentasi :
https://gitlab.com/painlessMesh/painlessMesh

B. WSN Sender
1. SoftwareSerial : Library untuk mengirim data antar esp8266
melewati kabel. Link library dan dokumentasi :
https://github.com/plerup/espsoftwareserial (Library sudah tersedia
default di Arduino IDE, saat menambahkan board esp8266 ke
Arduino IDE).
2. painlessMesh : Library untuk mengirim data lewat wifi antar device.
Link library dan dokumentasi :
https://gitlab.com/painlessMesh/painlessMesh
C. WSN Receiver
1. SoftwareSerial : Library untuk mengirim data antar esp8266
melewati kabel. Link library dan dokumentasi :
https://github.com/plerup/espsoftwareserial (Library sudah tersedia
default di Arduino IDE, saat menambahkan board esp8266 ke
Arduino IDE).
2. Firebase_ESP_Client : Library untuk menggunakan firebase
dengan Arduino. Link library dan dokumentasi :
https://github.com/mobizt/Firebase-ESP-Client
3. EasyNTPClient : Library untuk mengambil waktu dari NTP.
4. WifiUdp : Library pelengkap untuk EasyNTPClient.
5. LiquidCrystal_I2C : Library untuk LCD. Link library :
https://github.com/fdebrabrander/Arduino-LiquidCrystal-I2C-library
Link dokumentasi :
https://github.com/johnrickman/LiquidCrystal_I2C
6. ArduinoJson : Library untuk megolah data JSON di Arduino. Link
library dan dokumentasi : https://arduinojson.org/ .
7. AHT10 : Library untuk membaca temperature udara dari AHT 10.
Link library dan dokumentasi :
https://github.com/enjoyneering/AHT10 .
8. Wire : Library pelengkap untuk AHT10.
5. Penjelasan Menu

A. Sensor Gateway
1. PH Meter : Menunjukkan nilai PH.
2. TDS Meter : Menunjukkan nilai ppm.
B. WSN
1. Display : Untuk menampilkan nilai dari semua sensor.
2. Time : Mengatur interval delay untuk relay.

6. Tata Cara Uploud

A. Sensor Gateway
1. Buka folder sensorGateway, lalu buka file sensorGateway.ino.
2. Setelah Arduino IDE terbuka, install library yang dibutuhkan. Jika
sudah terinstall lewati langkah ini.
3. Install board esp32 dengan cara, buka menu File > Preferences.
Pada opsi Additional Boards Manager URLs klik button window,
lalu copas link dibawah :
https://dl.espressif.com/dl/package_esp32_index.json. Klik Ok
pada menu Additional Boards Manager URLs, Klik Ok lagi pada
menu Preferences. Lalu buka menu Tools > Board > Boards
Manager, lalu cari esp32 dan install. Jika sudah terinstall lewati
langkah ini.
4. Setelah selesai, buka menu Tools > Board > ESP 32 Arduino >
ESP 32 Dev Module.
5. Pilih Port yang tersedia.
6. Lalu uploud code dan tunggu sampai selesai.

B. WSN
1. Buka folder wsnReceiver, lalu buka file wsnReceiver.ino.
2. Setelah Arduino IDE terbuka, install library yang dibutuhkan, Jika
sudah terinstall lewati langkah ini.
3. Install board esp822 dengan cara menu File > Preferences. Pada
opsi Additional Boards Manager URLs klik button window lalu
copas link ini :
https://arduino.esp8266.com/stable/package_esp8266com_index.j
son. Klik Ok pada menu Additional Boards Manager URLs, Klik Ok
lagi pada menu Preferences. Lalu buka menu Tools > Board >
Boards Manager, lalu cari esp8266 pilih versi 2.7.4 dan install.
Jika sudah terinstall lewati langkah ini.
4. Setelah selesai, buka menu Tools > Board > ESP8266 Board
(2.7.4) > LOLIN WEMOS D1 R2 & mini
5. Pilih Port yang tersedia.
6. Lalu uploud code dan tunggu sampai selesai.
7. Ulangi langkah ini untuk wsnSender.

Anda mungkin juga menyukai