Inhoudsopgave:

Projectfeeder: 14 stappen
Projectfeeder: 14 stappen

Video: Projectfeeder: 14 stappen

Video: Projectfeeder: 14 stappen
Video: 14. Уроки React JS (css-модули, css-modules) 2024, November
Anonim
Projectfeeder
Projectfeeder

Altijd al uw huisdieren willen voeren terwijl u niet thuis bent, of gewoon vanuit uw luie stoel? Dan is dit project iets voor jou! Project Feeder is een open source-project waarmee u uw huisdieren automatisch of handmatig vanaf uw telefoon of pc kunt voeren. Ook kun je een livestream volgen en het eetgedrag van je huisdier volgen.

Voordat je start!

Dit project is een taak gemaakt voor de universiteit en was tijdgebonden, dus het is erg "werk in uitvoering". Daarom ben ik me ervan bewust dat er dingen zijn die kunnen worden verbeterd en in de toekomst mogelijk worden bijgewerkt. Ik moedig je aan om creatief te zijn, dit concept te verbeteren en uit te breiden.

Om te beginnen zullen we de vereisten bespreken om dit project te bouwen. Je hebt de onderstaande vaardigheden en tools echt nodig.

Maker vaardigheden:

  • 3D-printen of toegang tot een printservice
  • Solderen
  • Basiskennis elektronica

Gereedschap:

  • 3D-printer
  • Soldeerbout
  • Heet lijmpistool of andere lijm die werkt met filamentverbindingen voor 3D-printers
  • Schroevendraaiers

Benodigdheden

De totale kosten voor het bouwen van dit project bedragen ongeveer € 120, afhankelijk van waar u het onderdeel koopt en wat voor soort kortingen u krijgt.

Belangrijk:

Sommige onderdelen zijn gemarkeerd met " Uniek ", dit betekent dat het specifiek is voor het structurele ontwerp van de build en dat je een exacte kopie van dat onderdeel nodig hebt.

Raspberry Pi 4 Model B / 2GB + 16GB (min. vereiste) Micro SD-kaart

De voorraad op Rasberry Pi is momenteel zeer beperkt, dit zal wat rondkijken vereisen.

12V 60W voedingsadapter

www.banggood.com/AC-100-240V-to-DC-12V-5A-…

5,5 mm x 2,1 mm DC-voedingsaansluiting (uniek)

www.banggood.com/10pcs-5_5-x-2_1mm-DC-Power…

DC-DC 12V naar 5V 3A Buck Step Down Power Module (uniek)

www.banggood.com/LM2596-DC-DC-Voltage-Regu…

42 mm 12V Nema 17 tweefasige stappenmotor

www.banggood.com/42mm-12V-Nema-17-Two-Phas…

L298N Dual H-brugmodule

www.banggood.com/Wholesale-L298N-Dual-H-Br…

GY6180 VL6180X Tijd van vluchtafstandssensor

www.banggood.com/GY6180-VL6180X-Time-Of-Fl…

Infrarood Obstakel vermijden Sensor (x3)

www.banggood.com/3Pcs-Infrared-Obstacle-Av…

USB-camera

www.banggood.com/Electronic-Camera-Module-…

Achtergrondverlichting 16×2 LCD, 8051 microcontroller I2C

www.hobbyelectronica.nl/product/1602-lcd-d…

Bidirectionele niveauverschuiver

www.banggood.com/nl/Two-Channel-IIC-I2C-Lo…

Gemeenschappelijke waarde weerstanden (10k, 220R, 470R)

www.banggood.com/Wholesale-Geekcreit-600pc…

LED's (x2)

Diodes (x2)

12V AAN/UIT schakelaar (uniek)

www.banggood.com/5pcs-12V-Round-Rocker-Tog…

Moeren: 3x8mm, 3x10mm, 3x12mm

Stap 1: Flashen van de SD-kaart

De SD-kaart knipperen
De SD-kaart knipperen

Voor deze stap moet je je SD-kaart flashen met de meegeleverde afbeelding:

thomy.stackstorage.com/s/KbCfVgoU0t8gU3C

