Buat Jaringan Internet Antar Kantor Dengan Point to Point

Sudah lama saya berfikir, bagaimana menghubungkan jaringan internet dari lokasi B ke lokasi A yang memiliki jarak sekitar 150 meter. Jalur internet utama ada di lokasi A dan saya ingin agar lokasi B punya akses internet melalui jaringan di lokasi A. Sementara ini saya hanya menggunakan router 4G dari TP-link sebagai akses internet di lokasi B.

Saya melakukan explorasi sekenario dan perangkat. Kemudian saya melihat review di youtube untuk mencari case yang sama. Konsultasi dengan AI juga saya lakukan untuk melihat solusi dan menambah wawasan skenari dari sudut pandang yang berbeda. Dari berbagai opsi perangkat dan skenario, saya memutuskan untuk menggunakan metode Point to Point menggunakan Totolink CP300.

Sambil menunggu barang datang, saya mencari spot dimana perangkat akan saya pasang diatas atap. Saya naik ke tempat toren air dan memasang HP di tongkat tongsis untuk melihat pandangan yang lebih luas. Saya berharap mendapat LOS atau Line of Sight yang tidak terhalang oleh apapun. Dari sini saya menemukan spot yang rasanya bisa dipertimbangkan dan dicoba, walaupun tidak free dari penghalang, tapi masih kelihatan disela-sela ranting pohon.

Lokasi A – Mode Access Point

Setelah Totolink CP300 datang, saya langsung melakukan uji coba. Dua perangkat saya nyalakan dan saling terhubung satu sama lain. Setelah saya yakin dengan skenario setup, saya naik ke area toren dan pasang satu Totolink CP300 di lokasi A dengan mode Access Point. Saya pasang di titik yang sudah saya tentukan sebelumnya dan saya hadapkan ke arah lokasi B.

Lokasi B – Mode Client

Selanjutnya di lokasi B, saya pasang Totolink CP300 juga dengan lokasi diatas teras dan menghadap ke lokasi A ke arah dimana Access Point dipasang. Sebelumnya sudah saya setting pengaturannya sehingga ketika diatas, langsung sat-set pasang dan atur pengkabelan dibawah. Nyalakan PoE dan cek halaman website pengaturan, didapatlah kekuatan sinyal 90 persen keatas. Kecepatan internet juga tidak jauh beda dengan lokasi A. Terus terang sangat puas dengan eksperimen ini dan saya putuskan untuk setup tempat kerja di lokasi B.

Mon, Dec 29, 2025

Nyobain Shinobi dan Frigate

Beberapa hari terakhir ini saya sedang explore perangkat server untuk menggantikan server raspi dan pc tua yang mulai terasa kewalahan. Pilihan mulai dari mini pc second seperti lenovo thinkcenter sampai server xeon lawas. setiap pilihan berimplikasi dengan desain server yang akan dipasang.

Awalnya sempet mau pakai mini pc karena murah, simpel, daya listrik kecil, wah cocok ini saya pikir. Tapi kemudian saya teringat kalau saya butuh slot untuk hdd 3.5 in yang akan dipakai buat storage media dan cctv. Akhirnya pilihan ini saya tunda dan mencoba eksplore pc biasa dan juga xeon.

Belum selesai explore hardware, saya secara paralel mengexplore dari sisi software. Saya petakan dan coba software mana yang nanti akan menggantikan sistem yang sudah ada. Salah satu sistemnya yaitu cctv. Sempet beberapa muncul di beranda tentang instalasi NVR untuk cctv tanpa perangkat khusus NVR. System ini pakai software NVR yang dipasang di PC biasa sehingga bisa dijadikan NVR seperti layaknya perngkat NVR.

Ada dua yang sudah sempet saya coba yaitu Shinobi dan Frigate. Dari referensi sih dua-duanya bisa dipakai untuk NVR dan masing-masing punya kelebihan sendiri. Secara umum Frigate lebih kuat di bidang AI dan Shinobi lebih unggul di fleksibilitas dan kompleksitas NVR.

Dari sisi penambahan kamera dan konfigurasi masing-masing punya pendekatan sendiri. Untuk Frigate, konfigurasi penambahan kamera dan semua hal yang mengikutinya dilakukan di file yml, sedangkan untuk Shinobi bisa dilakukan di GUI berbasis web.

