Introduction: Passme, QUALCOMM, Dragonboard 410c, 96Boards, Tec De Monterrey
INTENTION
The intention of this project was to build a smart network in private neighborhoods with the purpose that the residents can send a signal by Bluetooth or Internet to their guests so they can have quick access without any information exchange or time issues at the time they need to enter the neighborhood.
MATERIALS
DragonBoard 410c
96Boards Sensors Mezzanine
10.1 HDMI Monitor
HDMI Cable
Logitech Keyboard
Servo motor
Jumpers
Step 1: CONNECTING THE DRAGONBOARD410c WITH THE MEZZANINE BOARD
We create a connection between the 96boards Sensor Mezzanine and the Dragonboard 410c to make a PWM signal to could take control about a Servo motor.
The instructions to install the Arduino IDE were follow on this link
github.com/96boards/Sensor_Mezzanine_Getting_Started
To Update Debian
$ sudo apt-get update
$ sudo apt-get dist-upgrade -u
Do you want to continue? [Y/n] y
Install extra tool packages
$ sudo apt-get install arduino-mk arduino git build-essential autoconf libtool swig3.0 python-dev nodejs-dev cmake pkg-config libpcre3-dev
$ sudo apt-get clean
Using ATMEGA IO
Releasing ATMEGA from reset
$ stty -F /dev/tty96B0 -hupcl # Release ATMEGA from reset
$ stty -F /dev/tty96B0 hupcl # Place ATMEGA into reset
Using Command Line Tools
$ mkdir -p sketchbook/Blink
$ cd sketchbook/Blink
$ cp /usr/share/arduino/examples/01.Basics/Blink/Blink.ino .
$ ln -s /usr/share/arduino/Arduino.mk Makefile
$ make upload reset_stty # The reset_stty target releases reset
Using python to run the board GPIOs go to this link:
https://github.com/96boards/96BoardsGPIO
Install the source code
git clone https://github.com/jackmitch/libsoc.git
cd libsoc
./autogen.sh && ./configure --enable-board=""
make && sudo make install
# " is dragonboard410c or hikey or bubblegum.
git clone https://github.com/96boards/96BoardsGPIO.git
cd 96BoardsGPIO
./autogen.sh && ./configure
make && sudo make install
sudo ldconfig
Our project requires to connect the Dragonboard 410c to an online real time database in order to communicate with the users. To achieve this, the Firebase database was used on this link:
github.com/thisbejim/Pyrebase
A simple python wrapper for the firebase APL was used.
On the link, it can be found instructions for installation and methods for gathering and uploading or editing data from database. An example code is provided. Images(1.1, 1.2, 1.3)
Step 2: APP AND BLUETOOTH
The first step was creating a program in python, this program
oversaw inquiring every Bluetooth device that was in range near the board, showing in the display the list of available devices with their name and Bluetooth ID, making it easier to identify them in future programs.
To make sure that the board was making a strong connection with the other devices, we made a program who´s purpose was to type a Bluetooth address and at the time you compile the program it can show up the last Bluetooth connections made by the device, showing name of the used program and information about the last time it was used, this way we can be sure that the board and the device are having a good connection between them.
Then we proceeded to make a program that was in charge of creating a messaging exchange between board and device, this program first needed the Bluetooth ID of the device, which we got using the inquiry program. To prove if the program was working in an appropriate way we needed to create an app to use in the device (cellphone), once the app was created, we ran the program and started typing in the board display, and the message was shown in the device, and vice versa. Image(2.1, 2.2)
The first function named child-added is executed each time a element is added to the data base, this function calls the checklist function, which reads all the access contacts and shows them in a graphic manner.
The next function named child-changed is executed each time that one of the data base elements is modified and calls the checklist function too. Image(2.3)
Each time a contact is pressed, the readOnce function is called so it can return the property access value, once this value is written, it changes the value in the data base.Image(2.4, 2.5)
openD function makes true the valor of the trying property.Image(2.6)
ExtraImages(2.7, 2.8, 2.9)
Step 3: HARDWARE INSTALLATION
We connected the DragonBoard 410c display with the HDMI cable, which was assembled to a Mezzanine tabloid. We connected the servo motor with the help of jumpers in pin 9.Image(3.1)
RUBEN EMILIO RUIZ GAMEZ
JOSE GREGORIO MARQUEZ MEDINA
SERGIO PANDURO RODRIGUEZ
DENISSE MARIA RAMIREZ COLMENERO
CESAR DANIEL RIVAS SOLANO
JOSE ALBERTO TORRES GONZALEZ
LUIS EMILIO SALGUEDO