De afbeelding wordt geleverd met een vooraf gebouwde apache-webserver, database en code om te communiceren met de feeder. U hoeft dus niets te doen wat betreft het instellen van de software.

Als je de code wilt bekijken, kun je alle benodigde code krijgen van:

github.com/VanIseghemThomas/ProjectFeeder

Zorg ervoor dat u weet hoe u de SD-kaart correct moet flashen of onderbreek het proces niet, want dat kan resulteren in een beschadigde kaart. Voor het flashen van de kaart gebruikte ik software genaamd Win32DiskManager. Een ander programma waarvan ik weet dat het werkt en wat gebruiksvriendelijker is, heet Ethcer. Beide werken even goed.

Stap 2: SSH in de Pi

SSH in de Pi
SSH in de Pi

Wanneer het knipperen is voltooid, kunt u nu de SD-kaart in de pi plaatsen en inschakelen. Zorg ervoor dat je met een ethernetkabel op je pi bent aangesloten. Nu zou je er verbinding mee moeten kunnen maken via SSH met ip 169.254.10.1. Ik gebruik een programma genaamd PuTTY, maar als je geen zin hebt om software te installeren, kun je altijd de volgende opdracht typen in de opdrachtprompt:

ssh [email protected]

Open nu een sessie. Bij de eerste keer verbinden krijg je een waarschuwing, die kun je negeren en gewoon doorgaan. U wordt gevraagd om in te loggen als gebruiker en daarna het wachtwoord, voor deze afbeelding gebruikt u de volgende inloggegevens:

  • Gebruiker: feederpi
  • Wachtwoord: Redeef1

De 'pi'-gebruiker is ook actief, maar u kunt niet inloggen als deze. Dit komt omdat het is ingesteld om automatisch in te loggen op stroom en het programma uit te voeren. Daarom kom je bij het inloggen het volgende tegen:

[sudo] wachtwoord voor feederpi:

Druk gewoon op crtl+c en je zou nu een shell moeten hebben.

Typ nu het volgende:

sudo -i

Nu ben je ingelogd als root.

Stap 3: Wifi instellen

Wifi instellen
Wifi instellen

Nu bent u ingelogd als root en kunt u typen:

wpa_passphrase "Uw SSID" "Uw wachtwoord" >> /etc/wpa_supplicant/wpa_supplicant.conf

Typ het volgende om te controleren of uw configuratie correct is toegevoegd. U kunt desgewenst ook het platte tekstwachtwoord voor de veiligheid verwijderen, maar zorg ervoor dat u de wijzigingen bij het afsluiten opslaat.

nano /etc/wpa_supplicant/wpa_supplicant.conf

Nu kunt u uw pi opnieuw opstarten door te typen:

herstart nu

Geef de pi nu wat tijd om op te starten en weer in te loggen met SSH zoals voorheen, om te zien of je een verbinding met wifi hebt typ je:

ip a

Onder de wlan0-interace zou je iets soortgelijks moeten zien met een ip-adres, dit betekent dat je succesvol verbinding hebt gemaakt met je wifi. Later, als alles is aangesloten, zal de software dit op een LCD weergeven.

Stap 4: De onderdelen afdrukken

De onderdelen die u nodig heeft voor dit project vindt u hier:

www.thingiverse.com/thing:4459996

Het printen van al deze onderdelen duurt even, dus je hebt wat geduld nodig.

Dit zijn de instellingen die ik heb gebruikt (PLA):

  • Laaghoogte: 0,3 mm
  • Afdruksnelheid: 50-60 mm/s
  • Mondstuktemperatuur: 200°C
  • Bedtemperatuur: 60°C

Hier valt niet veel over te zeggen, behalve veel plezier met printen.

Stap 5: Montage van de onderdelen (intro)

De onderdelen monteren (intro)
De onderdelen monteren (intro)
De onderdelen monteren (intro)
De onderdelen monteren (intro)

Oké, nu gaan we verder met alles in elkaar zetten. Voordat ik het allemaal uitleg, zal ik een aantal dingen bespreken om in gedachten te houden en dat zal je helpen dit voor elkaar te krijgen.

TIP 1:

