Doorbot

What is it?

Doorbot is an Internet-connected door unlocker that I built for a community space. It allows people to enter the space without needing to be buzzed in.

System Architecture

The Doorbot system consists of:

  1. servo motors to actuate the door buzzer button
  2. ESP8266 microcontroller with built-in Wi-Fi
  3. NodeMCU firmware for ESP8266
  4. lua application code for ESP8266
  5. MQTT message broker
  6. web app with user authentication

The web app sends HMAC-signed command messages to the MQTT broker. The microcontroller waits for command messages to actuate the servo motor and unlock the door.

The microcontroller also sends periodic heartbeat messages so that the web app can show when Doorbot is offline.

Building a Doorbot

The bill of materials shows everything purchased to build Doorbot.

[Update 3/3/2019: If I was starting today I’d strongly consider using the Raspberry Pi Zero W instead of the ESP8266.]

To mount Doorbot, I used 90° steel angle brackets, 3M 4011 double-sided mounting tape, and 4” and 8” cable ties—all from Home Depot.

Photos

Suggested Reading

  1. https://www.jameco.com/jameco/workshop/howitworks/how-servo-motors-work.html

  2. https://hackaday.com/2014/08/26/new-chip-alert-the-esp8266-wifi-module-its-5/

  3. https://nodemcu.readthedocs.io/en/master/

  4. http://www.hivemq.com/mqtt-security-fundamentals/

  5. http://www.hivemq.com/blog/mqtt-security-fundamentals-mqtt-message-data-integrity

[Update 3/3/2019: This Hackaday post is a practical guide to securing a command protocol for the ESP8266.]