Introduction: Tweeting Doorbell

Picture of Tweeting Doorbell

In this instructable, I will explain how to make a very simple project with DragonBoard 410C + Grove Starter Kit for 410C.
To run this tutorial you'll need:

Qualcomm DragonBoard 710C Board.

Grove Starter Kit for 410C

Compatible Power Supply for the board.

PC with Linux Ubuntu 16.04 (I used this distribution in this tutorial).

USB Mouse and Keyboard.Monitor with HDMI Interface

HDMI Cable

To run this tutorial, you need a DragonBoard 410C with Linux Linaro-Alip. To install it, refer to these tutorials, available in Portuguese at Embarcados and in English in Instructables. To set everything for the Grove Starter Kit for 410C, refer to this tutorial available in Instructables.

Visit Grove Starter Kit for DragonBoard homepage for more informations about the expansion kit for 410C. To download the Schematic, access this link.

So, let's start!

Step 1: Create a Twitter App

Picture of Create a Twitter App

Go to your twitter account and create an app.

Step 2: Insert All Informations and Create an App

Picture of Insert All Informations and Create an App

Step 3: Fill the Form

Picture of Fill the Form

Step 4: Twitter: Keys and Access

Picture of Twitter: Keys and Access

Access Keys and Access Tokens tab in your app, that you just created.

Get all the tokens and create a file in 410C, called with all your information in it.

consumer_key = "aaaaaaaaa"
consumer_secret = "bbbbbbbbbbb"
access_token = "cccccccccc"
access_token_secret = "dddddddddd"

Step 5: Clone 96Boards Repository With Examples

git clone
sudo apt-get install python-tweepy

Go inside Starter_Kit_for_96Boards folder

Step 6: Code

cd tweeting_doorbell

Copy the file you created,, here.

Edit tweeting_doorbell.ino

const int buttonPin = 4;<br>const int ledPin = 3;
const int buzzerPin = 5;
int pressed = 0;
void setup() {
        pinMode(buttonPin, INPUT);
        pinMode(ledPin, OUTPUT);
        pinMode(buzzerPin, OUTPUT);
void loop() {
        pressed = digitalRead(buttonPin);
        if (pressed == 1) {
                digitalWrite(ledPin, HIGH);
                digitalWrite(buzzerPin, HIGH);
                digitalWrite(ledPin, LOW);
                digitalWrite(buzzerPin, LOW);


import tweepy, serial, datetime, time, keys, pyupm_i2clcd<br>auth = tweepy.OAuthHandler(keys.consumer_key,
api = tweepy.API(auth)
ard = serial.Serial('/dev/tty96B0', 115200)
ef tweet():
        today =
        msg = '(My Doorbell) Ding dong! Someone was at the door at %s' % \
                today.strftime('%d/%m/%Y %H:%M')
if __name__ == '__main__':
        print("Welcome to the tweeting doorbell! To quit, press CTRL + C")
                while True:
                        ardOut = ard.readline()
                        if ardOut.find("tweet") != -1:
        except KeyboardInterrupt:
                print("CTRL-C!! Exiting...")

Step 7: Mounting the Hardware

Picture of Mounting the Hardware

Connect the Button Grove Board to connector D4.

Connect the Buzzer Grove Board to connector D5.

Connect the Led Grove Board to connector D3 and Connect an LED to D1 connector at this board.

Step 8: Run!


make run
------------------------- Configuration:
- [COMPUTED]           ARDMK_DIR = /usr/share/arduino (relative to
- [AUTODETECTED]       ARDUINO_DIR = /usr/share/arduino
- [DEFAULT]            ARDUINO_SKETCHBOOK = /home/linaro/sketchbook
- [BUNDLED]            AVR_TOOLS_DIR =
/usr/share/arduino/hardware/tools/avr (in Arduino distribution)
- [COMPUTED]           ARDUINO_LIB_PATH = /usr/share/arduino/libraries
/usr/share/arduino/hardware/arduino/variants (from ARDUINO_DIR)
- [COMPUTED]           BOARDS_TXT =
/usr/share/arduino/hardware/arduino/boards.txt (from ARDUINO_DIR)
- [DEFAULT]            USER_LIB_PATH =
/home/linaro/sketchbook/libraries (in user sketchbook)
- [DEFAULT]            PRE_BUILD_HOOK =
- [DEFAULT]            BOARD_TAG = uno
- [COMPUTED]           OBJDIR = build-uno (from BOARD_TAG)
- [DETECTED]           MONITOR_BAUDRATE = 115200  (in sketch)
- [DEFAULT]            MCU_FLAG_NAME = mmcu
- [DEFAULT]            CFLAGS_STD = -std=gnu99
- [COMPUTED]           DEVICE_PATH = /dev/tty96B0 (from MONITOR_PORT)
- [AUTODETECTED]       Size utility: AVR-aware for enhanced output
/usr/share/arduino/hardware/arduino/bootloaders (from ARDUINO_DIR)
mkdir -p build-uno
make reset
make[1]: Entering directory
/usr/bin/ard-reset-arduino  /dev/tty96B0
make[1]: Leaving directory
make do_upload
make[1]: Entering directory
/usr/share/arduino/hardware/tools/avr/../avrdude -q -V -D -p
atmega328p -C /usr/share/arduino/hardware/tools/avr/../avrdude.conf -c
arduino -b 115200 -P /dev/tty96B0 \
                -U flash:w:build-uno/tweeting_doorbell.hex:i
avrdude: AVR device initialized and ready to accept instructions
avrdude: Device signature = 0x1e950f
avrdude: reading input file "build-uno/tweeting_doorbell.hex"
avrdude: writing flash (2550 bytes):
avrdude: 2550 bytes of flash written
avrdude: safemode: Fuses OK (E:00, H:00, L:00)
avrdude done.  Thank you.
make[1]: Leaving directory
Welcome to the tweeting doorbell! To quit, press CTRL + C
(My Doorbell) Ding dong! Someone was at the door at 24/12/2016 01:22
(My Doorbell) Ding dong! Someone was at the door at 24/12/2016 01:23

Step 9: Tweet!

Picture of Tweet!

Press the button. The buzzer will work ike a doorbell and a tweet will be send in your account.


About This Instructable



Bio: ​M.Sc. in Electrical Engineering in Rochester Institute of Technology at USA and CMO of Embarcados.
More by tpfslima:Tweeting With Raspberry PiTweeting DoorbellQualcomm Dragonboard 410C with Grove Starter Kit - First Steps
Add instructable to: