Secara terus-menerus melakukan sinkronisasi data antara API server dengan Arduino dan mengeksekusi penjadwalan buka/tutup keran otomatis manual.
$
: perintah dieksekusi dengan hak akses pengguna normal
#
: perintah dieksekusi dengan hak akses root, i.e. menggunakan sudo
atau benar^2^ berganti ke user root
- Utils:
- Mengabstraksi pencatatan untuk debugging maupun monitoring
- Mengabstaksi permintaan HTTP dan menguraikan tanggapan JSON
- Menyediakan pembantu untuk mendapatkan nilai murni dari sebuah simpul JSON
- SmartFarmArduino:
- Mengabstraksi pengambilan/pembaruan data dari/ke Arduino, termasuk menangani ketidakstabilan tanggapan terhadap permintaan HTTP ke Arduino
- SmartFarmServer:
- Mengabstraksi pengambilan/pembaruan data dari/ke API server
- SmartFarmHub:
- Sekaligus sebagai program utama
- Membaca konfigurasi dan menyebarkan isinya ke SmartFarmArduino dan SmartFarmServer
- Menghubungkan fungsionalitas dari SmartFarmArduino dan SmartFarmServer
- Melakukan penguraian dan pencocokan jadwal sesuai dengan waktu dan kondisi yang diminta
- Buka smartfarmhub.lpi
- Pilih mode yang akan dibuat via Project Inspector atau Project Options->Build mode, kemudian Run->Build
- Debug (PC): buat versi untuk PC dengan debugging info and logging
- Release (PC): buat versi untuk PC tanpa debugging info and logging
- Debug (RasPi): buat versi untuk Raspberry Pi dengan debugging info and logging
- Release (RasPi): buat versi untuk Raspberry Pi tanpa debugging info and logging
- Atau Run->Compile many modes dan pilih semua mode yang mau dibuat
- Executable yang dihasilkan akan menyesuaikan dengan build mode sehingga namanya tidak bentrok
- Pastikan config.ini dan executable berada pada 1 folder
- Konfigurasi program bergantung pada nilai2 yang terdapat dalam config.ini, sesuaikan dahulu sebelum menjalankan program
- Program tidak memerlukan parameter apapun, jalankan saja apa adanya:
$ ./smartfarmhub
Note: Untuk OS selain Raspbian, silakan cari padanannya sendiri
-
Pastikan Raspberry Pi sudah menyala, SSH server sudah aktif dan berada 1 jaringan dengan PC
-
Buat folder /opt/pismartfarm
[^]: tentu tidak harus di sini, namun berkas service secara default mengasumsikan lokasi ini
di Raspbian:
$ mkdir -p /opt/pismartfarm
-
Pindahkan config.ini dan executable (yang berakhiran -raspi, sesuaikan jika Anda ganti namanya)
$ scp config.ini pismartfarm.debug-raspi <user>@<ip raspberry pi>:/opt/pismartfarm/
-
Pindahkan pismartfarmhub.service:
$ scp pismartfarmhub.service /lib/systemd/system/
- Masukkan SD card Raspbian ke PC
- Sama seperti via SCP di atas, buat folder /opt/pismartfarm
- Menggunakan fitur copy/move file dari PC, pindahkan:
- config.ini dan executable ke /opt/pismartfarm
- pismartfarmhub.service ke /lib/systemd/system
- Pastikan config.ini, executable dan pismartfarmhub.service sudah dipindahkan sesuai cara di atas
- Pastikan isi config.ini, nama executable dan path di pismartfarmhub.service sudah disesuaikan jika anda menggantinya
- Nama executable dalam pismartfarmhub.service diasumsikan sebagai pismartfarmhub saja, tanpa embel^2^ .debug-raspi atau apapun yang lain, ganti jika belum sesuai
- Masuk ke Raspbian, baik langsung di Raspberry Pi maupun via SSH
- Aktifkan service:
# systemctl enable pismartfarmhub
service akan berjalan setelah reboot - Jika ingin langsung dijalankan tanpa reboot dahulu:
# systemctl start pismartfarmhub