Inhoudsopgave:
- Stap 1: Krijg al uw benodigde materialen - ongeveer $ 100
- Stap 2: Stel deeltjesfoton in
- Stap 3: Verbind deeltje met servo, breadboard en zoemer
- Stap 4: Knipperende code naar de foton
- Stap 5: Maak een doos om alles in op te bergen
- Stap 6: SmartThings-apparaathandlers
- Stap 7: Alles samenbrengen
Video: IoT Cat Feeder met behulp van Particle Photon geïntegreerd met Alexa, SmartThings, IFTTT, Google Spreadsheets - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
De noodzaak van een automatische kattenvoerbak spreekt voor zich. Katten (de naam van onze kat is Bella) kunnen onaangenaam zijn als ze honger hebben en als uw kat is zoals de mijne, zal ze de kom elke keer droog opeten. Ik had een manier nodig om automatisch een gecontroleerde hoeveelheid voedsel af te geven op 3 manieren: 1. Alexa-spraakopdracht, 2. volgens een schema en 3. via een knop in SmartThings. Ik wilde ook een manier om bij te houden hoe en wanneer de kat wordt gevoerd, zodat we niet twee keer voeren (soms wanneer mijn vrouw de kat voert en ik de kat 15 minuten later weer voer).
Dit project is niet al te moeilijk, ik ben geen ontwikkelaar of ingenieur, maar er waren veel bronnen online die me hielpen. Ik verzamel alles wat ik heb gebruikt en alle stappen die nodig zijn om ook dit project te voltooien. Veel plezier, en gelukkig bouwen!
Stap 1: Krijg al uw benodigde materialen - ongeveer $ 100
Hier is alles wat ik heb gekocht om deze kattenvoeder te maken. Het was ongeveer $ 100, wat iets meer is dan mijn geplande $ 75, maar ging voor onderdelen van betere kwaliteit om ervoor te zorgen dat het lang meegaat. Sommige materialen die ik al had om de doos te maken zoals houtlijm, lijmpistool, 18ga spijkermachine, schuurpapier, houtvuller, enz. Deze vallen naar mijn mening onder "gereedschap" en zijn niet allemaal nodig. Ik doe er soms gewoon alles aan om dingen mooi te maken.
Als u van deze exacte producten afwijkt, zorg er dan voor dat uw servo een metalen tandwiel heeft en noteer het aantal tanden, omdat uw servo-arm / hoorn hetzelfde aantal tanden moet hebben. De servo en arm hieronder zijn 25T, wat 25 tanden betekent. Ik gebruikte ook een plastic arm bij de eerste doorstart en de tanden waren binnen een week na gebruik gestript, dus ga niet de plastic route, pak metaal.
1. Particle Photon $ 19,99
2. Breadboard- en jumperdraden $ 7,69
3. Servo $ 19,99
4. Metalen servo-arm / hoorn $ 8,98
5. Piezo-zoemer $ 5,05
6. Granendispenser $ 14,95
7. Vezelplaat van ijzerhandel voor de doos, 2 stuks voor het geval je $ 20 verknoeit
8. Rustoleum gehamerde spuitverf $ 5,97
8. Diversen items zoals schroeven, houtlijm, spijkers, schuurpapier, houtvuller, enz.
Stap 2: Stel deeltjesfoton in
De eerste stap is het verbinden van uw Particle Photon met internet. Dit is heel eenvoudig, vooral met de handleidingen van Particle. Download de Particle-app op je telefoon, maak een particle-account aan en volg de handleiding om hem met je wifi te verbinden. Bekijk de video en volg deze instructies!
docs.particle.io/guide/aan de slag/start/photon/
Stap 3: Verbind deeltje met servo, breadboard en zoemer
Oké, nu moeten we het deeltje verbinden met de servo en zoemer met behulp van een breadboard. Bevestig je deeltje aan het breadboard en laat aan elke kant 2 gaatjes achter, het maakt niet echt uit waar het deeltje daarbuiten wordt geplaatst. Ik heb mijn draden aan de zoemer gesoldeerd en vervolgens hete lijm gebruikt om hem vast te zetten. Een eenvoudigere methode zou zijn om terminalconnectoren of stootverbinders te gebruiken en deze met een tang te krimpen. Dat is jouw keuze.
Sluit de servodraden aan:
VIN Rode servodraad
A5 Gele servodraad
GND Zwarte servodraad
Sluit de draden van de zoemer aan (maakt niet uit welke welke is):
D0 Zoemerdraad
GND Zoemerdraad
Stap 4: Knipperende code naar de foton
Nu je het hebt aangesloten, laten we de firmwarecode naar het foton flitsen en testen of de zoemer een melodie speelt en de servo draait.
Log in op de particle build-console met uw account
Klik op de codeknop op de linker werkbalk. Kopieer en plak de meegeleverde firmwarecode (cat_feeder.c) in de buildconsole, vervang daar standaard elke bestaande code.
Een kleine uitleg over de feed-functie. Aangezien voeding kan worden opgeroepen door 3 verschillende methoden (knop, stem, schema), hebben we 3 verschillende commando's nodig om elke gebeurtenis te publiceren, zodat we weten hoe de kat werd gevoerd. Deze commando's zijn "bfeed" bij invoer via de knop, "sfeed" bij invoer volgens schema en "vfeed" bij invoer via spraakcommando's.
Klik op de knop Map zoeken om uw code op te slaan en geef deze een naam naar keuze.
Klik op de verificatieknop (het lijkt op een vinkje met een cirkel eromheen). Na enkele ogenblikken zou u in de onderste statusbalk het volgende moeten zien:
Code compileren… Code geverifieerd. Goed gedaan! Klaar.
Klik nu op de Flash-knop op de linker werkbalk (ziet eruit als een bliksemschicht). Na enkele ogenblikken zou u in de onderste statusbalk het volgende moeten zien:
Knipperende code… Flash succesvol! Uw apparaat wordt bijgewerkt. Klaar.
Log vervolgens in op de deeltjesconsole
Klik op je Particle Photon. Dit is een statuspagina voor uw apparaat, u kunt in de gebeurtenislogboeken zien wanneer acties worden ondernomen, zoals knipperende code of wanneer gebeurtenissen worden gepubliceerd door de feed-opdrachten aan te roepen. Om een feed-opdracht te starten, gebruikt u de functie-tegel aan de rechterkant van deze console. Aangezien de functie in de code "feed" wordt genoemd, zou u deze en een invoervak voor argumenten moeten zien.
Typ "bfeed" in het invoervak voor argumenten en klik op Bellen.
Dit zou de melodie moeten spelen en vervolgens de servo moeten draaien. Als u wilt, kunt u voor testdoeleinden de vertragingstijd in de code wijzigen van 330 MS in iets langer als 5000 als u de servo-draaiing wilt verifiëren. U moet elke keer dat u wijzigingen in de code aanbrengt op de Flash-knop klikken. U zult de vertraging waarschijnlijk later moeten aanpassen om de gewenste hoeveelheid beurt te krijgen (zoals het voeren van een hond, misschien wilt u meer voer geven).
Stap 5: Maak een doos om alles in op te bergen
Deze stap bestaat uit je goede, ouderwetse timmervaardigheden. Ik heb vezelplaten van 2 -2x4ft gekocht om de doos te maken omdat hij sterk, glad aanvoelt, relatief goedkoop is en gemakkelijk te snijden/werkt. U kunt elk materiaal kiezen. Deze stap is echt naar eigen goeddunken in hoe het is gebouwd, omdat iedereen verschillende behoeften heeft. Ik heb geen gedetailleerde stap voor stap voor het maken van de doos, maar ik kan het denkproces en de methoden die ik heb gebruikt delen.
Er waren een aantal factoren waarmee ik rekening hield bij het ontwerpen van de doos. Ik wilde dit ding zo compact mogelijk hebben. Ik wilde dat het gemakkelijk te onderhouden was om het te reinigen en/of te repareren als het ooit defect zou raken. Ten slotte wilde ik dat de dispenserbuis zichtbaar was, zodat ik zichtbaar kan zien wanneer het voedsel bijna op is. Met dit in gedachten heb ik eerst de doos gemaakt en vervolgens de binnenafmetingen gemeten om een vierkant frame te maken waaraan de dispenser-eenheid, servo en bord zijn bevestigd. Op deze manier kan de hele unit direct uit de doos worden getild voor onderhoud. Zie de foto's.
Stap 6: SmartThings-apparaathandlers
In deze stap wordt uitgelegd hoe u het aanroepen van de feedfunctie implementeert met SmartThings en Alexa. Om dit te doen moest ik 2 groovy device handlers schrijven. Een van de handlers is voor "bfeed" wanneer ik op de knop in SmartThings druk en de andere handler is voor "vfeed" wanneer ik Alexa vraag om Bella te voeden met een spraakopdracht. Een andere reden om 2 verschillende handlers te hebben, is dat Alexa alleen apparaten herkent die schakelaars zijn, geen knoppen. Dus ik moest Alexa misleiden om een schakelaar te herkennen om de functie op te roepen (uit en aan om dezelfde actie uit te voeren). Oké, laten we beginnen.
Log in (of maak een account aan) bij de IDE SmartThings-portal op https://ide.smartthings.com met uw Samsung-account of SmartThings-account.
Controleer of uw SmartThings-hub wordt weergegeven onder 'Mijn locaties' en 'Mijn hubs'. Als dit niet wordt weergegeven, lost u dit op voordat u doorgaat.
We zullen eerst de Button Handler maken
Klik op "Mijn apparaathandlers" in de bovenste navigatiebalk.
Klik op de blauwe knop "Create New Device Handler"
Selecteer het tabblad "Van code" en plak de code uit het bijgevoegde bestand button_handler.groovy. Klik vervolgens op Maken.
Klik op "Opslaan" en "Publiceren" "Voor mij". U zou een groene melding moeten zien verschijnen met de tekst 'Apparaattype succesvol gepubliceerd'.
Ga nu naar je telefoon en open de SmartThings-app. U zou de handler moeten zien verschijnen als een nieuw apparaat. U moet de handler configureren zodat deze naar uw deeltjesapparaat wordt verzonden. Selecteer het nieuw gemaakte apparaat en open de Instellingen (lijkt op een tandwielpictogram).
Voer de apparaatnaam in - Noem het apparaat wat u maar wilt, ik weet zeker dat uw kat ook niet Bella heet.
Voer toegangstoken in - Het toegangstoken is te vinden in de Particle Build-console https://build.particle.io/ onder de instellingen (tandwielpictogram linksonder). Het toegangstoken zal een tekenreeks van 40 tekens zijn.
Voer apparaat-ID in - De apparaat-ID is te vinden op de Particle Console-pagina als een reeks van 24 tekens en wordt ook weergegeven in alle deeltjes-URL's wanneer u bent ingelogd op uw account terwijl u op uw deeltjesapparaat werkt. Apparaat-ID wordt VET weergegeven in de URL:
Klik op Opslaan.
Klik op de Feed-knop!
Door op de feed-knop te klikken, zou je de melodie moeten horen en de servo moeten laten draaien. U zou ook gebeurtenissen moeten zien die zijn gepubliceerd in het gebeurtenislogboek van de partikelconsole.
Vervolgens gaan we de Device Handler voor Alexa maken
Volg dezelfde procedure als hierboven. Ga naar de IDE SmartThings-portal en klik op "My Device Handlers" in de bovenste navigatiebalk. Klik op de blauwe knop "Create New Device Handler"
Selecteer het tabblad "Van code" en plak de code in het bijgevoegde bestand alexa_handler.groovy. Klik vervolgens op Maken.
Klik op "Opslaan" en "Publiceren" "Voor mij". U zou een groene melding moeten zien verschijnen met de tekst 'Apparaattype succesvol gepubliceerd'.
Ga nu terug naar je telefoon en open de SmartThings-app. Je zou de handler moeten zien verschijnen als een nieuw apparaat, maar deze keer zonder enige knop. U moet de handler configureren met uw toegangstoken en apparaat-ID, net zoals u eerder deed.
Selecteer het nieuw gemaakte apparaat in SmartThings en open de Instellingen (lijkt op een tandwielpictogram).
Voer de apparaatnaam in - Geef het apparaat een naam die u maar wilt, ik noemde het "Cat Feeder Handler for Alexa", zodat mijn vrouw weet dat het niet de Cat Feeder-knop is.
Voer Toegangstoken in en Voer Apparaat-ID in en klik vervolgens op Opslaan.
Open nu uw Alexa-app op uw telefoon. Als je dit nog niet eerder hebt gedaan, schakel dan de SmartThings Alexa Skill in en koppel je SmartThings-account aan de Alexa-app. Ga vervolgens naar het Smart Home-scherm en klik op "Apparaat toevoegen". Dit kan ook worden gedaan door "Alexa, ontdek apparaten" te zeggen. Een apparaat zou moeten verschijnen met een schakelpictogram, het zal de naam krijgen die u de handler in SmartThings hebt genoemd. Je kunt de naam ervan in de Alexa-app wijzigen als je wilt, maar onthoud dat dit een schakelaartype is, dus je moet zeggen "Alexa, zet aan" of "Alexa, zet uit". Ik weet dat dit niet leuk is om te zeggen "Zet de kattenvoer aan", dus een alternatief is om een nieuwe routine in de Alexa-app te maken en deze te noemen met de zin die je precies wilt. Ik heb een routine gemaakt met de naam "Feed Bella" die de schakelaar van de kattenvoeder inschakelt.
Door op de schakelaar in de Alexa-app te klikken, zou je nu met succes de feed-functie moeten aanroepen. Het gebeurtenislogboek van de Particle Console moet ook de gebeurtenissen posten die dit aangeven.
Als je eenmaal alles hebt genoemd zoals je het wilt, ga je gang en probeer het eens!
Stap 7: Alles samenbrengen
Het laatste stuk dat ik niet heb behandeld, is hoe je de feeds plant en de gepubliceerde evenementen in een Google-spreadsheet opneemt. Je denkt waarschijnlijk dat de Alexa-app kan worden gebruikt om een routine voor het schema te maken, maar dit zou ons niet in staat stellen om schema versus spraakopdracht of knop te loggen. Dus in plaats daarvan is er al een IFTTT-applet voor deeltjes die we zullen gebruiken.
Laten we de IFTTT-applet maken voor het plannen van feeds
Ga naar https://ifttt.com of download de IFTTT-smartphone-app en log in (maak zo nodig een account aan)
Als IFTTT nieuw voor je is, is het heel eenvoudig. Elke applet bestaat uit een ALS (een voorwaarde of trigger) en een DAT (een actie om te doen).
Dus zodra u bent ingelogd bij IFTTT, maakt u een nieuwe applet, selecteert u IF en zoekt of selecteert u "Datum en tijd". Je configureert dit naar elk gewenst schema. Ga vervolgens door de stappen en zodra u bij DAT bent, zoekt u naar "Particle" en selecteert u "Call a Function". Vul de velden in zoals in de bovenstaande schermafbeelding, zorg ervoor dat u "sfeed" als invoer gebruikt, aangezien dit de opdracht is die nodig is om een "Gevoed volgens schema" -gebeurtenis te publiceren. Mogelijk moet u verbinding maken met of inloggen op uw deeltjesaccount tijdens het instellen van deze applet. Sla de applet op en je zou goed moeten zijn om te gaan. Als je wilt testen, verander dan gewoon de datum en tijd in de toekomst en kijk of het goed wordt geactiveerd.
Nu om de IFTTT-applets te maken voor het afhandelen van de 3 gebeurtenistypen
Er zijn 3 commando's waar we rekening mee moeten houden wanneer de kattenvoerbak draait. Deze zijn hard gecodeerd in de deeltjesfirmware:
Bella gevoed door schemaBella gevoed door knopBella gevoed door spraakopdracht
Als uw huisdier niet "Bella" heet, wilt u dit waarschijnlijk in de firmware wijzigen en opnieuw flashen. Wijzig de tekst in de regel Particle.publish van de deeltjescode.
Maak een nieuwe IFTTT-applet. (moet dit 3 keer doen, voor elk type evenement)
Begin met de IF, zoek naar Particle en selecteer "Nieuw evenement gepubliceerd". De gebeurtenisnaam moet de exacte gepubliceerde gebeurtenisnaam zijn die u in uw firmware heeft. "Bella gevoed volgens schema" is bijvoorbeeld de exacte naam van het evenement in de code die ik je heb verstrekt. Bekijk de schermafbeelding zoals ik deze ter referentie heb ingevuld. U moet nog 2 IFTTT's maken om ook de andere evenementen af te handelen. Deze applet maakt een nieuw blad aan in uw Google Drive als het nog niet bestaat en registreert nieuwe gebeurtenissen in de volgende lege rij.
Aanbevolen:
Meting van versnelling met behulp van ADXL345 en Particle Photon: 4 stappen
Meting van versnelling met behulp van ADXL345 en deeltjesfoton: De ADXL345 is een kleine, dunne, ultralaagvermogen, 3-assige versnellingsmeter met hoge resolutie (13-bits) meting tot ±16 g. Digitale uitvoergegevens zijn geformatteerd als 16-bits tweetallen en zijn toegankelijk via de digitale I2 C-interface. Het meet de
Meting van versnelling met behulp van H3LIS331DL en Particle Photon: 4 stappen
Meting van versnelling met behulp van H3LIS331DL en Particle Photon: H3LIS331DL, is een low-power high-performance 3-assige lineaire versnellingsmeter die behoort tot de "nano" familie, met digitale I²C seriële interface. H3LIS331DL heeft door de gebruiker selecteerbare volledige schalen van ±100g/±200g/±400g en is in staat om versnellingen te meten met
Meting van temperatuur met behulp van ADT75 en Particle Photon: 4 stappen
Temperatuurmeting met ADT75 en Particle Photon: ADT75 is een zeer nauwkeurige, digitale temperatuursensor. Het bestaat uit een bandgap-temperatuursensor en een 12-bits analoog-naar-digitaalomzetter voor het bewaken en digitaliseren van de temperatuur. Zijn zeer gevoelige sensor maakt hem competent genoeg voor mij
Meting van temperatuur met behulp van AD7416ARZ en Particle Photon: 4 stappen
Meting van temperatuur met behulp van AD7416ARZ en deeltjesfoton: AD7416ARZ is een 10-bits temperatuursensor met vier enkelkanaals analoog naar digitaal converters en een ingebouwde temperatuursensor erin. De temperatuursensor op de onderdelen is toegankelijk via multiplexerkanalen. Deze zeer nauwkeurige temp
Meting van vochtigheid en temperatuur met behulp van HTS221 en Particle Photon: 4 stappen
Vocht- en temperatuurmeting met HTS221 en Particle Photon: HTS221 is een ultracompacte capacitieve digitale sensor voor relatieve vochtigheid en temperatuur. Het bevat een detectie-element en een mixed signal application specific integrated circuit (ASIC) om de meetinformatie te leveren via digitale seriële