diff --git a/_posts/2018-04-12-gateway.md b/_posts/2018-04-12-gateway.md new file mode 100644 index 0000000..0949e9f --- /dev/null +++ b/_posts/2018-04-12-gateway.md @@ -0,0 +1,34 @@ +--- +layout: post +title: "Gateway - IoT Identifier" +date: 2018-04-12 +categories: + - projects +description: IoT is revolutionary and can make your life easier - but first it needs to know who you are. +image: https://images.idgesg.net/images/article/2017/10/wireless_network_internet_of_things_iot_thinkstock_853701554-100739367-large.jpg +image-sm: +author: Natalie Cardinali +author-image: https://avatars3.githubusercontent.com/u/24848665?v=4 +author-bio: Computer Science student at Rochester Institute of Technology +author-email: natalievcardinali@gmail.com +author-social: + github: https://github.com/Ha1fByte/ + linkedin: https://www.linkedin.com/in/natalie-cardinali/ +--- +## Background +Sometimes projects start one way and end in a completely different one. Originally the idea for my project Gateway spawned from the simple issue of locking doors. Last school year I repeatedly had issues with my roommate forgetting her keys, and this year the issue returned because I now had three roommates rather than one. The original idea was an IoT gateway of some sort that would light up different LEDs on a base that would correspond with each roommate. That way no matter how much our schedules varied we would know who was home and be able to accommodate each other that way. Eventually the plan for CSH to make a Smart room for Imagine RIT came up and I was reminded of my plans for a way to id a user in a room, and that’s how the concept for Gateway was formed. +## Research i.e. Trial and Error +Most projects require at least a basic amount of research before they start, and while most software projects can get away with a basic 'learn as you go' approach, hardware projects are a little different. The most research that was done for this project was on how I was going to identify the people entering the room. RFID was one of my first thoughts as it was something relatively well known and documented. The issue that RFID eventually presented was distance. Normally RFID readers and tags can only be a few inches apart to work, and to get the to work farther apart than say- a foot, required modules that cost upwards of two hundred dollars. So, RFID was out. + +The next option I investigated was Bluetooth Low Energy or BLE technology. It was similar in concept to RFID, but it had a much longer range and had a much lower price point. The ultimate reason it wasn't picked was that it had a lot of restrictions on how it could ultimately be used. To id the person you need them to install an app with tracking software on it and have that software either enabled through their phone or active when they were near the BLE devices. I wanted my sensor to be able to id a person quickly and without any actions required by the person being identified. + +Eventually someone suggested facial recognition. It doesn't require the user to do anything other than look at the camera- and as luck would have it I knew of a service that could do the comparison of the faces without intimate knowledge of computer vison. The service was the Cognitive Face API that’s hosted through Azure, and after setting up an Azure account I was on my way. The one issue with using facial recognition was that I really didn't want to have a camera constantly taking pictures, so to solve this problem I used a proximity sensor. Through trial and error, I eventually ended up with the Parallax Ping))) sensor. It gave the ability to determine distance with relatively decent accuracy and I could use the distance of the nearest object to set off the camera. +## Assembly +The final product for this project is a Raspberry Pi 3 connected to a Parallax Ping))) with a PiCamera v2.1 attached to the RaspPi. +![diagram](https://github.com/Ha1fByte/Gateway/blob/master/Gateway%20Pin%20Diagram.png) + +## Going forward... + +This project is far from finished. Going forward I would like to have it interface with other CSH projects, because a sensor that doesn't do anything with the data it gathers isn't very useful. I also want to include a LCD screen so even without other projects it can still display meaningful output on its own. + +[The current iteration of the code can be found here on GitHub](https://github.com/Ha1fByte/Gateway/)