Integrating AMG8833 8X8 pixel Thermal Camera for human detection

@grego1981, Do you want the Arduino code or the code for the nearest neighbour interpolation in javascript?

Any 3xample to test the distance would do!

There is hope that it will be possible to use these cameras directly in ESPhome.

Hi can you share the arduino code?

Hello everybody
I have just install my amg8833 camera/sensor And i don’t undertsand I have this kind of information

Capteurs

Person Detected Détecté

RENFRkdISUNFRkhHRUlLSklHSkZJSEpOU1tTS0lHSVJqa2VKSUxPXWlnVklITFldXEtKSk5YX1xaS0lRWF5aWw==

Sensor Avg : 20,90 °C
Sensor Max : 27,75 °C
Sensor Max Index : 33
Sensor Min : 18,50 °C
Sensor Min Index : 0
Sensor Temperature : 24,56 °C

This code is for the camera : RENFRkdISUNFRkhHRUlLSklHSkZJSEpOU1tTS0lHSVJqa2VKSUxPXWlnVklITFldXEtKSk5YX1xaS0lRWF5aWw==

when i try to add the view of the camera i have a purple square

Here is my code esphome

substitutions:
  device_name: thermal
  device_description: "Camera Thermique."
  friendly_name: thermal camera

esphome:
  name: '${device_name}'
  comment: '${device_description}'
  platform: ESP8266
  board: d1_mini
  includes:
    - amg8833.h
    - amg8833_camera.h
    - amg8833_person_detected.h
  libraries:
    - "Wire"
    - "SparkFun GridEYE AMG88 Library"

logger:

api:

ota:
  password: "8cf1e11237ef9a44569a4c2439f526eb"

wifi:
  ssid: !secret wifi_ssidiot
  password: !secret wifi_passwordiot

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Thermal-Camera Fallback Hotspot"
    password: "TCmgrKurPe2F"

captive_portal:







text_sensor:
  - platform: custom
    lambda: |-
      auto amg8833 = new AMG8833CameraComponent();
      App.register_component(amg8833);
      return {amg8833};

    text_sensors:
      - name: "Sensor Pixels"

binary_sensor:
  - platform: custom
    lambda: |-
      auto amg8833 = new AMG8833PersonDetectedComponent();
      App.register_component(amg8833);
      return {amg8833};
    binary_sensors:
      name: "Person Detected"
      device_class: occupancy

sensor:
  - platform: custom
    lambda: |-
      auto amg8833 = new AMG8833Component();
      App.register_component(amg8833);
      return {amg8833->sensor_temperature, amg8833->max_temperature, amg8833->min_temperature, amg8833->avg_temperature, amg8833->min_index, amg8833->max_index};

    sensors:
      - name: "Thermal Sensor Temperature"
        unit_of_measurement: °C
        device_class: temperature
        accuracy_decimals: 2

      - name: "Thermal Sensor Max"
        unit_of_measurement: °C
        device_class: temperature
        accuracy_decimals: 2

      - name: "Thermal Sensor Min"
        unit_of_measurement: °C
        device_class: temperature
        accuracy_decimals: 2

      - name: "Thermal Sensor Avg"
        unit_of_measurement: °C
        device_class: temperature
        accuracy_decimals: 2

      - name: "Thermal Sensor Min Index"
        accuracy_decimals: 0

      - name: "Thermal Sensor Max Index"
        accuracy_decimals: 0

and here is my code for my camera

camera:
  - platform: thermal_vision
    host: http://10.0.30.82
    sensor:
      rows: 8
      cols: 8
    interpolate:
      method: disabled

I have install with hacs thermal vision v 3.1.0

Here and exemple of my log esphome

