Embedded Linux Class by Mark A. Yoder
Team members: Mohit Sharma[B12006], Siddharth Gangal[B13232], Ankur Sardar[B13108], Pushpender[B13132]
The goal of this project was to build a smart room that captures the happenings in and out the room and performs certain assigned functions accordingly. The first in the list is an automatic door lock system for the room. For this one there is be a camera overlooking the door. Whenever someone approaches and is in the pre-required range of the camera, it clicks a photo and sends it to the concerned owner who then can approve and then the door would automatically unlock. Second one covers the fact that if the door is left open for more than an assigned period, a message will be forwarded to the owner regarding the same. Third point of implementation includes a temperature sensor inside the room, that monitors and controls the speed of the fan.
If you have hardware, consider Small Build, Big Execuition for ideas on the final packaging.
Give step by step instructions on how to install your project.
STEP 1 Install the WiFi adapter
STEP 2 First set the time (just to be sure)
/usr/bin/ntpdate -b -s -u pool.ntp.org
STEP 3 Install socket.io
cd /var/lib/cloud9 npm install socket.io
This takes a few minutes, wait until installation is complete.
We encourage you to use the Cloud9 IDE as often as possible to program your BeagleBone. First read the previous part: Cloud 9 IDE on the BeagleBone Black.
With the Cloud9 IDE open, you can create a folder and file in your workspace. Follow these steps:
Right-click the cloud9 folder and choose New Folder from the shortcut menu. Name the new folder Projects. Right-click the Projects folder and choose New File from the shortcut menu. Name your file index.html. Repeat step number 3. and name your new file smarthome.js.
Creating your Web Server Your smarthom.js file is the last piece of the puzzle. First you have to load all the required modules and configure your BeagleBone Black’s pin. You also initialize a web server on port 8888. Then you establish the communication between server.js and index.html files using socket.io. the code is in this following link:
Launching your web server Launching your web server is easy. You simply save all two files. Click the green button “Run” in the Cloud9 IDE, and you should see a message in your output window that says “Server Running . . . “.
That’s it, your web server is up and running! Open a tab in your web browser, and type http://192.168.7.2:8888.
This web page only opens only if your computer is connected directly to the BeagleBone Black by USB. If that’s not the case, read the next section to see how to access the BeagleBone through a device connected in your workspace network.
Accessing your Web Server with another device To access your web page in any device inside your network, you need your BeagleBone Black’s Ethernet IP address. Open your terminal and type the following command: ifconfig
Now you can type your Ethernet IP address followed by the port number (example http://192.168.1.80:8888) in a web browser of any device. Now you can control any outputs remotely!
1. Camera captures image and sends it to the owner to open solenoid valve clock. 2. If door is left open for long, message is sent to the owner. 3. Body comfort varies with ambient temperature and wind speed. Speed of fan is regulated using BeagleBone.
Theory of Operation
Give a high level overview of the structure of your software. Are you using GStreamer? Show a diagram of the pipeline. Are you running multiple tasks? Show what they do and how they interact.
- Processing of image, sending to user over a webpage using HTML5, message to user and the model to demonstrate - Ankur and Mohit.
- Proximity Sensor for door open and close, sourcing components and getting circuit ready - Pushpendra and Siddharth.
We can include voice recognition features to control speed of fan, turning lights ON and OFF inside the room.
This was an interesting project to work with. We got to learn a whole lot of new things working with BeagleBone.
Embedded Linux Class by Mark A. Yoder