Close

Crowd Supply campaign ending!

A project log for wESP32: Wired ESP32 with Ethernet and PoE

A low cost ESP32 core board with Ethernet and PoE for convenient "single cable" deployments

Patrick Van OosterwijckPatrick Van Oosterwijck 11/12/2018 at 17:510 Comments

The Crowd Supply campaign has been going very well and will be ending soon, so if you haven't put in an order yet and you want one, now is the time! :)

I've been putting quite a bit of work into the software side of things during the campaign, to make it as easy as possible for anyone wanting to design something with this to get started.

First of all, there's now a web site at wesp32.com.  It contains information on the hardware and on software development in different environments.  Most importantly, it contains a link to the Product Brief, which is pretty much the go-to for all detailed information.

While the web site contains guidance on how to use the wESP32 with different development environments, there is now also a wESP32 demo code repository on Github, which contains full projects to get you started!  At the time of writing it has the iperf Ethernet IDF code I used to get the performance numbers mentioned in my project logs, an ESP32-Arduino example to control a display from a web server, two simple MicroPython examples to control an LED light, one from a web server and one using Dweet.io, and a Mongoose OS demo that allows you to control an LED light very simply from an automatically generated web app!

If you take a look at these examples, you can see that most of them are quite simple and don't require much code at all.  For instance, here's the LED control from Dweet.io code:

import machine
import time
import urequests

# Initialize light PWM, flash for 1/4 sec on boot
led = machine.Pin(23, machine.Pin.OUT)
ledpwm = machine.PWM(led)
ledpwm.freq(500)
time.sleep(0.25)
ledpwm.duty(0)

# Get the ESP32 unique ID as a string
uid = ''.join(['{:02x}'.format(x) for x in machine.unique_id()])

# Check dweet.io every two seconds to get and update the light level
while True:
  try:
    light_level = int(urequests.get(
        'https://dweet.io/get/latest/dweet/for/wesp32-light-demo-{}'
        .format(uid))
        .json()['with'][0]['content']['light'])
    ledpwm.duty(light_level)
    print ("Light level {}".format(light_level))
  except:
    pass
  time.sleep(2)

So if you thought the wESP32 was interesting but would be too hard to get started with, think again!  There are still a couple of days left to change your mind and get your own wESP32 by backing my campaign! :)

Discussions