Ik heb besloten om alle gaten 2,5 mm te maken, behalve 3 mm zoals de bouten. Dit is zodat u een draad kunt tappen door de bouten in te schroeven en elimineert de noodzaak van moeren. De bout erin krijgen is vrij moeilijk, gebruik je soldeerbout om de bovenkant te verbreden, dit maakt het gemakkelijk om de bout erin te krijgen en te beginnen met schroeven.

TIP 2:

Als je net als ik bijna geen bouten meer hebt, schroef dan alleen diagonale paren in. Dit scheelt een hoop en werkt prima.

Stap 6: Montage van de bovenkant (dispenser)

De bovenkant monteren (dispenser)
De bovenkant monteren (dispenser)
De bovenkant monteren (dispenser)
De bovenkant monteren (dispenser)
De bovenkant monteren (dispenser)
De bovenkant monteren (dispenser)

De onderdelen zijn ingedeeld zoals op de foto.

Ze worden bij elkaar gehouden door de zogenaamde 'platen'. Een van de platen wordt op uw stappenmotor gemonteerd.

Zorg ervoor dat de bovenkant van de bouten gelijk ligt met het oppervlak, anders blokkeert de voeding. Gebruik hiervoor de 3x8mm bouten en het "Stepper_offset" model tussen de stepper en de buitenzijde van de plaat.

Zet nu de molen op de stepper, het zou vrij gemakkelijk moeten gaan. Zo niet, dan kun je wat vaseline gebruiken.

De rest is vrij eenvoudig, neem gewoon een schroef waar je een gat vindt.

Stap 7: Montage van de bovenkant (container)

De bovenkant monteren (container)
De bovenkant monteren (container)
De bovenkant monteren (container)
De bovenkant monteren (container)
De bovenkant monteren (container)
De bovenkant monteren (container)

Hier zie je hoe ik mijn container heb gemaakt. De bus wordt oorspronkelijk gebruikt voor gedroogde stukjes unie.

Bovenaan wil je de TOF-sensor bevestigen, deze wordt gebruikt om te meten hoeveel voedsel er nog in de container zit. Op de foto's kun je zien hoe ik het heb vastgemaakt. Eerst smolt ik de gaten voor de pinnen met mijn soldeerbout, daarna lijmde ik de sensor op zijn plaats met wat hete lijm terwijl de kabels werden aangesloten.

Voor het sluiten van de container heb ik met mijn soldeerbout 2 gaatjes gemaakt en 2 boutjes erin gedraaid. Een elastiekje, ritssluiting of draad kunnen allemaal worden gebruikt om het op die manier te sluiten.

Stap 8: Montage van de bodem

De bodem monteren
De bodem monteren
De bodem monteren
De bodem monteren
De bodem monteren
De bodem monteren

Voor de plaatsing van de verschillende modules verwijzen we naar de afbeeldingen, ze zijn vrij duidelijk. In een deel van deze foto's zit al bedrading, daar moet je voorlopig overheen kijken. De foto's zijn genomen tijdens de ontwikkeling van dit project. Aanvankelijk was het plan om een loadcel te plaatsen en het voedsel te wegen, maar omdat mijn loadcell-versterker op het laatste moment kapot ging, moest ik die functie schrappen en vervangen door een video-livestream die ook best netjes is. De optie is er altijd om een loadcel toe te voegen, maar je zult in de code moeten graven en wat dingen moeten bewerken.

Stap 9: Elektronica, sensoren en actuatoren

Elektronica, sensoren en actuatoren
Elektronica, sensoren en actuatoren
Elektronica, sensoren en actuatoren
Elektronica, sensoren en actuatoren
Elektronica, sensoren en actuatoren
Elektronica, sensoren en actuatoren
Elektronica, sensoren en actuatoren
Elektronica, sensoren en actuatoren

Nu is het tijd om de soldeerbout op te zetten. Ik heb 2 weergaven gegeven van wat je moet doen, een standaard elektrisch schema, een visuele weergave. Ik raad je ten zeerste aan om het elektrische schema te gebruiken omdat het veel meer inzicht geeft in hoe alles werkt en naar mijn mening met elkaar verbonden is. De enige reden dat de andere hier is, is omdat het verplicht was. De reden dat ik dit zeg, is omdat er niet veel ruimte is voor kabels, dus je zult efficiënt moeten zijn met het bekabelen van GND, +5V, enz., wat afhankelijk is van hoe je je kabels wilt laten lopen. Dus niet alles precies op elkaar aansluiten zoals in het schema, het werkt wel maar past niet.

