231 lines
4.2 KiB
Markdown
231 lines
4.2 KiB
Markdown
# Robot Mower HA V2
|
|
|
|
Komplet pakke til:
|
|
|
|
- **Robot**: ESP32-C6-DevKitC-1 + NEO-M8N + GY-521 (MPU6050) + GY-91 (MMC5883MA + BMP180)
|
|
- **Ladeboks**: ESP8266 + INA226 + 20x4 I2C LCD
|
|
- **Home Assistant**: REST-baserede entities + templates + Lovelace dashboard
|
|
|
|
## Indhold
|
|
|
|
- `robot_v2_esp32c6/robot_v2_esp32c6.ino`
|
|
- `dock_v2_esp8266/dock_v2_esp8266.ino`
|
|
- `home_assistant/home_assistant_package.yaml`
|
|
- `.gitignore`
|
|
|
|
---
|
|
|
|
## Funktioner
|
|
|
|
### Robotten
|
|
Sender til Home Assistant via REST:
|
|
- GPS latitude / longitude
|
|
- satellites
|
|
- hdop
|
|
- speed
|
|
- GPS fix
|
|
- motion detect
|
|
- heading fra kompas
|
|
- temperatur / tryk
|
|
- alder på sidste gode position
|
|
|
|
### Ladeboksen
|
|
Måler med INA226:
|
|
- spænding
|
|
- strøm
|
|
- effekt
|
|
|
|
Viser på 20x4:
|
|
- dato / tid
|
|
- spænding / strøm
|
|
- effekt / GPS-status
|
|
- HOME/AWAY + CHG/IDLE + RUN/STOP
|
|
|
|
Henter samtidig status fra Home Assistant:
|
|
- GPS status
|
|
- motion status
|
|
- home status
|
|
- charging status
|
|
|
|
---
|
|
|
|
## Hardware
|
|
|
|
### Robot
|
|
- ESP32-C6-DevKitC-1
|
|
- NEO-M8N GPS
|
|
- GY-521 MPU6050
|
|
- GY-91 med MMC5883MA + BMP180
|
|
- buck converter hvis robotspænding er højere end 5V/3.3V
|
|
|
|
### Ladeboks
|
|
- ESP8266 LoLin / D1 mini type
|
|
- INA226
|
|
- 0.01Ω 1% shunt, 2W eller 3W
|
|
- 20x4 I2C LCD
|
|
- buck converter 29V -> 5V
|
|
|
|
---
|
|
|
|
## Wiring
|
|
|
|
### Robot (ESP32-C6)
|
|
|
|
#### I2C
|
|
- GPIO6 -> SDA på MPU6050
|
|
- GPIO6 -> SDA på GY-91
|
|
- GPIO7 -> SCL på MPU6050
|
|
- GPIO7 -> SCL på GY-91
|
|
- 3V3 -> VCC på begge sensormoduler
|
|
- GND -> GND på begge sensormoduler
|
|
|
|
#### GPS UART
|
|
- GPIO17 (RX) <- GPS TX
|
|
- GPIO16 (TX) -> GPS RX
|
|
- 3V3/VCC -> GPS VCC (afhængig af modul)
|
|
- GND -> GPS GND
|
|
|
|
### Ladeboks (ESP8266)
|
|
|
|
#### I2C
|
|
- D2 / GPIO4 -> SDA på INA226
|
|
- D2 / GPIO4 -> SDA på 20x4 LCD
|
|
- D1 / GPIO5 -> SCL på INA226
|
|
- D1 / GPIO5 -> SCL på 20x4 LCD
|
|
|
|
#### Shunt / high-side måling
|
|
- PSU +29V -> SHUNT -> ud til basestation +
|
|
- PSU GND -> ud til basestation GND
|
|
|
|
#### INA226
|
|
- VIN+ -> før shunt
|
|
- VIN- -> efter shunt
|
|
- VCC -> 3.3V
|
|
- GND -> GND
|
|
|
|
#### Forsyning
|
|
- 29V -> buck input
|
|
- buck 5V -> ESP8266 5V/VIN
|
|
- buck GND -> ESP8266 GND
|
|
|
|
---
|
|
|
|
## Arduino biblioteker
|
|
|
|
### Robot
|
|
Installer:
|
|
- TinyGPSPlus
|
|
- Adafruit BMP085 Library
|
|
- MPU6050_tockn
|
|
|
|
### Ladeboks
|
|
Installer:
|
|
- LiquidCrystal_I2C
|
|
|
|
---
|
|
|
|
## Konfiguration der SKAL ændres
|
|
|
|
### I begge `.ino` filer
|
|
Søg efter disse linjer og ret dem:
|
|
|
|
```cpp
|
|
const char* WIFI_SSID = "DIT_WIFI";
|
|
const char* WIFI_PASSWORD = "DIT_PASS";
|
|
const char* HA_HOST = "192.168.2.10";
|
|
const uint16_t HA_PORT = 8123;
|
|
const char* HA_TOKEN = "DIN_LONG_LIVED_ACCESS_TOKEN";
|
|
```
|
|
|
|
### I Home Assistant YAML
|
|
Sæt **dine rigtige dock-koordinater** her:
|
|
|
|
```yaml
|
|
lat2 = 56.194000
|
|
lon2 = 10.682000
|
|
```
|
|
|
|
---
|
|
|
|
## Home Assistant opsætning
|
|
|
|
Kopiér `home_assistant/home_assistant_package.yaml` ind i din HA packages mappe
|
|
eller merge ind i din eksisterende config.
|
|
|
|
Eksempel:
|
|
|
|
```yaml
|
|
homeassistant:
|
|
packages: !include_dir_named packages
|
|
```
|
|
|
|
Læg så filen i:
|
|
|
|
```text
|
|
/config/packages/robot_mower_v2.yaml
|
|
```
|
|
|
|
Genstart Home Assistant.
|
|
|
|
---
|
|
|
|
## Første opstart
|
|
|
|
### 1. Start robotten
|
|
Tjek at disse dukker op i HA:
|
|
- `sensor.robot_gps_latitude`
|
|
- `sensor.robot_gps_longitude`
|
|
- `sensor.robot_gps_speed_kmh`
|
|
- `sensor.robot_gps_satellites`
|
|
- `sensor.robot_gps_hdop`
|
|
- `sensor.robot_heading_deg`
|
|
- `sensor.robot_temperature`
|
|
- `sensor.robot_pressure`
|
|
- `sensor.robot_gps_fix_raw`
|
|
- `sensor.robot_motion_raw`
|
|
|
|
### 2. Start ladeboksen
|
|
Tjek:
|
|
- `sensor.robot_dock_voltage`
|
|
- `sensor.robot_dock_current`
|
|
- `sensor.robot_dock_power`
|
|
- `binary_sensor.robot_dock_online`
|
|
|
|
### 3. Tjek templates
|
|
- `sensor.robot_gps_status`
|
|
- `sensor.robot_motion_status`
|
|
- `sensor.robot_home_status`
|
|
- `sensor.robot_charge_status`
|
|
- `sensor.robot_distance_to_dock`
|
|
|
|
---
|
|
|
|
## Bemærkninger
|
|
|
|
- Kompasmåling på robotter med motorer og strømførende ledninger kan være støjet.
|
|
- Hvis motion er for følsom, hæv `MOTION_THRESHOLD` i robot-koden.
|
|
- Hvis GPS fix er for stram, justér sat/hdop grænserne i robot-koden.
|
|
- LCD I2C-adressen er sat til `0x27`. Nogle displays bruger `0x3F`.
|
|
|
|
---
|
|
|
|
## Git forslag
|
|
|
|
```bash
|
|
git init
|
|
git add .
|
|
git commit -m "Initial robot mower HA V2 package"
|
|
```
|
|
|
|
---
|
|
|
|
## Filer
|
|
|
|
Denne pakke er lavet som en god **V2 startpakke**, men der kan stadig være behov for
|
|
små justeringer af:
|
|
- I2C adresser
|
|
- GPS baudrate
|
|
- MPU6050 følsomhed
|
|
- kompas-kalibrering
|
|
- LCD adresse
|