Inspiration

A home embedded with IOT devices is a hassle free home. From single press of a button, you should be able to control anything and everything. But that’s not necessarily the case right now, and what we set out to do was change that. We realized that cloud connected physical access was something lacking in the marketplace. And our product, the DoorMan fills that need.

What it does

It is a small device that mounts under any door. Like any good doorman, it allows for hands free door opening. Simply sweep your foot over the IR sensor, or apply pressure to our force sensor and the door opens automatically.

When you are not there at the door, cloud connectivity allows you to remotely close and open doors from your phone or computer. Give your Doorman a quick call, and he will open and close the door.

Finally, we can retrofit under any door with our custom mounting hardware. It’s quick and easy to setup with minimal hassle required.

How we built it

We built the board schematic through Altium by following a hierarchy level design. After verifying the correctness of all components, the PCB layout was designed in Altium PCB schematics. Because we had several off board sensors, we left header pins to be soldered on by hand post manufacturing. Then, the IR sensor, force sensor, and motor were programmed and interfaced under Atmel Studio environment. In addition, a bootloader and OTAFU(Over The Air Firmware Update) functionality was programmed into one solution of the doorman project. Cloud communication function was operated by MQTT and Node-Red in order to turn on or off the motor remotely.

OATFU OTAFU is abbreviation of Over The Air Firmware Update which refers to download new update image and update the device. This function can be triggered by cloud Node-Red dashboard. The Doorman MCU will first check to see if update is required and if so, downloads the firmware image from a remote HTTP server. After writing the update into the NVM flash memory, it does a CRC32 check to make sure the update was correctly copied. If checksum test pass, the device restarts and OTAFU is completed.

Peripherals There were 3 main peripherals that the system contained: a high torque motor, an IR distance sensor, and a force variable resistor. Motor: The motor was chosen such that it could provide enough torque to adequately move the average door at a reasonable speed. It was calculated that the motor would need to generate 0.105 N-m of torque with 3” wheels. The motor we chose, the Adafruit DC gearbox motor boasts 0.6N-m of torque with the attached gearbox at max power. Force Sensor: We wanted to have a physical sensor the user could interact with to manually trigger the door opener and the force sensor provided a more robust way than a pushbutton. The user can push on it using a hand, foot, or other body part without regard to breaking the sensor. The force sensor acts as a variable resistor and was wired up to a voltage divide to read the input force. The input pin was configured as an ADC pin with a threshold for triggering the motor. IR Sensor: The IR sensor is the sensor that allows for hands free door opening. It is oriented upwards and will detect if something is above it. We used an external Pololu IR Sensor Carrier Board that outputs a voltage based off of the distance detected. We read this voltage output as from an ADC pin on the MCU

MCU+Wi-Fi The MCU module is SAMD21 chip on PCB board. The WINC1500 Wi-Fi module is included in the SAMW25 MCU-Wifi chip combo. It comes pre soldered and wired to receive and send messages. On the PCB, ground vias were placed around the WiFi antenna to for shielding.

Power Management The power system was designed with a 1S LiPo battery in mind. The battery would be charged using a micro-USB port. Additionally a fuel gauge IC included to monitor battery levels. From the nominal 3.7V battery, two voltage levels (3.3V and 6V) served as the primary power planes on the PCB.

The motor needed to drive the wheels to open the door was the primary constraint on the power system. We wanted to supply a maximum of 1.8A at 6V to the motor and so chose both a motor driver and a 6V boost design to be able to support that. The 6V boost had a direct line to the 1S LiPo battery to not violate the max current capacities of the charging and fuel gauge ICs. Thick traces were used throughout the 6V rail to provide the least resistance.

The MCU and the IR sensor were the primary consumers on the 3.3V rail. The 3.3V buck IC was chosen to be able to support a max of 500mA.

3D Printed Chassis The chassis is what puts all the electronics together. Interfacing hardware to attach to a variety of doors needed to be designed. Additionally, the PCB needed to be mounted to the motor to form a complete moveable assembly. Solidworks was used to CAD the components, and Makerbot 3D printers were used for printing.

Challenges we ran into

PCB Programming: We were unable to successfully program the custom PCB, potentially due a wiring error in the PCB design process. To work around this, we instead used the SAMW25 Explained Development Board for our final demo. While adapting to this design change, we had to make a few design changes. In particular, we lacked a motor driver to supply the maximum voltage and current to our main motor. Furthermore, the GPIO pins were unable to directly supply enough power. We were able to successfully drive the motor by using a NPN transistor to control the 5V power supply with a GPIO gate voltage.

What I learned

  1. PCB schematics and layout design on Altium
  2. PCB board programming to realize Wi-Fi, main functions and bootloader
  3. Interface compilation between MQTT, Node-Red and board

What's next for doorman

We plan to better size our power system to handle larger doors. We can make our battery usage more efficient. A mobile application allows users to better access their devices. Finally, we hope to add multi-device support so that users can have multiple DoorMen inside their homes.

Share this project:

Updates