Inhoudsopgave:

IPhone en Arduino garagedeuropener - Ajarnpa
IPhone en Arduino garagedeuropener - Ajarnpa

Video: IPhone en Arduino garagedeuropener - Ajarnpa

Video: IPhone en Arduino garagedeuropener - Ajarnpa
Video: Garage Controller 2024, Juli-
Anonim
IPhone en Arduino garagedeuropener
IPhone en Arduino garagedeuropener

Ik volg vaak veel technische instructables en ben altijd verbaasd over de dingen die mensen bedenken. Een tijdje geleden vond ik een instructable op een wifi-garagedeuropener waarvan ik dacht dat het echt cool was en voegde het toe aan mijn oneindige takenlijst met leuke projecten. Snel vooruit naar het heden, en ik was nog steeds niet aan het project toegekomen. Maar ik heb wel een baby gekregen (nou ja, mijn vrouw had dat, ik niet). Mijn schoonouders waren zo vriendelijk om 5-daagse zorg bij mij thuis aan te bieden (ja, ik ben verwend) maar ze hadden me gesmeekt om ze een garagedeurklikker te geven om in hun auto te houden, in plaats van het temperamentvolle toetsenbord te gebruiken buiten de garage. Dus twee opties lagen voor mij. Neem de vijf minuten om hun clicker voor mijn garage te herprogrammeren. Of neem een paar weken de tijd om eindelijk aan mijn garagedeuropenerproject te werken. En zo, bingo-bango, werd mijn instructable geboren.

Ik ging terug naar het oorspronkelijke bericht en hield van veel hardwarefuncties die de auteur gebruikte, maar de software is niet precies wat ik wilde. Dus de oplossing die ik wilde, moest de volgende kenmerken hebben:

  • Geen wachtwoord nodig
  • Zou alleen moeten werken wanneer verbonden met mijn huis-LAN
  • Aangepaste app op mijn iPhone om hem te bedienen
  • Gebruik een Arduino met een ethernet- of wifi-schild
  • Maak het schoonfamilie proof

Stap 1: Wat je nodig hebt

Wat je nodig hebt
Wat je nodig hebt
Wat je nodig hebt
Wat je nodig hebt
Wat je nodig hebt
Wat je nodig hebt

"loading="lazy" mijn code geschreven en geüpload naar zowel de Arduino als de iPhone, het was tijd om te debuggen. Aangezien ik nog niet alles op mijn garage had aangesloten, wilde ik het gedrag op de een of andere manier nabootsen. Cue de LED's.

Ik nam twee rode en twee groene LED's aangesloten zoals op een eerdere foto. Een set groen en rood zou de linkerdeur vertegenwoordigen en de resterende set voor de rechterdeur. Als een van beide deuren gesloten was, zou het groene lampje non-stop knipperen. Als er anders een deur open was, zou het rode lampje knipperen. Ik heb gekozen voor de initiële staat van de deuren die gesloten moeten worden (groene knipperende lampjes) want als ik de Arduino voor het eerst aansluit op de opener, ga ik ervoor zorgen dat de deuren gesloten zijn.

Om te zien hoe het werkt, kun je de korte (crappy res -- sorry!) video ervan in actie bekijken. Voila! Werkt tot nu toe!

Stap 7: Het aansluiten

Omdat mijn 3D-printer wordt onderhouden, heb ik nog geen kans gehad om een hoesje te printen. De eerdere instructable waarop ik deze heb gebaseerd, heeft.stl-bestanden die kunnen worden gedownload. (Opmerking: als u van plan bent de.stl-bestanden te gebruiken, zijn de eenheden in cm, na correspondentie met de auteur. Ik moest mijn.stl-bestanden met een factor 10 schalen omdat mijn printer in mm-eenheden werkt). Ik zal het ontwerp moeten aanpassen omdat ik twee deuren heb en dus twee relais nodig heb. Maar omdat ik graag alles aangesloten wil hebben, begon ik de elektronica te monteren op een stuk oud hout dat ik nog had liggen. Dus ik zal niet het absolute eindproduct in deze instructable presenteren.

Toen de elektronica eenmaal op het stuk hout was gemonteerd dat ik had, was het eenvoudig om er een tijdelijk onderkomen aan de muur voor te vinden. Op de foto's zie je een beetje een warboel van draden die lopen van de router naar de Arduino, de Arduino naar het relais en ten slotte het relais naar de garagedeurknoppen. Toen ik de eigenlijke knop losliet en de behuizing van de muur schroefde, waren er slechts twee draadaansluitingen. Dus, net als de instructable waarop ik de mijne baseerde, kun je de draden van het relais in willekeurige volgorde aan de klemmen op de deurknop haken.

Hierna werkte de hele installatie de eerste keer op magische wijze! Sorry voor het niet plaatsen van een video. Ik moest het tijdelijk verwijderen voordat ik een video kon maken van het werken, maar ik zweer het, het deed het!

Stap 8: Laatste gedachten

Nadat ik hier een beetje mee gespeeld had, merkte ik een aantal problemen op die ik hieronder zal noemen. Deze zijn nogal belangrijk, dus overweeg ze alstublieft voordat u besluit dit project te dupliceren.

  • Er was een inconsistente latentie tussen het indrukken van de knop op de iPhone en het laten reageren van de garagedeuren. Dit kan een software- of implementatiefout zijn, maar ik ben het nog aan het onderzoeken.
  • Een groot probleem: nadat ik de app in de iPhone-app had geladen, merkte ik dat na een paar dagen wanneer ik de app probeerde te openen, deze in plaats daarvan gewoon terugkeerde naar het startscherm. Dit was een consistent gedrag. Na een tijdje mijn hersens te hebben gekweld, stortte ik eindelijk in en plaatste de vraag op stackoverflow. Het antwoord van een man leek juist te zijn: het kwaadaardige rijk dat Apple is geworden, heeft besloten dat als je geen ontwikkelaar bent, het vertrouwenscertificaat dat je van Xcode voor je nieuw ontwikkelde app verkrijgt, slechts 1 week geldig is. Daarna werkt het niet op je iPhone, tenzij je het opnieuw installeert (en de aftelprocedure van 1 week wordt gereset) of je betaalt $ 99 voor een langer certificaat. Ik vond dit volkomen ontmoedigend. Bijna alsof ik mijn tijd heb verspild. Maar als u een ontwikkelaar bent, is dit geen probleem voor u.
  • Een gedachte die bij me opkwam, was dat als iemand handmatig op de garagedeurknop drukt, deze gebeurtenis niet wordt vastgelegd in de Arduino-code. Dus wat de Arduino betreft, blijft de status van de deur ongewijzigd voordat de knop wordt ingedrukt. Bovendien, als iemand onder de deur stond terwijl een andere persoon de app gebruikte om deze te sluiten. De deursensoren dwingen de deur om weer omhoog te gaan en ook deze gebeurtenis wordt niet vastgelegd in de Arduino-code. Onnodig te zeggen dat dit een ander punt is om uit te zoeken.

Dus bedankt voor je geduld en nogmaals mijn excuses voor een deel van het buggy-gedrag. Laat het me weten als je vragen hebt!

Aanbevolen: