jonah.id / Smart Plug
  1. 2019-03-21 — Smart Plug Intro
  2. 2019-03-22 — Smart Plug Prototype 0.1
  3. 2019-03-22 — Smart Plug Prototype 0.2
  4. 2019-03-22 — Smart Plug Prototype 0.3
  5. 2019-03-22 — Smart Plug Prototype 0.4
  6. 2019-03-27 — Smart Plug Prototype 0.5
  7. 2019-03-29 — Smart Plug Prototype 0.6
  8. 2019-04-04 — Smart Plug Prototype 1.0 ⬿
  9. 2019-06-05 — Smart Plug Prototype 2.0
  10. 2019-07-14 — Rust on Arduino
  11. 2019-07-28 — W5500 Driver for Rust Embedded-HAL on AVR
  12. 2019-07-31 — Working UDP Listener in Rust (finally)

Smart Plug Prototype 1.0

The initial proof-of-concept is officially working.

The above video demonstrates the POC working as expected end-to-end.

Client <-> Router <-> Powerline Ethernet <-> Microcomputer <-> Relay <-> Appliance (i.e. lamp)

Without any wireless technology, we were able to control a lamp that’s ultimately only plugged into the wall.

The full list of materials is:

Material Cost
High-voltage Electrical Relay $27
Beaglebone Black $55
TP-Link AV600 Powerline Ethernet Adapter (pair) $38
Total $120

Here is the update on the improvments we’re trying to make with this approach.

  1. Bandwidth usage - Total success. This POC has zero impact on WiFi traffic (except when a user connects)
  2. Ease of setup - Not yet. This POC is a bunch of separate off-the-shelf components plugged together, it’s not easy to set up
  3. Usable scenarios - Total success. This can be used anywhere in the circuit regardless of WiFi signal
  4. Cost - Clear failure. Our cost here is ~$120, while the typical smart plug on Amazon is $25-$30 (with some as low as $10). A lot of work mu be done to bring down cost

Improving the ease of setup will be a concern closer to the productization step. For now, we’ll worry principally about the cost. The greatest cost in the list above is the Beaglebone Black. A Beaglebone is actually a fully-fledged microcomputer, running an OS. For such a simple task (listening for network connections and switching a single GPIO pin), it’s way overkill.

The simplest next step is to simplify this component to a more appropriate equivalent. An Arduino with an Ethernet module seems the most intuitive next step. That’s what we’ll increment to next.

Next: 2019-06-05 — Smart Plug Prototype 2.0

Creative Commons License