Stap 1: Algemene idee
Voordat u begint is het altijd goed om een algemeen idee van hoe het project werkt. We praten in termen van software bits in plaats van specifieke apparaten omdat de hardware die we gebruikten toevallig de degene die we al hadden en niet alles nodig is. Natuurlijk in de volgende stappen gaan we in meer detail.
Dus hoe werkt het precies?
Elk lid van de familie heeft een smartphone (sorry, maar dit is een voorwaarde!): laten we het nemen van gebruiker A, die een Android telefoon heeft.
Er is een app die volgt op de huidige locatie (de app werkt op iOS ook) op deze telefoon. Wanneer de app gebruiker A locatie heeft gewijzigd detecteert, stuurt het de huidige positie (geografische coördinaten) naar een server. Het gebruikte protocol is MQTT, zodat de server heet de "makelaar" en de app op de smartphone "" naar het publiceert.
Een node.js applicatie die draait op een server heeft "geabonneerd" elke update voor gebruiker A, dus het is op de hoogte van deze nieuwe positie. De server weet de geografische coördinaten van elke mogelijke plaats voor gebruiker A: thuis, op het werk, enz. Het vergelijkt de huidige positie tot deze gegevens en concludeert de locatie van de gebruiker. Het maakt vervolgens een API-aanroep op de wolk van de vonk voor de klok dienovereenkomstig wijzigen.
Hoe weet de server de coördinaten voor elke mogelijke plaats voor deze gebruiker? Het haalt ze uit een MySQL-database elke zes uur, dus als een gebruiker hun favoriete restaurant of hun werkplek wijzigt, de code nog steeds werkt, ze hoeft alleen de coördinaten in de database bijwerken
Nu dat de algemene workflow duidelijk is, we kunnen aan de slag!
Materiaal dat nodig is
Zoals hierboven vermeld, moet u zitten kundig voor verschillende hardware te gebruiken, aangezien de meeste van de hulpprogramma's waarmee we eens met veel van platformen. Echter,, bevelen wij het volgende:
- Raspberry PI
- Spark Core: dit project haalt voordeel uit de zeer specifieke mogelijkheden van de cloud vonk
- 74HC595 shift registreert... maar we zullen terugkomen die snel genoeg!
- LED's: veel van hen! In ons geval kiezen we voor het bijhouden van de vijf familieleden. Elk heeft hun toegewezen kleur (rood/blauw/wit/geel/groen) en kan in 12 verschillende plaatsen (een van hen wordt "Onbekend") dus dat is 60 LEDs
- Behuizing: aangezien het interessante deel van dit project, volgens ons het elektronische deel is, het totale bouwproces van de behuizing is niet heel goed gedetailleerd (ook omdat we niet het zo mooi als maken we wilden!). De interne structuur werd gedaan met multiplex en de externe moest worden gedaan met acryl
Met 12 verschillende plaatsen de inspiratie vandaan voor het project, de klok van Harry Potter, maar je kon gemakkelijk dit veranderen in iets anders, en wijzigen van de behuizing dienovereenkomstig