Voor de schakelaar kun je zien dat ik alle 3 de kabels heb aangesloten, dit komt omdat de schakelaar wordt geleverd met een ingebouwde LED die aangeeft of de stroom is ingeschakeld. De 2 ongekleurde snoeren fungeren als schakelaar, het gekleurde snoer gaat naar GND.

Over het algemeen is dit de volgorde waarin ik alles heb aangesloten:

  1. Vermogensgedeelte: stroomaansluiting, h-brug, boost buck-converter, schakelaar
  2. Raspberry Pi (zie volgende stap voor meer info)
  3. IR-sensoren
  4. LED's
  5. Stappeningangen
  6. I2C-gedeelte: 3.3V, SDA, SCL

Het is niet essentieel maar wel handig om een prototype pcb te hebben liggen om aan te solderen zoals ik deed.

Vergeet ook niet de camera aan te sluiten op een USB-poort van de pi.

Belangrijk:

Zorg ervoor dat u de boost-buck-converter instelt op 5V voordat u het 5V-gedeelte van het circuit aansluit. Anders loop je het risico alles te frituren. Om dit aan te passen draai je aan de potmeter en kijk je naar de spanningsaflezing op het scherm.

Stap 10: Elektronica, Raspberry Pi

Elektronica, Raspberry Pi
Elektronica, Raspberry Pi

Vanwege beperkingen in de software om het schema te tekenen, kon ik niet tekenen hoe ik de Raspberry Pi moest aansluiten.

Voor +5V zou je gewoon kunnen aansluiten op de 5V-pin van de pi, maar dit omzeilt veiligheid zoals de zekering. Als je onderaan kijkt, zou je enkele pads moeten zien die zijn gelabeld als TPxx, in ons geval zijn we op zoek naar TP1 of TP2. Soldeer je +5V-kabel aan een van hen, maar pas op dat je niet met andere sporen overbrugt. Hierdoor vervalt hoogstwaarschijnlijk ook de garantie. Ik heb persoonlijk geprobeerd het op beide testpads aan te sluiten en kwam tot de conclusie dat het waarschijnlijk de gemakkelijkste en veiligste is om TP2 te gebruiken, het is uit de buurt van andere blootgestelde pads en er zijn niet veel sporen omheen.

Neem voor GND gewoon een van de pinnen bovenop, zoals het schema laat zien, dit is nu prima in orde.

Stap 11: De elektronica testen

Als alles goed is aangesloten is het een goede gewoonte om eerst alles te testen alvorens alles volledig in elkaar te zetten.

Hier een checklist:

  • IPV4-adres verschijnt op het lcd
  • In staat om verbinding te maken met IP via de browser
  • In staat om de stepper te draaien door te "voeden" en de LED's te zien oplichten
  • Lezen en bijwerken van containerstatus
  • Livestream van camera
  • Eetgebeurtenissen detecteren

Probleemoplossen:

Hier som ik enkele van de problemen op die ik tegenkwam en hoe deze op te lossen.

- Mijn LCD licht op maar geeft niets weer:

1) Op het moment van schrijven heeft de pi ongeveer 2 minuten nodig om volledig op te starten, dus je moet hem wat extra tijd geven.

2) U hebt uw LCD niet correct aangesloten. Je kunt zien of je het correct hebt aangesloten door de volgende opdracht in een shell te typen:

sudo i2cdetect -y 1

Dit moet 2 adressen teruggeven: 0x27 (=LCD) en 0x29 (=TOF sensor). Als 0x27 niet verschijnt, moet u de bedrading van het lcd-scherm controleren. Als beide niet verschijnen, moet u de bedrading van de SDA- en SCL-pinnen controleren. bijv. controleer of je de twee per ongeluk hebt verwisseld. In het ergste geval heb je iets verkeerd gedaan met de 2 afzonderlijke componenten of is er iets kapot gegaan.

