Install IoT Stack dengan Docker Compose

Terbaru, saya sedang ada project untuk membuat IoT Stack. Stack ini terdiri dari mqtt broker yang menerima data dari sensor, kemudian ada nodered sebagai penghubung antara broker dengan database. Untuk database saya pakai influxdb. Dan, yang terakhir yaitu Grafana untuk menampilkan data yang sudah disimpan dalam database.

Berikut contoh docker composenya:

version: '3.9'

services:
  mqtt:
    image: eclipse-mosquitto
    container_name: mqtt
    user: "0"
    ports:
      - "1883:1883"
      - "9001:9001"
    volumes:
      - ./mosquitto/config:/mosquitto/config
      - ./mosquitto/data:/mosquitto/data
      - ./mosquitto/log:/mosquitto/log

  nodered:
    image: nodered/node-red
    container_name: nodered
    user: "0"
    ports:
      - "1880:1880"
    dns:
      - "8.8.8.8"
      - "1.1.1.1"
    volumes:
      - ./nodered/data:/data

  influxdb:
    image: influxdb:latest
    container_name: influxdb
    user: "0"
    ports:
      - "8086:8086"
    volumes:
      - ./influxdb/data/influxdb2:/var/lib/influxdb2
      - ./influxdb/data/etc:/etc/influxdb2
    environment:
      - INFLUXDB_ADMIN_USER=admin
      - INFLUXDB_ADMIN_PASSWORD=adminpassword
      - INFLUXDB_DB=mydatabase

  grafana:
    image: grafana/grafana
    container_name: grafana
    user: "0"
    ports:
      - "3000:3000"
    volumes:
      - ./grafana/data:/var/lib/grafana
    environment:
      - GF_SECURITY_ADMIN_USER=admin
      - GF_SECURITY_ADMIN_PASSWORD=adminpassword

Docker compose diatas menggunakan persisten data yang disimpan dalam directory host-nya.

Pengalaman sebelumnya ada kendala soal persisten data untuk influxdb. Sehingga data yang tersimpan hilang saat container dibuat ulang atau dihapus, padahal settingan volume sudah diset dengan benar.

Ketika di-cek di portainer, ada volume yang di-create oleh container influxdb ini, jadi tidak memakai mount directory yang sudah disetting di docker compose.

Ada dua volume yang di-create oleh container. dari dua volume itu akhirnya saya buatkan directory mount nya. Saya coba-coba lagi docker compose down and up lagi dan lagi, akhirnya tidak ter-create volume lagi, dan berhasil mount directory host.

Menambah Custom Field Pada WordPress

Custom Field adalah tempat untuk kita menuliskan atau memasukkan informasi pada sebuah post diluar tempat yang sudah disediakan. Tempat yang sudah disediakan itu adalah Title atau judul postingan. Kemudian ada juga body post atau tempat kita nulis artikel atau postingan. Nah, diluar itu, kita bisa menambahkan jenis lainnya yang disebut dengan custom field.

Secara bawaan ternyata WordPress sudah menyediakan fitur untuk menambah field secara custom. Secara default fitur itu tidak aktif dan kita perlu meng-aktifkannya jika ingin menggunakan fitur tersebut.

Cara aktifkannya yaitu melalui setting yang ada di halaman add new post. Pada bagian button “titik tiga” di pojok kanan atas jika di-klik akan muncul dropdown. Selanjutnya scroll ke bagian bawah dan klik menu Preference. Setelah itu akan muncul pop-up dan disitu ada toggle untuk mengaktifkan custom field di bagian paling bawah.

Untuk wordpress versi lama, settingan ada di menu screen options.

Tetapi, untuk custom field ini, tidak langsung muncul di halawan live view. Jadi kita harus menyiapkan template nya dan di-custom untuk menampilkan field yang sudah kita buat.

Koleksi Mikrokontroller

