Internet of things project idea

Hello,

i am Junaid, a post graduate student interested in applying for GSOC this year. I feel that Beaglebone can be a great target for Internet of things applications. In this regard, we can develop a library that'll allow remote acquisition of various sensor data and on the basis of this data actuate the output devices connected to ARM target. We can limit the number of devices for a summer project.

I would like to have a feedback fromyou people about the idea.

Regards,
Junaid

Hello Junaid,

we can develop a library that'll allow remote acquisition
of various sensor data and on the basis of this data actuate
the output devices connected to ARM target.

I really like ideas that involve interfacing software to the real
world to make our lives better. Can you provide more detail about your
idea so that we can better understand what you intend to do? What are
some of the deliverables (i.e. what original work would you do)? What
devices will be involved (sensors, actuators, BeagleBone capes, etc)?
What research have you done into existing technologies? Have you
looked into SNMP?

Disclaimer: I'm just a community member sharing my thoughts. Take what
I have to say with a grain of salt. I'm not a mentor, and I'm not
involved in the selection process.

Thomas

Hello Junaid,

> we can develop a library that'll allow remote acquisition
> of various sensor data and on the basis of this data actuate
> the output devices connected to ARM target.

I really like ideas that involve interfacing software to the real
world to make our lives better. Can you provide more detail about your
idea so that we can better understand what you intend to do? What are
some of the deliverables (i.e. what original work would you do)? What
devices will be involved (sensors, actuators, BeagleBone capes, etc)?
What research have you done into existing technologies? Have you
looked into SNMP?

Disclaimer: I'm just a community member sharing my thoughts. Take what
I have to say with a grain of salt. I'm not a mentor, and I'm not
involved in the selection process.

I'm involved and would love to hear the answers to these questions.

Basically the idea has emerged from one of my other ideas of controlling and monitoring electrical home appliances. In that case, each home device is connected to (MicroController Unit) MCU through a relay. The MCU acts as a daughter board in this case. The MCU can communicate with the Beaglebone through either of the protocols I2C, SPI, Ethernet. There can be a large number of daughter boards connected to one Master beagleboard. Similarly energy meters are also interfaced with the beaglebone for monitoring. The electrical devices now needs to be controlled and energy status can be monitored over Internet. Only master will be connected to the internet and also to some kind of database for logging information.

The MCU daughter board can be any PIC/AVR MicroController board, I do have one of the prototype with me. Relay would be the most basic type of actuator involved in this project.

Junaid

Hey Junaid!

What you say seems cool! But I think it’ll be way better off if we integrate it with an already present IO library :smiley: I’m contributing to PyBBIO, and that’s precisely what the library aims to do - Develop arduino like interfaces and libraries in python. I have been working on IoT for the past 1 year and as you said, the most important thing is clean API for all the sensors. Some of the work has already been done, check it out with the link.
The TODO list with PyBBIO is HUGE! I’d definitely like to work with another student to help complete the tasks. I already contacted Alexander Hiam and has agreed to mentor the project, we can rope in a couple of other mentors as well!!

I put up a post here on the BeagleBoard google group - look it up. PyBBIO comes with a in built mini web framework for the very purpose of home automation etc.

Also one more thing, you don’t need to develop any interfacing libraries for communicating with MCU’s, they already exist [both language bindings and protocol drivers]. And the firmware on the MCU will differ from project to project - hence that code is not reusable. Relay is just simple GPIO. All this will not take more than a dozen lines of code and don’t really need API’s – we will mainly require them for various sensors.

Would you like to team up and discuss possibilities? It will be better for the project if two people work on it - it needs more man power!!

Regards,
Deepak Karki

Hi all,

My 2 cents
If you are thinking of working on PyBBIO, you could add support for Xively or other such similar services.
https://github.com/xively/xively-python
You’ll probably get more mentors from the company too.
Another neat idea is freeboard, since you are thinking about IoT
https://github.com/Freeboard/freeboard

Also, OpenCV,
Afaik, opencv python wrapper needs to be installed manually with

opkg install [http://dominion.thruhere.net/koen/angstrom/python-opencv_2.4.2-r3.10_armv7a-vfp-neon.ipk](http://dominion.thruhere.net/koen/angstrom/python-opencv_2.4.2-r3.10_armv7a-vfp-neon.ipk)

This was some time ago in Angstrom, maybe it has changed, not sure.
Also, not sure if support exists, but XBee, WiFi dongles, NFC, USB Bluetooth, etc. would be pretty cool to handle from within a python library.

Cheers,
Anuj

Also data logging on the SD card/USB drive.

Hey anuj!

We are thinking along the same lines :smiley: check this thread here and here!

regards,
Deepak

Hi Deepak,

That’ll be great to work over an existing library pyBBIO as this avoids reinventing the wheel. I’ll be having a look at the library shortly. Now exactly what are the tasks aimed for the development this summer?

One question that arises in my mind is relevant to software verification and validation. Unlike pure software, the problem here arises in the unit tests. We can’t write test cases without interaction with external hardware. What is your opinion about it?

Junaid

Hi Deepak,

That’ll be great to work over an existing library pyBBIO as this avoids reinventing the wheel. I’ll be having a look at the library shortly. Now exactly what are the tasks aimed for the development this summer?

I’m not sure what to limit ourselves to this summer!
That we can discuss with Jason Knider and the community! We should rope in on a couple more mentors if the project is going to be as big as we think it’ll be :slight_smile:

One question that arises in my mind is relevant to software verification and validation. Unlike pure software, the problem here arises in the unit tests. We can’t write test cases without interaction with external hardware. What is your opinion about it?

Definitely! I agree.
The thing is I have a huge pile of hardware lying about at home - from LCD screens to XBee’s and also Accelerometer and gyros!
I’m guessing you have a few pieces of hardware too! So it shouldn’t be a problem :slight_smile:

All right, I’ll be looking forward for that discussion. Mean while, I’ll have to get a review over Python, as I haven’t been in touch with it for around an year but that’ll not take much time.

Yeah, I do have some pieces of hardware lying with me which probably every hobbyist embedded software developer has :). One of the greatest way that I have found for verification of communication protocols is by emulating one ARM device as a sensor. This worked for me in cases when I don’t have access to oscilloscope/logic analyzer.

Regards,
Junaid

Hello,

I think, we should now start shaping up ideas for this summer. Is there any ideas in your preference list for pyBBIO?

Regards,
Junaid

There’s a list of ideas going here: https://github.com/alexanderhiam/PyBBIO/wiki/GSoC-2014-ideas

Feel free to add anything you can think of. Once it’s more finalized I’ll transfer it over to a the beagleboard.org wiki.

Junaid!
I have updated the wiki a couple of days ago with my ideas. Have a look.

Thanks for the info. I’ll soon start off with the proposal.

Junaid.

Hi everyone!!
just read this thread, I too have been working on PyBBIO and have some sensors lying around, I would love to contribute to writing code for those sensors and contributing to PyBBIO, anyways I can squeeze in?? :wink:

Hello,

On going through the write up, an idea came into my mind for writing up automated functional tests for pyBBIO. The scenario will be to connect 2 beaglebone board headers through a ribbon cable and run automated tests. The test procedure will comprise of a sequence of events happens, like

Board A ============ Board B
I2c send ============ i2c receive
I2c receive===========i2c send
Gpio write===========gpio read
Gpio read============gpio write
… List goes on

I think this will help a lot, simplifying the software verification procedure. Whenever some modification is made, what we need to do is to connect 2 beaglebones together and execute automated test script. What do you say over it?

Regards,
Junaid.

This looks interesting :smiley:

Hello,

On going through the write up, an idea came into my mind for writing up automated functional tests for pyBBIO. The scenario will be to connect 2 beaglebone board headers through a ribbon cable and run automated tests. The test procedure will comprise of a sequence of events happens, like

Board A ============ Board B
I2c send ============ i2c receive
I2c receive===========i2c send

This is a bit of a nitpick at this stage, but I2C is a bus where SDA connects to SDA and SCL connects to SCL. These lines are bidirectional.

Gpio write===========gpio read
Gpio read============gpio write
… List goes on

I think this will help a lot, simplifying the software verification procedure. Whenever some modification is made, what we need to do is to connect 2 beaglebones together and execute automated test script. What do you say over it?

I like it, though I can also imagine wiring a single board in a loop back condition, perhaps using the PRUs to provide stimulus.

Can it be clarified as to what exactly is being proposed here? I
see 2 things possible things being suggested here:

1. The obvious idea of a functional test setup.

2. Writing a I2C slave driver so that (1) can be implemented. Or
is there an existing I2C slave driver somewhere?