Saat mencoba menjalankan Frigate, CPU bekerja sangat keras. Bahkan kipas CPU sampai meraung-raung berputar kencang. Saya amati memang sepertinya dari proses AI yang berjalan secara realtime mendeteksi dan menganalisa gambar-gambar dari berbagai kamera memakan processing power yang besar sekali. Ini tentu menjadi perhatian khusus karena daya juga pasti makan besar.

Untuk shinobi sepertinya lebih sederhana dari sisi AI fiturnya, tetapi lebih banyak pengaturan seperti layaknya NVR perangkat pada umumnya tetapi lebih kompleks. Penggunaan CPU dan kipas juga tidak sampai meraung-raung. Hanya saja, pengaturan yang kompleks ini membutuhkan waktu tambahan untuk mempelajarinya.

Ini kira-kira impresi pertama saya mencoba keduanya. Dan oh iya, keduanya saya jalankan dalam lingkungan terkontainerisasi menggunakan Docker. Tinggal nanti selanjutnya ntah explore yang mana lagi sebelum memutuskan upgrade server kemana jadinya….

Thu, 11 Des 2025

Membuat Modul IoT Membaca Banyak Device dengan RS485

Postingan ini sebenarnya sudah ada judulnya dari beberapa bulan lalu, tapi baru sempet menulis isinya sekarang. Saat itu, sistem PLTS saya baru ada inverter dan baterai, belum ada panel surya, sehingga saya fokus pada komponen IoT-nya dulu.

Saya sudah membuat desain jalur kabel dan flow arusnya. Mulai dari string panel surya yang sudah saya persiapkan menjadi dua string, sampai arah inverter dan baterai. Tiap titik bagian sudah saya rencanakan akan dipasang sensor untuk mengetahui parameter yang akan saya ukur. Salah satu parameter misalnya voltase dan energi dari baterai ke inverter. Ini sudah bisa saya implementasikan sebelum menunggu panel surya terpasang.

Pada tahap awal ini, saya akan memasang 4 sensor, dua untuk memantau arus DC dan dua lagi untuk memantau arus AC. Dua arus DC adalah dari SCC ke inverter serta baterai dan satu lagi dari baterai dan SCC ke inverter. Dua sensor ini untuk memantau berapa banyak energi yang dipanen dari SCC dan berapa besar energi yang terpakai. Sedangkan untuk arus AC, saya memasang sensor untuk arus dari PLN dan satu lagi untuk memantau arus keluaran dari Inverter. Ini untuk memantau berapa besar energi PLN dan PLTS yang terpakai.

Saya menggunakan PZEM016 dan PZEM017. Dua alat ini memiliki interface RS485 sehingga saya membutuhkan modul RS485. Untuk modul kontrolernya saya menggunakan ESP dari keluarga ESP8266 yaitu ESP Wemos D1 Mini. Saya berencana membuat satu modul ini untuk memantau banyak device RS485.

Sat, 29 Nov 2025

Pengalaman Setup Printer Canon G2010 untuk Mac dalam Jaringan

1. Setup Awal: Wavlink + Windows = Lancar Jaya

Awalnya, printer Canon G2010 saya terhubung ke jaringan lokal menggunakan print server Wavlink. Di lingkungan Windows, semuanya berjalan mulus: printer terdeteksi otomatis, driver tersedia, dan proses cetak berlangsung cepat tanpa hambatan. Ini solusi ideal untuk rumah atau kantor kecil yang ingin berbagi printer tanpa harus colok langsung ke satu komputer.

2. Masuk Mac: Driver Ada, Tapi Lemot dan Gagal

Masalah muncul saat mencoba mencetak dari MacBook. Saya menambahkan printer lewat System Preferences → Printers & Scanners, memilih driver Canon G2000 series (karena G2010 tidak muncul). Awalnya, printer bisa menerima job dan mulai mencetak. Tapi…

  • Proses cetak sangat lambat
  • Sering berhenti di tengah jalan
  • Kadang hang total dan harus restart printer

Setelah frustrasi berkali-kali, saya cek langsung ke situs resmi Canon — dan ternyata: Canon G2010 memang tidak mendukung macOS secara resmi. Tidak ada driver native, dan solusi workaround tidak stabil.