Setelah tulisan saya yang lalu soal explorasi kembali Arduino, sudah banyak hal yang saya explore dan juga peralatan yang saya beli. Belum semua saya coba memang, karena ketika beli komponen di marketplace online, tidak hanya alat yang mau dibeli saja yang terbeli, tetapi komponen lain yang gak terkait sama project ikut kebeli juga, ntah karena menarik atau ada ide yang tiba-tiba muncul untuk pakai komponen tersebut. Selain itu, harga komponen yang kecil-kecil harganya kecil juga sehingga rugi di ongkir.

Saat ini ada beberapa koleksi mikrokontroller yang sudah ada di meja saya:

  • ESP32 Dev Kit, 1 pcs
  • ESP-01, 2pcs
  • ESP-12F, 2pcs
  • NodeMCU Lolin, 1 pcs
  • Arduino Uno, 2 pcs compatible version dan 1 pcs ori
  • Arduino nano
  • IC lain…

Selain itu masih ada ESP wemos D1 mini yang masih dalam perjalanan.

Memang ada beberapa project yang sedang saya rencanakan untuk dikerjakan pakai masing-masing alat diatas. Masih mengantri satu per satu mana yang akan dikerjakan duluan.

Kembali Bermain Robotika dengan Arduino

Sudah sekitar empat tahun saya punya arduino uno yang hanya saya simpan di laci. Arduino ini dulu saya beli saat sedang ada project mengerjakan pemantauan kondisi suhu dan parameter lain di suatu lingkungan. Bukan bagian saya yang mengerjakan project hardwarenya, tetapi saya ikutan belajar, sehingga saya beli alatnya buat belajar pribadi.

Dalam beberapa waktu terakhir, saya ingin memberikan alternatif kegiatan atau mainan bagi anak yang susah berpaling dari layar. Saya teringat dengan Arduino saya, kebetulan anak juga suka robot, dan saya juga ada minat terpendam tentang robotika, akhirnya saya bangkitkan lagi arduino saya yang sudah saya simpan cukup lama.

Beberapa project yang mungkin akan kita coba diantaranya:

  1. Mobil remote pakai smartphone dengan koneksi bluetooth
  2. Modifikasi software halang rintang
  3. Line follower robot
  4. Explorasi berbagai sensor untuk robotika dan IoT.
  5. Explorasi IoT dengan ESP-32

Sebenarnya ada satu lagi project yang masih ingin saya bangkitkan lagi tapi karena pertimbangan peralatan mungkin untuk sementara ini dulu saja.

Cloudways atau CloudPanel

Cloudways adalah layanan cloud hosting berbasis VPS dimana kita bisa pilih sendiri VPS nya mau pakai layanan dari DigitalOcean, Vultr, AWS, atau yang lain.

Kita bisa host banyak aplikasi yang kebanyakan berbasis PHP dan menyambungkannya dengan domain yang berbeda beda tiap aplikasi.

Settingan PHP nya juga bisa dilakukan per-aplikasi dengan PHP -FPM nya. jadi sangat memudahkan sekali bagi kita yang pengen nge-host banyak aplikasi di satu VPS yang sesuai selera kita.

Sejauh ini layanan cloudways sangat membantu dan gak pernah ada masalah.

Tapi, beberapa hari lalu saya menemukan Cloudpanel, yaitu aplikasi untuk manage VPS yang mirip dengan Cloudways tapi kita hosting internal di VPS kita, walaupun tidak selengkap Cloudways tetapi sudah cukup untuk kebutuhan hosting saya.

Jadi cloudpanel ini diinstall di VPS kita dimana fungsinya untuk memanage VPS agar bisa hosting banyak aplikasi. Bisa PHP ataupun Node JS.

Di DigitalOcean ada marketplace yang bisa bikin droplet sekalian dengan CloudPanel nya, jadi tinggal click dan jadi.

Untuk coba-coba lumayan, bisa menghemat biaya layanan yang biasa dipakai untuk bayar cloudways. Tapi ada biaya lain yaitu waktu dan tenaga kita untuk maintenance sendiri VPS nya.