Membaca PZEM-017 Dengan ESP 8266

Disclimer dulu bahwa ini sebenarnya adalah cerita eksperimen yang hampir sama dengan cerita sebelumnya tentang membaca PZEM-017 dengan Wemos D1 Mini. Tetapi di tulisan ini saya akan lebih membahas kendala yang muncul kembali setelah sebelumnya berhasil.

Hampir seharian saya nyari penyebab kenapa pembacaan nilai PZEM-017 yang dulu berhasil, kenapa sekarang jadi gagal. Setidaknya ada beberapa faktor berikut sesuai pengalaman saya kemarin.

Baterai (Sumber Tegangan) Tidak Tersambung

Ternyata input test voltase yang akan kita ukur, dalam skema rangkaian yang ada dibelakang digambarkan baterai, harus disambungkan dengan pzem-017. Sebelumnya saya berasumsi bahwa karena pzem-017 sudah saya kasih tegangan 5v dari sumber lain sehingga tidak perlu menyambung sumber, ternyata ini jadi salah satu penyebab tidak terbacanya data.

Tx dan Rx yang Terbalik

Hal yang tidak saya duga bisa terjadi adalah sambungan Tx dan Rx yang terbalik. Dari berbagai referensi, Tx ESP harusnya tersambung dengan Rx nya modul TTL to RS485, bgeitu juga sebaliknya dengan Rx nya tersambung dengan Tx. Tetapi secara desperate saya balik, ternyata secara mengejutkan malah bisa terbaca datanya. Dari referensi saya dapatkan bahwa ternyata bisa jadi penamaan label modulnya yang tidak sesuai standar. Misalnya Tx itu yang harusnya transmit, bisa jadi bermaksud bahwa di titik itu tempat tersambungnya Tx dari lawannya.

Kesimpulan

Dari beberapa hari experimen ini, sudah ada satu modul pzem-017 yang rusak. Ketika diberikan catu daya 5v, seakan terjadi korsleting, sehingga menimbulkan reaksi pada power supply yang menyediakan tegangan.

Sudah seharusnya kita membaca dokumentasi atau datasheet dari modul yang akan kita pakai, cuma masalahnya tidak semua modul memiliki datasheet, terutama modul-modul murah yang tidak disertai datasheet. Apalagi karena populer dan murah, banyak versi dan juga versi kw nya.

Setup Docker Container untuk CodeIgniter 4, MySQL (Debian), dan phpMyAdmin

🧭 Awal Mula: Ide Membuat Kontainer Dev

Saya ingin membuat lingkungan pengembangan berbasis Docker untuk CodeIgniter 4, agar proses development lebih stabil, portable, dan mudah direplikasi. Untuk itu, saya butuh stack yang terdiri dari:

  • Apache + PHP untuk menjalankan CI4
  • MySQL sebagai database backend
  • phpMyAdmin sebagai UI administrasi database
  • Aktifnya mod_rewrite agar CI4 bisa routing tanpa index.php

🏗️ Merancang Dockerfile dan docker-compose.yml

Alih-alih menggunakan image php:8.2-apache secara langsung, saya memutuskan membuat Dockerfile kustom agar bisa mengaktifkan mod_rewrite dan menyusun konfigurasi Apache sesuai kebutuhan.

📄 Dockerfile untuk Apache + PHP

Dockerfile

# Menggunakan image dasar PHP dengan Apache
FROM php:8.2-apache

# Perbarui package manager dan install ekstensi yang diperlukan
RUN apt-get update && apt-get install -y \
    libicu-dev \
    libpq-dev \
    unzip

# Aktifkan ekstensi PHP Intl 
RUN docker-php-ext-install intl 

# Aktifkan mod_rewrite Apache
RUN a2enmod rewrite

# Restart Apache agar perubahan berlaku
RUN service apache2 restart

EXPOSE 80
CMD ["apache2-foreground"]

📄 apache-config.conf

apache

<VirtualHost *:80>
    DocumentRoot /var/www/html
    <Directory /var/www/html>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

📦 docker-compose.yml

yaml

name: 'ci4app'

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: ci4_app
    ports:
      - "8080:80"
    volumes:
      - ./ci4:/var/www/html
    depends_on:
      - db

  db:
    image: mysql:8.0-debian
    container_name: mysql_db
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: ci4db
      MYSQL_USER: ci4user
      MYSQL_PASSWORD: ci4pass
    volumes:
      - ./mysql:/var/lib/mysql

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: phpmyadmin
    ports:
      - "8081:80"
    environment:
      PMA_HOST: db
      PMA_USER: ci4user
      PMA_PASSWORD: ci4pass
    depends_on:
      - db

⚠️ Masalah yang Terjadi: MySQL Error x86-64-v2

