Gara-gara MQTT, Tersesat di Rimba IoT

Karena membantu kawan mengerjakan tugas S2 tentang message broker, akhirnya saya tersesat dalam rimba IoT. Dari MQTT akhirnya mengenal EMQX dan Mosquitto (Server MQTT), Grafana (Iot Monitoring). Node-Red (Control, Monitoring dan Gateway) IoT.

Kemarin menginstall Node-Red karena Grafana hanya sebuah Iot Monitoring, dan tidak bisa dijadikan controlling.

Ada artikel menarik yang mengintegrasikan beberapa teknologi IoT. Dan lebih menarik lagi, semuanya disatukan dalam Docker.

Teknologi-teknologi itu adalah:

  • Grafana
  • InfluxDB
  • Mosquitto
  • Node-RED
  • Portainer-CE

Dalam artikel itu memang aplikasi diinstall dalam Raspi4. Tapi raspi4 itu mahal Om. Untung di Indonesia ada STB bekas 🙂

Berikut artikel yang bisa kamu baca. Ada Youtubenya lagi 🙂

Okey semangat pagi, salam IoT 🙂

Perbandingan PHP Runtime

Membaca artikel Performance benchmark of PHP runtimes, sangat menarik. Disana ditampilkan perbandingan beberapa PHP Runtime. Ternyata banyak juga php runtime yang belum pernah saya ketahui namun memiliki performa yang mantab.

Nampaknya Nginx unit atau FrankenPHP (worker mode) bisa menjadi pertimbangan. Performa Swoole kelihatannya mantab, namun kabarnya ada banyak kode  yang harus diubah kalau menggunakan Swoole.

Ya, PHP memang mempunyai isu yang kurang baik terkait performanya yang kurang gegas dan rakus sumberdaya. Saya sendiri yang mengelola LimeSurvey sangat merasakannya. Kalau sudah senggang, pengin  mencoba FrankenPHP untuk menjalakan LimeSurvey.

Memahami Cara Kerja MQTT

MQTT adalah salah satu jenis sistem message broker sederhana yang biasanya digunakan untuk komunikasi di iOT. Dalam tulisan ini akan dijelaskan bagaimana MQTT bekerja.

MQTT bekerja dengan cara seperti ini:

Dalam simulasi ini akan saya buat:

  1. Publisher (dalam python)
  2. Subsciber (dalam python)
  3. Subscriber (simulator ESP32)  yang bisa kamu akses disini -> https://wokwi.com/projects/416796578413329409

Untuk file Python pada item 1 dan 2 bisa kamu copy disini https://github.com/achedy/dasar-mqtt

Jangan lupa untuk install library paho.mqtt di Python.

Dan silahkan nikmati tutorial videonya disini

Semoga membantu …

Membuat Diagram dengan Excalidraw

Sering kita kesulitan untuk membuat diagram. Ada Visio, namun terlalu besar, berat dan berbayar.

Saya menemukan yang ringan, karena berbasis web. Excalidraw. Kamu bisa mengaksesnya melalui https://excalidraw.com/

Aplikasi ini  berbasis PWA, Progressive Web Application, sehingga bisa kita “install” dan gunakans ecara offline.

Sangat ringan dan buagus 🙂

Download Mp3 dari Youtube

Saya suka mendengarkan lagu dalam format mp3. Namun mendapatkan format mp3 ini tidak mudah didapat. Hari ini yang ada mpeg (lagu dengan video) yang didownload langsung dari Youtube.

Saya masih tertarik mendengarkan mp3nya saja. Video itu hanya menambah-nambah ukuran file saja.

Memang ada beberapa aplikasi online konversi dari URL Youtube ke Mp3, namun penuh kelemahan, seperti adanya iklan berbasis link yang tidak masuk akal sampai pada tidak bisa download mp3 yang panjang.

Akhirnya dengan bantuan ChatGPT, saya membuat program untuk mengatasi hal tersebut :

# pip install yt_dlp
import yt_dlp
def getmp3(url):
    ydl_opts = {
        "format": "bestaudio/best",
        "postprocessors": [{
            "key": "FFmpegExtractAudio",
            "preferredcodec": "mp3",
            "preferredquality": "192",
        }],
    }
    try:
        with yt_dlp.YoutubeDL(ydl_opts) as ydl:
            ydl.download([url])
        return True  # Berhasil
    except yt_dlp.utils.DownloadError as e:
        print(f"Error: {e}")
        return False  # Gagal

while True:
    url = input("Enter the URL of the video you want to download: \n>> ").strip()
    
    if not url:
        print("No URL entered. Please try again.")
        continue  # Kembali meminta URL jika kosong

    # Coba unduh URL
    if getmp3(url):
        print("Download successful! \n\n")
        continue  # Kembali meminta URL jika masih mau input URL kembali
    else:
        print("Invalid URL or an error occurred. Please try again.")

Namun sering library seperti ini cepat tidak bekerja seiring layanan yang menutup celah agar tidak bisa di dlownload.