Skip to content

Categorical Data Logging Wifi Button (Arduino Uno Shield Design)

Notifications You must be signed in to change notification settings

87designer/arduino_wifi_button

Repository files navigation


Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Acknowledgments

About The Project

After being introduced to Arduino and electronics through the "30 Days Lost in Space" Adventure Kit from Inventr, I was served a social media ad for a small consumer button device that logged events to a dashboard, via wifi. Seeing how I could potentially leverage a device like this in my day to day, my gears got to turning.

Arduino + New Electronic Skills = I can make that

And with that, the AWB0412 categorical data logging wifi button was born. (as an Arduino Uno Shield)

When the device is powered on the LED in the top left will be red. After successful network connectino has been made, the LED will turn Green. When a Button is pressed the LED will blink blue.

There are 4 buttons on the shield giving the ability to log up to 12 different types of events using the methods of single click, double click, & hold +1 second for each button.



3D Model with Components (Designed using KiCad)



PCB (Vendor Mockup from Gerber files)

(back to top)

Built With

  • Arduino
  • C++
  • Kicad
  • Google Sheets
  • Google Apps Script

(back to top)

Getting Started

Prerequisites

  1. Install the Arudino IDE on your computer
  2. Install appropriate Drivers for the Hero board
  3. Install ESP Libraries
  4. Configure Cloud storage and app
    • Setup a Google Sheet to accept the timestamps and categories.
    • Deploy Google Apps Script code to listen for category request and write it to the google sheet.

Materials:

  • 1 x Arduino Hero
  • 1 x A-Male to B-Male USB Cable
  • 1 x ESP8266 ESP-01 Wifi Module
  • 1 x AWB-0412 Arduino Uno Shield PCB
  • 1 x Pin Headers (1x10)
  • 2 x Pin Headers (1x08)
  • 1 x Pin Headers (1x06)
  • 4 x 10ohm Resistor
  • 3 x 220ohm Resistor
  • 1 x RGB LED
  • 4 x 12mm Tactile Button
  • 1 x EG1271 DPDT Switch Slide
  • 1 x 78B02ST DIP Switch Slide

Installation

After construction of the Shield is complete, mount the shield to the Arduino and connect to your computer using the compatible USB cable to power on.

  1. Open up the Arduino IDE and ensure the correct Board and Port are selected.
  2. With all switches on the shield in the operating position, upload a blank sketch to the Arduino.
  3. Power down / disconnect the USB cable and slide DPDT switch and top DIP switch (this will enable programming mode for the wifi module when powered is restored).
  4. Reconnect the USB and change the board assignment in the IDE to the ESP8266 wifi module (the port should be the same so ensure it is still assigned)
  5. Upload the wifi sketch to the ESP8266.
  6. Once the sketch is finished uploading, slide the top DIP switch on and off to reset the wifi module.
  7. Power down / disconnect the USB cable and return all switches to operating position.
  8. Reconnect the USB and change the board assignment in the IDE back to the Arduino.
  9. Upload the button sketch to the Arduino.
  10. Once the sketch is finished uploading, power down / disconnect the USB cable from the computer and the device is ready to operate from an appropriate power source (battery, wall plug, usb cable.)

(back to top)

Usage

Infant Tracker

One usage example of the AWB0412 wifi button shield would be as an Infant Tracker to help sleep deprived parents keep track of diapers, feedings, sleep schedule etc.

(back to top)

Roadmap

  • Breadboard Prototype to test functionality
  • Document Prototype in hobby CAD software (Tinkercad / Fritzing)
  • Electronic Design Automation (EDA), and
    • Schematic Capture
    • PCB Layout with Gerber output
  • Develop Final button commands
  • Develop Method of Powering Device
  • Draft Documentation
  • Assemble Shield & Test Hardware
  • Finalize Documentation
  • Design / Fabricate a Housing possibly 3D printed model

(back to top)

Acknowledgments

(back to top)