WIRING
A. WSN Motor
Wemos Esp
8266 #1
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
Sensor PH
V+ - VCC
G - GND
Po – 32
Sensor TDS
Merah - VCC
Hitam - GND
Biru – 33
2. Penjelasan Direktori
A. Sensor Gateway
B. WSN Sender
C. WSN Receiver
3. Penjelasan Fungsi
A. Sensor Gateway
1. Mesh.cpp
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.
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.
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.
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.