Saat pertama kali saya jalankan stack ini dengan docker compose up --build, CI4 langsung muncul di port 8080, tapi phpMyAdmin gagal tersambung ke database.

Setelah saya cek log mysql_db, ternyata muncul error:

Fatal glibc error: CPU does not support x86-64-v2

Saya baru sadar kalau image mysql:8.0 berbasis Oracle Linux 9 yang butuh CPU dengan dukungan modern. Dan processor saya belum mendukung x86-64-v2 😅.

🔄 Solusi: Ganti dengan mysql:8.0-debian

Setelah mencari tahu, saya menemukan kalau image mysql:8.0-debian lebih ringan dan tidak butuh instruksi CPU canggih. Saya langsung ganti di docker-compose.yml:

yaml

image: mysql:8.0-debian

Lalu saya jalankan ulang:

bash

docker compose down
docker compose up --build -d

Dan… berhasil! 🎉 Semua kontainer hidup dengan baik, CI4 bisa routing dengan .htaccess, dan phpMyAdmin langsung tersambung ke database.

✅ Kesimpulan

  • Gunakan Dockerfile untuk kontrol penuh terhadap konfigurasi Apache dan PHP.
  • Aktifkan mod_rewrite dengan a2enmod rewrite agar CI4 tidak butuh index.php.
  • Gunakan mysql:8.0-debian jika CPU kamu tidak mendukung x86-64-v2.
  • Pantau log dan error agar lebih cepat mendeteksi masalah.

Mengganti Lampu Sein dan Senja CRV Gen 3

Kemarin baru sadar kalau ternyata nambah satu lampu lagi yang mati di CRV gen 3. Setelah sebelumnya lampu senja sebelah kiri mulai lemah, lampu sein sebelah kiri ternyata mati juga.

Setelah beberapa kali klik untuk browsing lampu-lampu di marketplace online, saya akhirnya memutuskan untuk mengganti lampu sein dengan lampu yang sejenis, artinya saya tidak melakukan modif atau mengganti dengan lampu jenis lain.

Sedangkan untuk lampu senja, saya coba mencari alternatif dari yang sudah ada. Saya menemukan lampu senja yang bisa diganti-ganti warnanya dan sepertinya menarik. Warna lampu ini bisa diganti menggunakan remote yang sudah disediakan, jadi tidak seperti lampu lain yang biasanya perlu dinyala-matikan untuk mengganti warna.

Dengan berbekal referensi di youtube, saya ganti sendiri lampu sein dan lampu senja. Awalnya agak sedikit kesulitan karena posisinya sangat sempit. Dengan sedikit tekanan, akhirnya saya bisa buka rumah lampu senja dan memasang lampunya.

Sempet terjadi kegagalan karena lampu tidak nyala setelah dipasang. Setelah diotak-atik tetep tidak menyala. Sempet nyala sebentar tapi kemudian mati. Saya coba cek sekring ternyata putus. Dan memang dari penjualnya sudah memberikan warning kalau lampu mati, kemungkinan sekring yang putus karena watt nya lebih besar dari lampu biasanya. Saya ganti dengan nilai sikring setingkat lebih tinggi dan normal nyala kembali.

Membuat Server Foto seperti Google Photos

Seminggu ini saya agak mengesampingkan project PLTS ataupun mikrokontroller saya. Perhatian saya tersita oleh riset dan eksperimen untuk mencari alternatif atau cara agar saya tidak ketergantungan dengan layanan google photos. Pasalnya, storage saya di google one, suatu layanan storage dari google berbayar, sudah mulai mendekati penuh.

Selama beberapa tahun ini, lupa dari sejak kapan, saya berlangganan google storage sebesar 100 GB. Penyimpanan ini termasuk untuk gmail, drive, dan google photos. Layanan ini sangat membantu saya yang memang seneng fotografi, mengabadikan momen, dan suka menata arsip digital terutama foto. Saya tidak perlu pusing kehilangan hasil jepretan karena secara otomatis foto-foto saya di-backup ke cloud oleh google photos, selain backup manual yang sering saya lakukan juga ketika HP penuh.

Saya lebih percaya hasil backup google photos daripada backup manual yang sudah saya lakukan. Backup manual sering kali menyebabkan redundancy dan juga kemungkinan foto yang ter-skip. Selain itu, kedisiplinan dalam membuat kerapihan pengarsipan foto digital kadang naik dan turun sehingga tidak konsisten.

Alternatif Solusi

Seminggu yang lalu, sejak tulisan ini dibuat, saya menemukan solusi open source sebagai alternatif dari Google Photos. Ada beberapa produk yang direkomendasikan oleh AI dan salah satunya bernama Immich. Sampai sekarang saya masih amazed dengan Immich, mirip sekali dengan Google Photos. Bagi orang yang sudah terbiasa pakai google photos, saya yakin akan mudah sekali menyukainya. Fitur-fitur seperti people face recognition, smart search, timeline, maps, dll, tersedia juga di immich. Hal ini tidak terlepas dari kemajuan teknologi machine learning yang juga disematkan di immich.

