legal contact rss
 

CatFeed Counter

Da bei uns Daheim die Katze mit mitleiderregendem Auftreten alle Femilienmitglieder dazu bringt, sie zu füttern und wir komplett den Überblick verlieren, möchte ich einen FutterZähler bauen.

Dieser soll auf einem LCD Display den aktuellen Tagesstand der Fütterungen anzeigen und um Mitternacht resetted werden.

Ich hatte als Hardware noch ein wenig Zeug "rumliegen" und arbeite seit Tagen immer mal wieder an der Umsetzung...

ChatGPT Prompt

Das Projekt besteht darin, einen Portionszähler zu erstellen, der mit zwei Tastern gesteuert wird: einem zum Hinzufügen von Portionen und einem zum Abziehen von Portionen. Der aktuelle Zählerstand und die Uhrzeit werden auf einem LCD-Display angezeigt. Die Uhrzeit wird über einen NTP-Server synchronisiert, und der Portionszähler wird um Mitternacht zurückgesetzt.

Benötigte Komponenten

Hardware-Komponenten
- **ESP32-S3 Mikrocontroller**
- **LCD-Display (I2C)**
- **2 Taster**
- **Verbindungskabel**

Hardware-Setup
1. **ESP32-S3 Mikrocontroller**
   - Der Mikrocontroller wird als zentrales Steuerelement des Projekts verwendet.
  
2. **LCD-Display (I2C)**
   - Verbinden Sie das I2C-LCD-Display mit dem ESP32-S3. 
   - Stellen Sie sicher, dass das LCD-Display die I2C-Adresse `0x27` hat.

3. **Taster**
   - Verwenden Sie zwei Taster:
     - **Taster zum Hinzufügen** (Pin D6)
     - **Taster zum Abziehen** (Pin D5)
   - Verbinden Sie jeden Taster mit dem Ground (GND). Wenn der Taster gedrückt wird, wird der Pin auf LOW gesetzt.

Pinbelegung
- **SCL (Serial Clock Line)**: GPIO 14 (D14)
- **SDA (Serial Data Line)**: GPIO 13 (D13)
- **Taster zum Hinzufügen**: GPIO 6 (D6)
- **Taster zum Abziehen**: GPIO 5 (D5)


Programcode

Das eigentliche Programm: media/files/main.py

Die Werte in der env.py:

# env.py

# WLAN-Konfiguration

WLAN_SSID = '[Deine SSID]'

WLAN_PASSWORD = '[Dein Wlan-PW]'


# MQTT Konfiguration

MQTT_SERVER = '[Die MQTT IP]'

MQTT_PORT = 1884

MQTT_USER = '[MQTT User]'

MQTT_PASSWORD = '[MQTT PW]'

MQTT_TOPIC_RESULT = 'wifibutton1/tele/RESULT' 

MQTT_PORTIONEN_TOPIC = 'tele/KaFu/Portionen'

MQTT_DEBUG_TOPIC = 'tele/KaFu/Debug'


# Tibber Pfade

TIBBER_TODAY_PATH = '[Dein Tibber MQTT Pfad]'

TIBBER_TOMORROW_PATH = '[Dein Tibber MQTT Pfad].PricesTomorrow'


# Die IP des zu nutzenden ntp-Servers

NTP_SERVER = "[Dein/der NTP-Server]"

TIMEZONE = 'Europe/Berlin'


# PW für die WebREPL-Verbindung

WEBREPL_PASSWORD = "WebREPL-PW"