INFO Reading configuration /config/thermal-camera.yaml...
INFO Starting log output from thermal.local using esphome API
INFO Successfully connected to thermal.local
[11:15:27][I][app:102]: ESPHome version 2022.2.6 compiled on Mar 14 2022, 10:14:51
[11:15:27][C][wifi:491]: WiFi:
[11:15:27][C][wifi:353]:   Local MAC: 2C:F4:32:57:4B:28
[11:15:27][C][wifi:354]:   SSID: [redacted]
[11:15:27][C][wifi:355]:   IP Address: 10.0.30.82
[11:15:27][C][wifi:356]:   BSSID: [redacted]
[11:15:27][C][wifi:358]:   Hostname: 'thermal'
[11:15:27][C][wifi:360]:   Signal strength: -71 dB ▂▄▆█
[11:15:27][C][wifi:364]:   Channel: 1
[11:15:27][C][wifi:365]:   Subnet: 255.255.255.0
[11:15:27][C][wifi:366]:   Gateway: 10.0.30.1
[11:15:27][C][wifi:367]:   DNS1: 10.0.30.1
[11:15:27][C][wifi:368]:   DNS2: 0.0.0.0
[11:15:27][C][logger:233]: Logger:
[11:15:27][C][logger:234]:   Level: DEBUG
[11:15:27][C][logger:235]:   Log Baud Rate: 115200
[11:15:27][C][logger:236]:   Hardware UART: UART0
[11:15:27][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RURGR0ZKSUJGRUhHSEdIRUlFSEdISEVISklHSEdISEhdY2JPR0dIR2ReYlFHRkdGXFlSSUdHR0hgWE1HRkVCSA=='
[11:15:27][C][captive_portal:144]: Captive Portal:
[11:15:27][C][mdns:084]: mDNS:
[11:15:27][C][mdns:085]:   Hostname: thermal
[11:15:27][C][ota:085]: Over-The-Air Updates:
[11:15:27][C][ota:086]:   Address: thermal.local:8266
[11:15:27][C][ota:089]:   Using Password.
[11:15:27][C][api:138]: API Server:
[11:15:27][C][api:139]:   Address: thermal.local:6053
[11:15:27][C][api:143]:   Using noise encryption: NO
[11:15:28][D][text_sensor:067]: 'Sensor Pixels': Sending state 'REdHSElJRkdERkdISEhKSEdHSEdJSElJSkpKSElHSEleZWROSElHRmNcZVFHSUdHXltTSkZHR0dgXE5IR0RFSQ=='
[11:15:29][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RURKRklHSENGREZGR0lIREhFSEdJR0dISUtKS0pIRUheY2RNSUdKRmNeZFFHSEdIXllSSkdFRkVfWk5IR0ZERg=='
[11:15:30][D][text_sensor:067]: 'Sensor Pixels': Sending state 'REZHSUpLTUVHSEdGSEpJSUpJSUhJSkpMSUtKSklJRklfZGVOR0pIR2ReZFJIR0hIXFhSS0lKR0dhW01HR0dGRw=='
[11:15:31][D][text_sensor:067]: 'Sensor Pixels': Sending state 'R0dISEpKSkdHSEdISUpJSEtHSUlLSUtKTU9NTUtLSEtlZGlRSkpMSmJdY1BJSUhJXlpSSEhGR0VhWE9JR0pGSA=='
[11:15:32][D][text_sensor:067]: 'Sensor Pixels': Sending state 'R0ZJSUxLS0ZHSEdJSEtKSEpJSUlLSklLTU9MTUpLSkxjZWdSSUhISWNeY1JJSElKXltTS0hJSUlkW09IRkhGSA=='
[11:15:33][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RkdISUpKSkdHRklISEpJRklHSklKSkpKTU1LS0hJSkplZmdRSklKSmNfY09JSEhJXFlSSkhISEhgWk5JQ0lFSw=='
[11:15:34][D][text_sensor:067]: 'Sensor Pixels': Sending state 'Q0dISEpKSEdHR0hGSUtJR0hISUlLSklITVJMSkhKSkpma1xJSkpJR2dkWEtHSEhLX15XTUhIRkZhXllLRkZGRQ=='
[11:15:35][D][text_sensor:067]: 'Sensor Pixels': Sending state 'REZGRkhKSkdGSUlJR0lJR0xMSklLSEdNXWRgTEhLSEtqa2NMSUlJSGJfTUlISElHW1pJSElHSEhhWUhGR0dDSA=='
[11:15:36][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RkVIR0pJSkVFR0hHR0lJR0tLSkdJSEhJWGRiTkhJSUlrbGhSSUdHSWFkVEhHRkhIXVlKR0dHSUdeW01HRUVERA=='
[11:15:37][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RkZESEdIR0VHR0hESEdISUpJSklJSEdKXGRjUEhISUhra2ZRSUlIR2FfU0lISEdGXltLR0ZISEpgWklHREZCRw=='
[11:15:38][D][text_sensor:067]: 'Sensor Pixels': Sending state 'R0ZJSEpISEVGRkdISkpISE1LSUhJSUlLXGVlT0pISElobWlTSExLSmFiUklKREhHXlpMSElHSEhjXEtGRUhGRA=='
[11:15:39][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RUhISUtKSERJRkhHSElJR0tJTEpJSkpLXWZlUEpKR0lsbGlUSktKSmNiVUpKSUpJXVtKSkhHSUhiXEpHR0ZFSQ=='
[11:15:40][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RkhKSUtLS0ZJSUlHSklNR01NTUpLSUpMXmVkU0tKSktsbmhTSkpKSmVkV0lJSkhHXlpMSklJSEljXExKR0lFSQ=='
[11:15:41][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RkZISUtKSkdHSUlISUlJSkxLTEpJS0tKXWZmU0lKSUprbWhVSkpISGRlUkpISElKYFpMSUhJSElhXExHSElCSQ=='
[11:15:42][D][text_sensor:067]: 'Sensor Pixels': Sending state 'Q0hGSkpKSUhHR0dISEhKRkpMSkpLSUhLXGRjU0pJSUltbGlVSklJSWNjU0hJSEVIXltMSEhJSEZhW0pIRkdDSg=='
[11:15:43][D][text_sensor:067]: 'Sensor Pixels': Sending state 'Q0ZGSElJSkZGSkdHSEhLSEtKS0lJSUhJX2RlUElKSEdpbGhTSUlJSGFiVElKSUpIXlxLSUhIR0dfWklHR0dERw=='
[11:15:44][D][text_sensor:067]: 'Sensor Pixels': Sending state 'REdJSEpLS0hIR0lJR0pISk1LS0hKSUpIXmZlUUhISUxsbGpTSElJSmFhUklISUlIXltLSEhISUlgXEtKR0hHRQ=='
[11:15:45][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RkZISUpKSEVHR0hJSEpKSEtKSklKSUpKXmVlUkpKSElqa2hTR0hKR19iUklHR0VIX1pJSEpGR0hgWUpGRkVERQ=='
[11:15:46][D][text_sensor:067]: 'Sensor Pixels': Sending state 'R0VHSElJTEVHRkZLSEtISUxMTUpJSEdLXmdmUkhHSEpra2hTSEhJR2JjU0tISUhKXVtLSEhISUhfWUxGRkdFRw=='
[11:15:47][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RUhHSElKSUdIRklHSElKR0xLSkhISEpLXmRiUElIR0lrbWhUR0hJSGFiVUlISUdIXlpLSUdHRUhgWklIREhFSQ=='
[11:15:48][D][text_sensor:067]: 'Sensor Pixels': Sending state 'REdISEtJSUVGR0hHSUtLSExMSUxLS0lJXGRiT0lJSkprbGdTSEhKRmBjVktJR0hIXVtKSEhGS0dgW0lFRUdGSQ=='
[11:15:49][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RUZHR0pKS0ZJR0lISUpLSExLTEpLS0lMXmdjUkpLSUltbWxVSktKSGVlVktLS0hKXlpNSUlISUhhXEtHR0lJRw=='
[11:15:50][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RUhJSUlMTEhJSEhLSklKSE1LTEtKSkxMXGViUklKSExqb2lVSkpKSmNjWExJR0lLX1xMSUlJR0dhXktJRElISg=='
[11:15:51][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RkdHSEpLSkdHSUlJSUtMR01LTEpISktNYGNiT0tLSEtrbWlTS0tKSmRjVUxLSEhHXlpLR0dISkhjXEtIR0VFTA=='
[11:15:52][D][text_sensor:067]: 'Sensor Pixels': Sending state 'R0ZKSEpJSkRGR0lISEpKSUxLS0lKSEhLXmNjUEhIS0hrbGhUSUpKSGJjVklKSEhJYFpOSUdGSEliW0tHSUZGRg=='
[11:15:53][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RUlFSEpKSUZJR0hIR0hKS0tLS0lKSUhLXGRhUElISEhsbWhTSklITGRjV0pJRkhKXlxKSUZHSkZhW0pGSEdFSQ=='
[11:15:54][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RkZISUhJSUVFRkhHRklKSkxKS0lJSEpKXWViUEpISUpqbGdVSUtLR2FjVEpHRkVHXFlNSUhGR0hgXEtFRkdDRw=='
[11:15:55][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RkZHSElISEZHSkpJSEtMSk1KS0hJSUlJXGRjUEpJSUpobWZVSklJSGJiVkpKR0hGX1pLSUhHR0lhXExIRkdFSA=='
[11:15:56][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RkdJR0pKSUZHR0lISklKSk1KSklKSUlLXWRiUUhMSktrbWlWSUhJSGJiV0pGRkVKXV1KSEpJRElkW0tHRUdFSA=='
[11:15:57][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RUdGRkdHSERHRklGRUlIRkxISkhJSkpMW2NhUElJSElqbGlUSklKR2JjVktJSEhJYFpMSEhISEZhWk1JRkhGSA=='
[11:15:58][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RUVFR0dISENGR0hHSUlLR0tLSUpLSElJXGNiTklISUppa2dUR0hKR2JjVkpJRUpLXllOSUhJR0hhWkxIR0dIRw=='
[11:15:59][D][text_sensor:067]: 'Sensor Pixels': Sending state 'REZGR0ZJR0RERUlFRkhIR0pJSUhHSEdHXGRhUElIRkpqamZTSUlHSGJiU0dHRUVHXllISEVFRkZhWkxHRUhFSA=='
[11:16:00][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RUNIRUlHR0RGR0pGSEhIRUtKS0hJR0dIWmNgTkhJRUhqbGZTSEhGSGFhVkhJSElHXFlLSUdFR0ZjWklGR0hFRQ=='
[11:16:01][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RkVHR0hKSkZISElHR0hKSE1JS0dIR0pHW2RhT0lISEdqbGZTR0lKRmJjVUhIR0ZFXVhNR0lFRkZiWktHR0VERg=='
[11:16:02][D][text_sensor:067]: 'Sensor Pixels': Sending state 'R0RER0hJSENGR0dHRkhIRkpJSUhIR0VJXWFhT0hHR0lpa2ZSSEhHR2BiVEhIRkdIX1pLRkhFSEZhW0pGRUZFSA=='
[11:16:03][D][text_sensor:067]: 'Sensor Pixels': Sending state 'Q0dJRkdISENGRUhHRUdHRkxJS0hJSUdMW2NiT0dGSEdqa2dQSElJRmFhVEhGRUZIXVpKR0VGR0NhXElHRkZDSQ=='
[11:16:04][D][text_sensor:067]: 'Sensor Pixels': Sending state 'R0hISElJSENHSEdHSElISU5LSkhJSUlLXGNhUEhISElpamhTSUlJRWFiVEpIRUZIXlhLSEhFRkdjW0pGRUZDRQ=='
[11:16:05][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RUdGRkdJSUZGSEdHR0lJRUtJSUlJRklKXmRhTkpIRklrbGZTR0hJR2FjUklGRURFXlhIR0VFRkdhW0pGQ0ZDSA=='
[11:16:06][D][text_sensor:067]: 'Sensor Pixels': Sending state 'R0ZGR0lHSEVHRklGRUhJR0pJSUhJSUdJXGRiUElJSEhrbGZTR0lJRmNfVUhHRkdGXVlKR0hHSEVjXElGRURDRg=='
[11:16:07][D][sensor:124]: 'Thermal Sensor Max': Sending state 26.50000 °C with 2 decimals of accuracy
[11:16:07][D][sensor:124]: 'Thermal Sensor Min': Sending state 16.50000 °C with 2 decimals of accuracy
[11:16:07][D][sensor:124]: 'Thermal Sensor Min Index': Sending state 62.00000  with 0 decimals of accuracy
[11:16:07][D][sensor:124]: 'Thermal Sensor Max Index': Sending state 32.00000  with 0 decimals of accuracy
[11:16:07][D][sensor:124]: 'Thermal Sensor Avg': Sending state 19.06641 °C with 2 decimals of accuracy
[11:16:07][D][sensor:124]: 'Thermal Sensor Temperature': Sending state 24.56250 °C with 2 decimals of accuracy
[11:16:07][D][text_sensor:067]: 'Sensor Pixels': Sending state 'RENERUhGR0FFRkVFRUdIRklGR0hHRkZHWmNhTUZHRUdpamZRRkdGRmBhU0hEREdHW1hKRkZGR0JgW0lGREdERA=='
[11:16:08][D][text_sensor:067]: 'Sensor Pixels': Sending state 'QkVGR0dHR0RGRkZGREZIR0tJSEhHRkdHW2NgTkhHRUdoamZRR0hHRmBfUkhFQ0ZHXllKR0dGSEZjWkhGREdERw=='

did you ever figure this out?