Setelah itu saya terbawa suasana hingga melakukan eksperimen penuh dengan immich. Awalnya saya coba di laptop untuk melakukan evaluasi dari fitur-fitur dan pengalaman pengguna. Cukup puas dengan eksperimen lokal di laptop, saya tingkatkan dengan eksperiman di lingkungan server, sehingga bisa terintegrasi juga dengan smartphone.

Menyiapkan Dukungan System

Sebelum menjalankan Immich, saya perlu menyiapkan lingkungan sistem dimana aplikasi ini berjalan. Saya sampai tiga kali install operating system untuk server untuk ujicoba mana yang paling optimal. Server yang saya gunakan adalah komputer tua berumur 10 tahun an dengan casing dari komputer yang memiliki usia 10 tahun lebih lama lagi. Instalasi pertama saya menggunakan antiX, sebuah distro linux berbasis debian. Awalnya saya pakai yang versi arsitektur 32-bit karena saya pakai pc tua dengan os bawaan windows 7 32-bit. Setelah saya install ternyata bermasalah dengan Docker yang tidak lagi mendukung os 32-bit.

Instalasi kedua saya menggunakan AntiX-core yang 64-bit. Distro linux ini sangat ringan sesuai dengan yang diiklankan. Tetapi kompensasinya docker daemon tidak otomatis jalan. Untuk bisa menjalankan docker, ada beberapa step yang harus dilakukan terlebih dahulu secara manual. Sehingga ketika komputer restart, docker tidak langsung berjalan. Otomasi sudah coba saya lakukan dan ternyata belum berhasil. Immich sempat berhasil berjalan, tetapi masih ada kekurangan sana-sini.

Yang terakhir, saya buat agak lebih mapan dan lebih teratur. Saya tambahkan HDD satu lagi yang saya khususkan hanya untuk menyimpan foto dan metadatanya. Sedangkan HDD yang satunya saya isi dengan sistem operasi. Pemisahan ini saya lakukan untuk membuat sistem ini lebih modular dan lebih mudah dalam perawatan. Selain itu, dari sisi software, saya mencoba menggunakan ubuntu server yang harapannya lebih stabil dan lebih mudah untuk menjalankan docker dan daemon-nya.

Perubahan menjadi dua HDD ini agak memakan waktu karena perlu melakukan beberapa hal di haardware dan juga software. Di hardware saya perlu memindah jeroan CPU dari casing awal yang hanya punya satu slot HDD ke casing CPU lain, sebuah casing lama saya yang kebetulan lama nganggur, yang punya slot HDD hingga 4 atau 5 slot. Sedangkan sisi software, saya perlu ekspansi partisi HDD yang tadinya saya pakai buat ujicoba sebelumnya dengan foto yang sudah terupload hingga 200 GB. Ekspansi partisi ini saya lakukan karena partisi OS sudah tidak diperlukan di HDD kedua. Masalahnya partisi OS ada di sebelah kiri, dan saya belum menemukan cara atau tool untuk expansi partisi HDD ke sebelah kiri. Akhirnya, HDD kedua ini saya hapus total partisinya dan memulai dari awal lagi.

Bersambung… (cerita migrasi foto)

Menulis Blog dengan Bantuan AI

Beberapa tulisan blog saya terakhir ini dibantu oleh AI, terutama yang berkaitan dengan proses saya experiment dengan mikrokontroller seperti ESP dan Arduino. Tulisan yang bersifat step by step atau tutorial sangat terbantu dengan bantuan AI ini.

Mungkin jadi kurang original tetapi masih terbaca natural. Tentu saja tidak copy paste secara keseluruhan. Pasti ada bagian-bagian yang perlu diparafrase ulang.

Dalam kasus saya experiment dengan mikrokontroller, biasanya saya mengerjakan dulu experiment nya, kemudian saya tulis blog nya sebegai dokumentasi.

Saya tinggal tuliskan beberapa poin yang saya kerjakan dan minta AI untuk menuliskan dalam bentu blog. Walaupun hanya poin, ternyata AI bisa menceritakan lebih detail dan memang sesuai dengan apa yang saya kerjakan.

Bisa jadi AI juga mempelajari dari prompt yang saya tulis sebelumnya, sehingga dia juga memahami apa saja yang saya kerjakan. Sehinga ketika diminta menceritakan lagi experimen yang saya kerjakan, dia bener-bener bisa menceritakan dengan gamblang.

Luar biasa perkembangan AI. Entah seperti apa perkembangan beberapa tahun kedepan. Manusia perlu beradaptasi dengan semua teknologi ini.