Remember in Style: a Rube Goldberg Birthday Notifier

by tetrodev232323 in Circuits > Arduino

85 Views, 0 Favorites, 0 Comments

Remember in Style: a Rube Goldberg Birthday Notifier

funny-happy-belated-birthday-meme-forgot.jpg
Final

Do you ever forget a friend's or family member's birthday? If so, this project is for you. The "Remember in Style: A Rube Goldberg Birthday Notifier" project combines hardware components, software tools, and a creative touch to make sure you never forget a special occasion again. The project utilizes a Google Sheet to store birthday information, an Arduino ESP8266 board to serve as a middleware between the Google Sheet and the Adafruit Circuit Playground, and a web-based time server to ensure accurate timing for the birthday reminders.

Supplies

  1. Adafruit Circuit Playground - (Including Speaker, Leds)
  2. Arduino ESP8266 board
  3. Arduino IDE for Circuit Playground Express
  4. Relay module
  5. Gmail account
  6. Google Sheet
  7. Integromat account
  8. USB.
  9. Pycharm IDE with python 3.9 installed
  10. Wifi ssid and password

Installing Arduino IDE for Circuit Playground Express

Installing Arduino IDE for Circuit Playground Express

Connect and Install ESP8266 Board

Screenshot 2023-02-15 at 3.13.00.png
Screenshot 2023-02-15 at 3.12.50.png

First follow the images.


For more info take a look: https://learn.adafruit.com/welcome-to-circuitpython/circuitpython-for-esp8266

Set Up the Google Sheet to Store Birthday Information

CreateGoogleSheet

Follow the video:

a. Create new google sheet file called BirthdayNotifier.

b. Add 2 titles: name and date in the first raw


Create "add Birthday Event to Google Sheet" Scenario in Integromat

Create "Add Birthday Event" Scenario In Integromat

Follow the video:

a. Under "All Scenarios" click on "Create a new Scenario"

b. Add webhooks module - "Custom webhook" with the name: "Add birthday event"

c. Copy the provided url and append to it "?name=fake-name&date=2-1-1993" will looks like: https://hook.eu1.make.com/pnsxygkuyr7q5t3588ad8ksmaaaaaaa?name=fake-name&date=2-1-1993

d. Make single request to the created url from c.

e. Connect another module. Google sheet - Add row module.

f. Choose a method: select by path, Spread sheet id: choose the BirthdayNotifier file.

g. Set the Values to be added: in raw A choose the name from the webhook event. In Raw B choose the date.

h. Save.

i. Press Test ones. and again make an get request from the browser to the created url from c.

j. If you follow correctly. New raw fake-name, 2-1-1993 will be added to the google sheet.

Create "Get Birthday Events From Google Sheet" Scenario in Integromat

Get Birthday Events From Google Sheet

Follow the video:

a. Under "All Scenarios" click on "Create a new Scenario"

b. Add webhooks module - "Custom webhook" with the name: "Get last birthday event from table". We pop only the last In order to not transfer heavy messages to the board.

c. Make get request to the provided url in the webhook.

d. Add another module. Google sheet - Get range values.

  1. Spread sheet id: choose the BirthdayNotifier file we created before.
  2. Range: set to: A1:B100. Will work only for the first 100 events!!!!.

e. Add another module. Flow Control / Array Aggregator.

  1. Source Module: Google Sheet - Get Range Values
  2. Aggregated Fields: A, B

f. Add another module. webhooks / response.

  1. Body: Array[] (from above)

g. Save.

h. Press Test ones. and again make an get request from the browser to the created url from c.

i. If you follow correctly. You will see all the items from the google sheet.

Create Python Web Server Middleware to Map a Simple HTTP to HTTPS Request

Web Server Middleware http https

Follow the video:

a. Download the python files from the link: https://drive.google.com/file/d/1nAKfqGBAoycPqkz6tiJyG_LiSxKoi4Xb/view?usp=sharing

b. Open Pycharm IDE and open the downloaded project.

c. Configure python - virtual environment (with python 3.6 and above)

d. Install req.txt into the created env.

e. set the url in

@app.route('/', methods=['GET'])
def get_handler():
# Replace with the URL of the webhook https url from "Create "Get Birthday Events From Google Sheet" Scenario In Integromat" / c.
url = "https://hook.eu1.make.com/d7w9us1ivcwagq6ryv2ygut5r0rrf5sd"
response = requests.get(url)


f. run the main.py file.

g. Make http request to localhost 127.0.0.1:8080

h. If you follow correctly. You will see the last item from google sheet.

Loading the Arduino Code and Configuring the Wi-Fi Connection

Screen Recording 2023 02 15 at 5 38 37

a. Download the Arduino code from the link: https://drive.google.com/file/d/1HqnGVOEsGyT6YWZ1Oxy0CpsdEyFDVyjk/view?usp=sharing.

b. Open the Arduino Integrated Development Environment (IDE).

c. Open the Arduino code RubeGoldbergBirthday/RubeGoldbergBirthdayNotifier/RubeGoldbergBirthdayNotifier.ino into the IDE.

d. Set the correct Wi-Fi SSID and password in the code.

e. Compile the code and ensure there are no errors.

f. Connect the Adafruit Circuit Playground to your computer using a USB cable.

g. Click on the "Upload" button in the Arduino IDE to copy the code onto the Adafruit Circuit Playground.


Activate Created Integromat Scenarios

Screen Recording 2023 02 15 at 5 28 01

Follow the video.

Final Project in Real Time

Final

More info in the video.