Project

Algemeen

Profiel

Esphome » Geschiedenis » Revisie 7

Revisie 6 (Micha Kersloot, 14-04-2023 20:08) → Revisie 7/12 (Micha Kersloot, 14-04-2023 20:09)

h1. Esphome 

 {{>toc}} 

 h2. TTGO T-Journal 

 The T-journal is able to communicate the battery state over i2c. After bridging the pads as shown in the picter the IP5306 that is used is connected to pins 13 (scl) and 14 (sda).  

 !clipboard-202303271732-dyvee.png! 


 working configuration: 
 <pre> 
 substitutions: 
   device_name: "cam01" 

 esphome: 
   name: '${device_name}' 

 esp32: 
  board: esp32dev 
  framework: 
    type: arduino 

 # Enable Home Assistant API 
 api: 
   encryption: 
     key: "xxxxxxxxxxxx" 

 ota: 
   password: "xxxxxxxxxxxxx" 

 wifi: 
   ssid: !secret wifi_ssid 
   password: !secret wifi_password 

   # Enable fallback hotspot (captive portal) in case wifi connection fails 
   ap: 
     ssid: "cam01 Fallback Hotspot" 
     password: "xxxxxxx" 

 captive_portal: 

 external_components: 
   - source: 
       type: git 
       url: https://github.com/MichaKersloot/esphome_custom_components 
     components: [ ip5306, esp32_camera ] 

 i2c: 
   - id: bus_a 
     sda: 14 
     scl: 13 
     frequency: 400kHz 
     scan: true     

 ip5306: 
   battery_level:     # sensor 
     name: '${device_name} - Battery Level' 
   charger_connected:    # binary_sensor 
     id: connected 
     on_press: 
       then: 
         - lambda: ESP_LOGD("TEST", "charging"); 
     on_release: 
       then: 
         - lambda: ESP_LOGD("TEST", "not charging"); 
   charge_full:    # binary_sensor 
     id: full 
     on_press: 
       then: 
         - lambda: ESP_LOGD("TEST", "fully charged"); 
     on_release: 
       then: 
         - lambda: ESP_LOGD("TEST", "still charging"); 

 esp32_camera: 
   name: '${device_name} - camera' 
   external_clock: 
     pin: GPIO27 
     frequency: 20MHz 
   i2c_pins: 
     sda: GPIO25 
     scl: GPIO23 
   data_pins: [GPIO17, GPIO35, GPIO34, GPIO5, GPIO39, GPIO18, GPIO36, GPIO19] 
   vsync_pin: GPIO22 
   href_pin: GPIO26 
   pixel_clock_pin: GPIO21 
   agc_gain_ceiling: 8x 
   # jpeg_quality: 16 
   # max_framerate: 25Hz 
   contrast: 0 
   brightness: 1 
   saturation: 0 
   ae_level: 2 
   # aec2: True 
   horizontal_mirror: false 
   vertical_flip: false 
   resolution: 800x600 

 esp32_camera_web_server: 
   - port: 8080 
     mode: stream 
   - port: 8081 
     mode: snapshot 
 </pre> 


 If you are unable to program: 

   python -m esptool --chip esp32 --port COM5 --baud 115200 --after hard_reset erase_flash 

 and if even that doesn't solve it: 

   python -m esptool --port COM5 write_flash_status --non-volatile 0 

 h2. p1 dsmr power meter with TTGO T7 v1.3 mini 

 I'm using a TTGO T7 v1.3 mini with and end of a phone cable with an RJ11 connector. I soldered the cable connections direct to the board. 

 !clipboard-202304142146-wfydy.png! 

 On RJ11, pin 1 and pin 6 are not connected / available 

 |_.RJ11 P1|_.ESP32 Pin|_.4w cable|_.comments| 
 |2 - CTS|GPIO19|black|Clear to Send, High = allow P1 Meter to send data| 
 |3 - Data GND|GND|red|| 
 |4 - nc|-|green|| 
 |5 - RXD (data)|GPIO16|yellow|1K external pull-up resistor needed| 

 !clipboard-202304142208-kcypl.png! 

 !clipboard-202304142159-fj2tf.png!