3. Jalan Alternatif: CUPS + Raspberry Pi

Karena saya sudah punya Raspberry Pi yang standby di jaringan, saya coba eksperimen: jadikan Pi sebagai print server berbasis CUPS (Common Unix Printing System).

Langkah-langkahnya:

  • Install CUPS di Raspberry Pi:bashsudo apt update && sudo apt install cups printer-driver-gutenprint
  • Tambahkan user ke grup lpadmin dan aktifkan sharing
  • Akses web interface CUPS di http://raspberrypi.local:631
  • Tambahkan printer Canon G2010 menggunakan driver dari Gutenprint

Hasilnya?

  • Printer bisa ditambahkan ke Mac via IPP (Internet Printing Protocol)
  • Proses cetak berhasil sampai selesai
  • Masih agak lambat, tapi jauh lebih stabil dibanding metode sebelumnya

Struktur Direktori Ci4 Docker

Sekarang saya pakai docker dalam pengembangan web dengan framework Ci4. Sebelumnya saya sering pakai environment lengkap seperti xampp ataupun Laragon. Tetapi karena saya memiliki beberapa project legacy yang masih pakai dependency lama, seperti php 7 atau yang lain, sehingga kadang kesulitan menyesuaikan atau mengganti dependency jika pakai Xampp atau Laragon. Apalagi kalau ada project paralel yang harus pakai dua versi php yang berbeda.

Dengan pengembangan berbasis kontainer seperti Docker, kita bisa mengatur lingkungan yang berbeda setiap project. Lingkungan pengembangan satu project bisa kita buat independen terhadap project lain. Kita juga bisa jalankan dua project itu secara bersamaan tanpa mengganggu project yang lain.

Untuk kasus Ci4 dan bisa juga untuk framework lain sejenis, kita bisa pisahkan direktori untuk public dan private. Tujuannya diantaranya untuk keamanan dan konsistensi git workflow.

Misalhnya kita bisa buat struktur direktori seperti berikut:

project_directory
|- docker-compose.yml
|- Dockerfile
|- src
|-- private
|-- public

Kita bisa masukkan semua code ci4 di direktori private. Kemudian copy isi dari direktori public dalam ci4 ke src/public. Kemudian kita mapping src/public ke document root dalam kontainer. Kita map juga direktori private ke server.

Berikut docker compose nya:

name: 'ci4zuriah'

services:
  app:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: zuriah_app
    ports:
      - "8080:80"
    volumes:
      - ./src/public:/var/www/html
      - ./src/private:/var/www/private
      - ./docker/php.ini:/usr/local/etc/php/php.ini
    depends_on:
      - db
    networks:
      - ci4net

  db:
    image: arm64v8/mysql:9.4.0-oracle
    container_name: zuriah_db
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: ci4db
      MYSQL_USER: ci4user
      MYSQL_PASSWORD: ci4pass
    ports:
      - "3356:3306"
    volumes:
      - dbdata:/var/lib/mysql
    networks:
      - ci4net

  phpmyadmin:
    image: arm64v8/phpmyadmin:5.2
    container_name: zuriah_myadmin
    restart: always
    ports:
      - "8051:80"
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: rootpass
      UPLOAD_LIMIT: 10M
    depends_on:
      - db
    networks:
      - ci4net

volumes:
  dbdata:

networks:
  ci4net:

Dockerfile

FROM php:8.3-apache

# Install dependencies
RUN apt-get update && apt-get install -y \
    libicu-dev \
    libpq-dev \
    libpng-dev \
    libjpeg-dev \
    libfreetype6-dev \
    unzip \
    curl \
    zip 

# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- \
    && mv composer.phar /usr/local/bin/composer

# Aktifkan ekstensi PHP
RUN docker-php-ext-configure gd \
    --with-freetype \
    --with-jpeg \
    && docker-php-ext-install \
    gd \
    intl \
    mysqli \
    pdo \
    pdo_mysql

# Aktifkan mod_rewrite Apache
RUN a2enmod rewrite

# Restart Apache agar perubahan berlaku
RUN service apache2 restart

Kediri, 20 oct 2025