Japri
/ja prē/
Noun
- A smart system that gives users access to control and monitor connected home appliances (such as: lights and door) and even notifying users on certain events. Doesn’t it sound like J.A.R.V.I.S (Just A Rather Very Intelligent System)? In Javanese accent (an Indonesian dialect), J.A.R.V.I.S. sounds like “Japri”, hence Japri.
- Jalur Pribadi (Indonesian sentence translted to English: private lane/connection). This system is made with security in mind. It is made accessible only to authorized users. Hence, Japri.
Japri involves a web application and embedded system to work together to provide users real-time data such as sensors data and live streaming images from a browser. The web server is in the Raspberry Pi 3 that is housed under the kiosk screen, which is also why there are many cables coming in there.
Japri is an initiative I made after I graduated from Iowa State University to pursue my interest in learning new technologies, and create a product that will be useful for me and others. So far this has been very beneficial to me and my roommates. i.e: I am able to know when a friend of mine comes knocking on my door!
I’ve been talking too much in text, and since a picture is worth a thousand words, here is Japri in action:
Highlighted features:
Get notified when you have your lights on during a bright day. Save up some electricity bills, yes!
Communicate with your roommate.. from your desk (without screaming).
Unlock your door by tapping a tag on the door. No more awkward pauses in trying to fit your key into that archaic tiny keyholes.
Control your light… from a distance… I mean your bed.
Read essential information before leaving home through a kiosk screen.
Currently, I use these APIs: Verse of the Day, Weather Forecast, and Nextbus (Bus system in Ames, Iowa).
Don’t worry about your home :) Japri will notify you by email when it detects movement in front of your home. The attachment of the email is the important part. I decided to generate an animated GIF file that contains several images before and after the motion is detected.
These are the GIF frames dissected:
| Frame 1 | Frame 2 | Frame 3 | Frame 4 | Frame 5 | MOTION DETECTED | Frame 6 | Frame 7 | Frame 8 | Frame 9 | Frame 10 |
The concept is like Apple’s Live Photos, I want to show moments before and after a motion is detected, this will give users a context of what happened when Japri detects motion through the motion sensor.
Have a house that listens to your needs. Yes, voice commands!
Japri has some useful voice commands such as:
“Turn on/off the lights”
“I feel blue” — we all have that one day…
and even “Unlock the door.”
Basically all of the commands in Japri can be hooked up with a voice command.
Future features:
- Text-to-speech. Japri may talk in the future
- Alexa Voice Service. Japri can be more intelligent with the help of Alexa
- Music player
The technologies I used to build the web application are:
Node.js: powers the web server and all of the logic to operate this smart home system
Socket.io: provides real-time data exchange
Angular.js: provides an Model View Architecture (MVC) architecture for the front-end
Japri also provides RESTful services. Pro: Reusability! When I make a native Android/iOS app, I can easily connect Japri’s REST API endpoints to other applications.
Lessons learned:
- Before working on this project, I made a checklist containing all of the features I want to do. Most of them were new to me, but that did not stop me. I confronted many roadblocks while implementing those features, and my dream/vision keeps me up to tackle those roadblocks! So, never be afraid of diving into the unknown and learning new things.
- In addition, be sure to plan and design before implementing your ideas. Spending more time in designing an application’s architecture to make it future-proof will save you a lot of time in the future because you will not waste time redoing your works.
- Don’t make holes on your apartment’s door if you still want to keep your deposit money.
If you have any question about the project or if you have career opportunities for me, I am available to be contacted via email at kelvienhidayat@gmail.com
I am looking for a job in Software Engineering area in the USA or Indonesia.
For more technical explanation, please visit my code repository: Github
At last, Javanese people will say “Matur nuwun” — Thank you for reading!