Who created it?

Suhas Hariharan - 476 Shourjo Chakravarty - 477


There was no easy way to control and program basic infrared appliances(TVs,ACs, fans) , programmatically. We created Easy IR to help address this issue and allow any end user to control their appliances easily and in an effective manner.

What it does

Easy IR is essentially a simplistic programming environment to interface with any Infrared appliance. We have created a website that makes it easy to record and add devices as well as control them via our simple programming language, it uses easy-to-follow command words such as "run" and "wait" to make it intuitive for anyone's usage.

How we built it

On our frontend we have a website running, html, css and javascript that interfaces with our web server(can be hosted on raspberry pi or pc) which runs Python and flask. The web server is triggered by several different commands, such as recording or running code. We then have a python program that parses this request and depending on what it is for will start the recording by utilising pyserial, or it will send an IR code to the arduino (also using pyserial) to broadcast, using an IR LED. We used libraries such as IRLibRecvPCI and IRremote (on the arduino) to send IR signals from the arduino. Before sending the request to the arduino, we had to parse the 'programming' that users inputted on our website, for this we used a python parser part of our flask web server.

Challenges we ran into

Data transfer between the arduino and host computer was a challenge, mainly because of the size of the data and the arduino buffer. We struggled to send over 256 bits at one go to the arduino. In fact, setting up communication took about a total of hours. Another challenge we faced was putting it all together after it was done, this was because near the end we had so many different parts in different forms/languages that meant we had to reprogram some parts.

Accomplishments that we're proud of

We got it working!

What we learned

C++ is not Python Interfacing with Arduino is a pain Learned a lot about website development and javascript Learned the complexities of creating a programming environment and parsing code.

What's next for BH-EasyIR

We plan on increasing the speed of transfers and creating example codes that can be utilized instantly. Another issue is that we were unable to send repeats of data via serial because of some arduino buffer issues, we plan on fixing this in order to make the "repeat" function work stably.

Built With

Share this project: