3.3 KiB
3.3 KiB
EdaSmart ESP32 Firmware
Kode ini adalah firmware untuk ESP32 yang mengendalikan:
- Mesin Press (naik/turun/tahan dengan limit switch & sonar HC-SR04)
- Mesin Penggiling (timer + RPM via Hall Effect sensor)
- LCD 20×4 I2C sebagai UI utama
- PCF8574 untuk ekspansi I/O (tombol & limit switch)
- MQTT over TLS ke HiveMQ Cloud
- OTA firmware update via Access Point
Struktur File
edasmart_esp32/
├── edasmart_esp32.ino ← kode utama Arduino
├── config.h ← konfigurasi MQTT & pin (edit di sini)
└── README.md
Konfigurasi
Edit config.h sebelum upload:
// WiFi (bisa diset lewat UI LCD langsung)
// MQTT
#define MQTT_SERVER "8dd0d24eadfb4eb0b1e6fd87628f0f4e.s1.eu.hivemq.cloud"
#define MQTT_PORT 8883
#define MQTT_USER "Edasmart"
#define MQTT_PASS "KentangBalado1"
Topik MQTT
Publish (ESP32 → Backend)
| Topic | Nilai | Keterangan |
|---|---|---|
edasmart/press/status |
ON / OFF |
Status mesin press |
edasmart/press/phase |
TURUN dst |
Fase gerakan press |
edasmart/press/sisa |
integer detik | Sisa waktu tahan |
edasmart/giling/status |
ON / OFF |
Status mesin penggiling |
edasmart/giling/rpm |
integer | RPM penggiling (Hall sensor) |
edasmart/giling/sisa |
integer detik | Sisa waktu penggiling |
edasmart/estop |
TRIGGERED / RELEASED |
Status emergency stop |
edasmart/device |
ONLINE |
Device menyala (retained) |
Subscribe (Backend → ESP32)
| Topic | Nilai | Keterangan |
|---|---|---|
edasmart/cmd/press |
STOP |
Hentikan mesin press |
edasmart/cmd/giling |
STOP |
Hentikan mesin penggiling |
Library Arduino yang Dibutuhkan
Install via Arduino Library Manager:
PubSubClientby Nick O'LearyLiquidCrystal I2Cby Frank de BrabanderPCF8574by Rob TillaartWiFi(built-in ESP32)Preferences(built-in ESP32)WebServer(built-in ESP32)Update(built-in ESP32)
Pin Mapping
| Fungsi | Pin ESP32 |
|---|---|
| SDA (I2C) | 21 |
| SCL (I2C) | 22 |
| ENA (Motor A PWM) | 32 |
| ENB (Motor B PWM) | 33 |
| IN1 | 25 |
| IN2 | 26 |
| IN3 | 27 |
| IN4 | 14 |
| RELAY_PRESS | 16 |
| RELAY_PENGGILING | 17 |
| BUZZER | 23 |
| LED BUILTIN | 2 |
| HALL SENSOR | 34 |
| TRIG HC-SR04 | 18 |
| ECHO HC-SR04 | 19 |
PCF8574 (I2C, addr 0x20):
| Fungsi | Pin PCF |
|---|---|
| BTN_OK | P1 |
| BTN_BACK | P0 |
| BTN_UP | P3 |
| BTN_DOWN | P2 |
| BTN_ESTOP | P6 (NC) |
| BTN_LS_ATAS | P4 (NC) |
| BTN_LS_BAWAH | P5 (NC) |
Upload
- Buka
edasmart_esp32.inodi Arduino IDE - Board:
ESP32 Dev Module - Upload speed:
115200 - Setelah upload, set WiFi lewat menu Setting → WiFi → Scan WiFi di LCD