Working Ethernet Thermometer using the Olimex ESP_POE_ISO board

It might not be pretty but it’s working :smiley:
esp_poe_iso

web_server

People may ask why Ethernet?
Well, in my environment, WiFi is out of the question.

People may ask why Power it via power over the Ethernet?
Just because you can, and it save the cost of a wall wart and a power outlet.

I came to using ESPHome for this project because the Arduino IDE and code samples supply by the manufacturer wouldn’t do this.

This is still pretty rough code as I’m still learning this Environment and it was mashed together using the examples. Anyway, I hope this helps someone else frustrated by the lack of code available, wasting a great opportunity with this great little board.

EDIT: Some people were asking about the pin outs. Both the screen and the BME280 use the i2c bus so just connect to those (pins 13 and 16) and the 3.3v and ground. These pins are also available on the 10way IDC port on top of the board so you can use both set of pinouts for easy hooks ups.

Here’s my mashup…

esphome:
  name: esp_poe_test
  platform: ESP32
  board: esp32-poe-iso
  
ethernet:
  type: LAN8720
  mdc_pin: GPIO23
  mdio_pin: GPIO18
  clk_mode: GPIO17_OUT
  phy_addr: 0
  power_pin: GPIO12
  manual_ip:
    static_ip: 10.0.0.246
    gateway: 10.0.0.139
    subnet: 255.0.0.0

i2c:
  sda: 13
  scl: 16
  scan: True
  id: bus_a
  
font:
  - file: "BebasNeue-Regular.ttf"
    id: my_font
    size: 70

display:
  - platform: ssd1306_i2c
    model: "SSD1306 128x64"
    #reset_pin: D0
    address: 0x3C
    lambda: |-
      if (id(temperature).has_state()) {
        it.printf(125, 1, id(my_font), TextAlign::TOP_RIGHT , "%.1f°", id(temperature).state);
      }
  
sensor:
  - platform: bme280
    temperature:
      name: "BME280 Temperature"
      oversampling: 16x
      id: temperature
    pressure:
      name: "BME280 Pressure"
    humidity:
      name: "BME280 Humidity"
    address: 0x76
    update_interval: 10s  
    
web_server:
  port: 80
   
  
logger:
 level: DEBUG 
  #baud_rate: 19200
8 Likes

I’ve now designed and 3D printed a case for this thermometer. You can download the files here https://www.thingiverse.com/thing:4220523

3 Likes

This is fantastic - I thought I2C was not possible when using ethernet because GPIO16 is used by emac_clk_out_180 but you seem to be using it without any issues?! Do you know how/why this is? Thanks!

According to the esphome docs the olimex doesn’t use gpio16 for clock.

In any event i2c can use any pins.

I could veeeery easily have misunderstood what I’m looking at

I am going from the ethernet esphome docs https://esphome.io/components/ethernet.html#configuration-for-olimex-esp32-poe

which says it is configured with clk_mode: GPIO17_OUT

In any event, there are spare pins to use for i2c

Definitely using GPIO16 for clock on i2c and according to the code ethernet pin setup doesn’t use that pin.
I’m no expert on this but it is working.

Hi,

is the LAN8710A supported?
Or did you do some modifications to ESP Home?

I am asking, because the docs say that only the LAN8720 is supported.

Best
Ck

Hey guys,

I just read all your discussions.

You pass electricity through the Ethernet for your board ??? :flushed:

Is it possible ?

What kind of board do you use ?

I’m like you, I prefer to use Ethernet than wifi everywhere.

Thanks.

That is what POE means.

Nice, I didn’t know that, thanks.

Look at the title of this topic and you may find it out. :grinning:

@cond Please, we’d like to know if your LAN chip is the LAN8710A like in the Olimex specs :grimacing:
Trying to get this working, too

I can confirm the Olimex ESP_POE (not ISO) with the LAN8710A chip works as well.
The difference between these chips is that the LAN8710A can connect via MII and RMII, while the LAN8720A only does RMII. However, this board does RMII so all is well.

I’ve run the above config without manual_ip values, and it obtained an IP address via DHCP :slight_smile:

My full config:

esphome:
  name: esp32_poe_test
  platform: ESP32
  board: esp32-poe

ethernet:
  type: LAN8720
  mdc_pin: GPIO23
  mdio_pin: GPIO18
  clk_mode: GPIO17_OUT
  phy_addr: 0
  power_pin: GPIO12

web_server:
  port: 80

logger:
 level: DEBUG

ota:

And my esphome cli command:

$ esphome esp32_poe_test.yaml run
1 Like

The esp32-poe-iso runs as well. But I cannot be entierly certain, because I had mysterious crashes that I could not solve.

Hi folks,

I’m waiting for this board, it should mount the LAN8720A chip

I’m newbi with the ESP, I started to add ESPHome integration in HA, but I can’t understand how and where I should configure it

can you help me?

regards

What board? All you have is a pic, which tells us nothing.

Did you use the addon in home assistant? If so, there is really nothing to configure. Fire up the UI and proceed.

HI,

this is the board details

ESPRESSIF-ESP32-WROOM, chip Ethernet LAN8720A, SI 3404

i’m wondering if i can use this template
image

and then replace with

Configuration for LILYGO TTGO T-Internet-POE ESP32-WROOM LAN8270A Chip
ethernet:
type: LAN8720
mdc_pin: GPIO23
mdio_pin: GPIO18
clk_mode: GPIO17_OUT
phy_addr: 0

as it sounds to mount the same chips

I think it is this board https://github.com/Xinyuan-LilyGO/LilyGO-T-ETH-POE

I hope that helps. Do note that you need the programmer sub-board for first flashing.

Hi
Can you show me connexion wire on esp32 POE. my I2C is not detected on esphome (for bme280 and display) ?
Regards
Giloris