- Mijn LCD-scherm blijft hangen bij "Verbinding maken met wifi"

Dit betekent dat je pi vastzit bij het proberen verbinding te maken met een van de netwerken die je hebt geconfigureerd om verbinding mee te maken. Dit betekent dat u zich niet binnen het bereik van het toegangspunt bevindt of dat u iets verkeerd hebt gedaan tijdens het configureren van b.v. een typfout. Ga in dat geval terug naar "WiFi instellen" en overloop het opnieuw.

De software is ook ingesteld om verbinding te maken met thuisnetwerken met een IP-adres dat begint met "192.168". Als uw netwerk is ingesteld met een ander privébereik zoals "10.0" of "172.16", moet u naar /home/pi/project/main.py gaan en in de functie get_ips() wijzigen: als "192.168" in ip als "Uw privébereik hier" in ip.

- Mijn LCD geeft het ip weer, maar ik kan geen verbinding maken:

1) Zorg ervoor dat u verbinding maakt met het 192.168. X. X ip, het andere ip 169.254.10.1 is altijd geconfigureerd om via ethernet rechtstreeks met uw pc te verbinden. Dit werkt niet als u niet bent aangesloten.

2) Zorg ervoor dat u zich op hetzelfde netwerk bevindt, of dat u port forwarding op uw netwerk heeft ingeschakeld als u de feeder van buiten het netwerk wilt benaderen.

- De stepper schudt en draait niet:

Dit betekent dat je de in- of uitgangen van de dubbele H-brug niet goed hebt aangesloten. Probeer ze om te wisselen totdat het werkt.

Stap 12: Voltooiing

Voltooiing
Voltooiing
Voltooiing
Voltooiing
Voltooiing
Voltooiing
Voltooiing
Voltooiing

Nu je hebt bedacht hoe je alles draaiende kunt krijgen, is het tijd om alles in elkaar te zetten. Ik moest de 2 delen met tape aan elkaar plakken, dit omdat het ontwerp van de gaten niet stevig genoeg is om de spanning vast te houden en bij mij barstte. Dit is een belangrijk punt dat in de toekomst moet worden verbeterd. Een schonere optie is om de twee delen gewoon aan elkaar te lijmen, maar dit kan een probleem zijn als er iets binnenin breekt en je toegang wilt krijgen tot de binnenkant. Daarom ging ik met goede oude elektrische tape.

Wanneer u naar de website gaat, wordt u begroet met een dashboard waar u dingen kunt doen zoals handmatig voeren, de status controleren, gegevens bekijken en presets toevoegen.

Stap 13: Extra: Chrome-extensie

Extra: Chrome-extensie
Extra: Chrome-extensie
Extra: Chrome-extensie
Extra: Chrome-extensie
Extra: Chrome-extensie
Extra: Chrome-extensie

Als je geen zin hebt om naar het dashboard te bladeren en gewoon snel de status of feed wilt controleren, kun je de Chrome-extensie gebruiken. Omdat het niet in de officiële Chrome-webwinkel staat, moet je het laden zoals je zo'n pakket zou ontwikkelen.

Zorg er eerst voor dat u de map Feeder Extension downloadt uit de github-map:

github.com/VanIseghemThomas/ProjectFeeder

Ga naar de volgende URL:

chrome://extensies/

Schakel daar de ontwikkelaarsmodus in en laad de extensiemap. Nu zou het als een extensie moeten verschijnen.

Als het niet in je Chrome-balk verschijnt, kun je het vinden in het Chrome-menu.

Stap 14: De software

De software
De software

Als je graag aan de software sleutelt of om de een of andere reden een nieuwe kopie van een bestand nodig hebt, zijn alle bestanden die je nodig hebt te vinden in de GitHub-repository die ik heb gemaakt:

Ik heb ook een EER-schema voor de database verstrekt, voor het geval je functies aan de API wilt toevoegen. Een dump van de database is ook te vinden in de GitHub-repository. Alle backend-code is geschreven in Python. Flask wordt gebruikt voor routing en Socket.io voor websockets.

Aanbevolen: