Inhoudsopgave:

Automatische hondendispenser - Ajarnpa
Automatische hondendispenser - Ajarnpa

Video: Automatische hondendispenser - Ajarnpa

Video: Automatische hondendispenser - Ajarnpa
Video: 3 manieren om je flex personeel beter te begeleiden | Beeple 2024, Juli-
Anonim
Automatische hondendispenser
Automatische hondendispenser
Automatische hondendispenser
Automatische hondendispenser
Automatische hondendispenser
Automatische hondendispenser

Met mijn project zorg ik ervoor dat wanneer je je hond alleen thuis laat, hij/zij nooit zonder eten zit.

De automatische feeder wordt "gehackt" vanuit een cornflakesdispenser. De dispenser is het reservoir voor hondenvoer, het wiel aan de onderkant wordt verbonden met een servomotor die automatisch voer laat vallen wanneer de wieg bijna leeg is en wanneer de hond dichtbij genoeg is. Aan de onderkant van de dispenser komt een PVC-buis die het hondenvoer mooi in de wieg laat vallen. Dit project zal daarom 3 sensoren hebben, waarvan 2 niet in de klas vallen en waarvan 1 een actuator is.

De eerste sensor is de RFID-lezer. Deze sensor controleert wanneer de hond in de buurt van de wieg komt. De RFID wordt verwerkt in de halsband van de hond. Als deze sensor merkt dat de hond dichtbij genoeg is, geeft hij een signaal door aan de tweede sensor. De tweede sensor is de gewichtssensor (niet gedekt in de les) die het voedsel in de wieg meet, als deze sensor detecteert dat het gewicht te laag is, zal hij een signaal sturen naar de servomotor die het voedsel in de wieg laat vallen (met bevestiging van de RFID en de gewichtssensor). Kortom, de hond krijgt alleen extra voer als hij/zij dicht genoeg bij het ledikant staat en als het ledikant bijna leeg is. Natuurlijk is er ook een limiet die je zelf kunt instellen via de webserver; zodat de hond niet teveel voer per dag krijgt. De derde sensor is een lichtsensor die een LED-schijnwerper verlicht wanneer het te donker is rond de wieg. De actuator zal daarom een servomotor zijn die is verbonden met het wiel in de dispenser.

Dit project is bedoeld voor honden, je kunt het ook gebruiken voor andere kleine huisdieren.

Benodigdheden

Raspberry Pi 3

Laadcel (1KG)

HX711 load cell versterker

voerbak

Granen dispenser

Hout (+ schroeven en schroevendraaier)

Licht sensor

LED

RFID-lezer rc522

Doorverbindingsdraden

16*2 LCD (weergave)

servomotor

5V voedingsadapter

Weerstand 470 Ohm

PVC-buis:

broodbord

Potentiometer

Zaag

Schuurpapier

Siliconen pistool

Stap 1: Pi-configuratie

Pi-configuratie
Pi-configuratie

Opstelling

Om te beginnen, moeten we eerst je Pi instellen.

Je hebt twee dingen nodig:

- Win32 Disk Imager van

- Raspbian OS-afbeelding van

Download het ZIP-bestand en pak het uit waar u maar wilt.

De installatie

1. Selecteer je afbeelding via het mappictogram

2. Selecteer je SD-kaart via de vervolgkeuzelijst

3. Klik op schrijven

Nu moeten we wat extra sleutelen aan sommige instellingen, zodat we toegang hebben tot de Pi.

1. Ga naar de opstartmap van de SD-kaart

2. Open het bestand "cmdline.txt"

3. Voeg ip=169.254.10.1 toe aan het einde van de lange tekstregel, gescheiden door een spatie (op dezelfde regel).

4. Sla het bestand op.

5. Maak een bestand met de naam ssh zonder extensie in dezelfde map

Nu kunt u de SD-kaart uitwerpen en in uw Pi plaatsen.

Verbinden

Nu moeten we de software instellen.

Sluit eerst een LAN-kabel aan, het ene uiteinde in je desktop/laptop en het andere in je Pi.

Start nu de Raspberry Pi op.

1. Installeer Putty van

2. Voer 169.254.10.1 in het IP-vak in.

3. Zorg ervoor dat SSH is geselecteerd en poort 22 is ingevuld.

4. Klik op openen

5. Vul de gebruikersnaam in: pi

6. Vul het wachtwoord in: framboos

Raspi-config

Open het hulpprogramma Raspi-config met behulp van:

sudo raspi-config

Schakel de volgende opties in de categorie interfaces in:

- 1-draads

- SPI

Schakel de volgende opties uit in de categorie opstartopties:

- Splash-scherm

Stel ten slotte de Desktop/CLI-instelling in de categorie opstartopties in op Desktop Autologin.

Wifi

Voor de hondenvoerbak hebben we een wifi-verbinding nodig, dus zorg ervoor dat je je wifi-inloggegevens bij de hand hebt.

1. Ga naar de root-modus

sudo -i

2. Plak deze regel maar zorg ervoor dat de SSID en het wachtwoord beide zijn ingevuld

wpa_passphrase "SSID" "PASSWORD" >> /etc/wpa_supplicant/wpa_supplicant.conf

3. Voer de WPA-client in.

Wpa_cli

4. Selecteer de interface

Interface wlan0

5. Laad de configuratie opnieuw

Opnieuw configureren

Zorg ervoor dat je correct bent verbonden door ip a te typen en te kijken of je een IP hebt op de WLAN0-interfaces.

Pakketjes

Nu we verbonden zijn met internet, moeten we enkele pakketten installeren.

Eerst moeten we de pakketlijsten vernieuwen voor de laatste.

sudo apt update

Python

We dwingen Raspbian om Python 3. te gebruiken

update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1

update-alternatives --install /usr/bin/python python /usr/bin/python3 2

MariaDB

Plak de volgende regel om de database te installeren.

sudo apt install mariadb-server

Dan moeten we onze installatie beveiligen.

mysql_secure_installation

Het zal ons om het huidige root-wachtwoord vragen, omdat we er geen hebben, druk gewoon op enter.

Vervolgens wordt gevraagd of we een root-wachtwoord willen typen in y, omdat we er een willen.

Voer voor de volgende vragen gewoon Y in.

Vervolgens maken we een gebruiker die we voor de spiegel kunnen gebruiken.

Voer de mysql-shell in door te doen:

- Verhef ons tot wortel

Sudo -i

- Voer de mysql-shell in

Mysql

- Vervang door uw eigen gebruikersnaam en hetzelfde met

alle privileges op *.* toekennen aan ''@'%' geïdentificeerd door '';

- alle privileges op *.* toekennen aan ''@'%' geïdentificeerd door '';

Vervolgens voegen we onze database toe.

Apache-webserver

Voer de onderstaande regel uit om de webserver te installeren.

sudo apt installeer apache2 -y

Python-pakketten

We gaan deze pakketten installeren

- Kolf

- Kolf-Cors

- Kolf-MySQL

- Kolf-SocketIO

- PyMySQL

- Gent

- Gevent-websocket

-

- Python-socketio

- Verzoeken

- Wsaccel

- Ujson

Door te doen

pip install Flask Flask-Cors Flask-MySQL Flask-SocketIO PyMySQL gevent gevent-websocket httplib2 python-socketio requests wsaccel ujson mfrc522 hx711 Adafruit-CharLCD

Stap 2: Led- en lichtsensor

Led- en lichtsensor
Led- en lichtsensor
Led- en lichtsensor
Led- en lichtsensor

De led aansluiten

  1. S -> GPIO15 (rxd0)
  2. + -> 5V
  3. G -> Weerstand 470 ohm en GND

De lichtsensor aansluiten

  1. UIT -> GPIO17
  2. VCC -> 3.3V
  3. GND -> GND

Nu kunnen we testen of onze led- en lichtsensor werkt met dit kleine script

importeer RPi. GPIO als GPIO GPIO.setmode (GPIO. BCM)

GPIO.setup (15, GPIO. OUT)

GPIO.setup (17, GPIO. IN)

probeer: terwijl True:

als GPIO.invoer (17) == 0:

GPIO.uitgang (15, GPIO. HOOG)

als GPIO.input (17) == 1:

GPIO.output (15, GPIO. LOW)

behalve KeyboardInterrupt: GPIO.cleanup()

Stap 3: Servomotor

Servomotor
Servomotor

De servomotor aansluiten

  1. UIT -> GPIO18
  2. VCC -> 5V
  3. GND -> GND

Nu kunnen we testen of onze led- en lichtsensor werkt met dit kleine script

importeer RPi. GPIO als GPIOimporttijd

GPIO.setmode(GPIO. BCM)

GPIO.setup (18, GPIO. OUT)

p = GPIO. PWM (18, 50)

p.start(12.5)

proberen:

terwijl waar:

p. ChangeDutyCycle(12.5)

tijd.slaap(1)

p. ChangeDutyCycle(2.5)

tijd.slaap(1)

behalve KeyboardInterrupt:

p.stop()

GPIO.opschonen()

Stap 4: RFID-lezer RC522

RFID-lezer RC522
RFID-lezer RC522

De RFID aansluiten

  1. RST -> GPIO6
  2. MISO -> GPIO9 (MISO)
  3. MOSI -> GPIO10 (MOSI)
  4. SCK -> GPIO11 (SPISCLK)
  5. SDA -> GPIO8 (SPICS0)
  6. 3.3V -> 3.3V
  7. GND -> GND

Nu kunnen we testen of onze RFID-lezer werkt met dit kleine script

importeer RPi. GPIO als GPIO

van mfrc522 import SimpleMFRC522

lezer = SimpleMFRC522()

text = input('Nieuwe gegevens:')

print("Plaats nu je tag om te schrijven")

lezer.schrijven(tekst)

print("Geschreven")

Stap 5: Laadcel HX711

Laadcel HX711
Laadcel HX711

De loadcel aansluiten op de HX711-driverkaart

  1. Rood -> E+
  2. Zwart -> E-
  3. Groen -> A+
  4. Wit -> A-

De loadcel aansluiten

  1. DT-> GPIO27
  2. SCK -> GPIO22
  3. ROOD -> 3.3V
  4. GND -> GND

Nu kunnen we testen of onze load cell werkt met dit kleine script

importeer RPi. GPIO als GPIO importeer tijd importeer sys uit klasses. HX711 importeer HX711

def cleanAndExit(): print("Opschonen…") GPIO.cleanup() print("Dag!") sys.exit()

hx = HX711 (22, 27)

hx.set_reading_format ("LSB", "MSB")

hx.set_reference_unit (2167)

hx.reset()

hx.tarra()

terwijl waar:

proberen:

val = max(0, int(hx.get_weight(5)))

print(val)

hx.power_down()

hx.power_up()

tijd.slaap(0.5)

behalve (KeyboardInterrupt, SystemExit): cleanAndExit()

Stap 6: LCD (16*2)

LCD-scherm (16*2)
LCD-scherm (16*2)

Het LCD-scherm aansluiten

  1. RS -> GPIO21
  2. RW -> GND
  3. E-> GPIO20
  4. D0 -> GPIO16
  5. D1 -> GPIO12
  6. D2 -> GPIO6
  7. D3 ->GPIO24
  8. D4 -> GPIO23
  9. D5 -> GPIO26
  10. D6 -> GPIO19
  11. D7 -> GPIO13
  12. VSS -> GND
  13. VDD -> 5V
  14. A -> 5V
  15. K -> GND
  16. V0 -> middelste potentio-pin

Nu kunnen we testen of ons LCD-scherm werkt met dit kleine script

importeer Adafruit_CharLCD als LCDlcd_rs = 21

lcd_nl = 20

lcd_d4 = 23

lcd_d5 = 26

lcd_d6 = 19

lcd_d7 = 13

lcd_kolommen = 16

lcd_rijen = 2

lcd = LCD. Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows)

lcd.bericht('169.254.10.1')

Stap 7: Volledig circuit

Volledig circuit
Volledig circuit

hier kun je nogmaals controleren of het hele circuit klopt

Stap 8: Start van de zaak

Begin van de zaak
Begin van de zaak
Begin van de zaak
Begin van de zaak
Begin van de zaak
Begin van de zaak
Begin van de zaak
Begin van de zaak

Ik heb een cornflake dispenser gebruikt als reservoir voor het hondenvoer

Ik heb het wiel in de dispenser aangesloten op mijn servomotor

Nu kan ik het stuur bedienen met mijn servomotor en voedsel uit het reservoir laten vallen

Aan het uiteinde van het reservoir is een PVC buis aangesloten die het eten mooi in de wieg laat vallen

Ik gebruik hout als behuizing

Stap 9: Samenvoegen

Samenvoegen
Samenvoegen
Samenvoegen
Samenvoegen
Samenvoegen
Samenvoegen

Stap 10: De website

De website
De website
De website
De website
De website
De website
De website
De website

Nu onze machine werkt, moeten we de website op de pi krijgen. Nu is alles in gebruik, een paar instructies over hoe de site werkt.

Je kunt je pi verbinden met wifi door een HDMI-kabel aan te sluiten en op deze manier te activeren

De eerste pagina is de startpagina, hier kunt u zien:

  • Realtime info over het licht
  • Realtime info over het eten dat nog in de kom zit
  • Je kunt eten laten vallen
  • Info over de hond

De tweede pagina is de bewerkingspagina, hier kun je bewerken:

  • de naam van uw huisdier
  • de leeftijd van uw huisdier
  • het gewicht van uw huisdier
  • de foto van je huisdier

De derde pagina is de geschiedenispagina, hier kun je zien:

  • toen het licht aan ging
  • als de hond gegeten heeft
  • wanneer het eten is gevallen

De vierde pagina is de instellingenpagina, hier kun je bewerken:

  • wanneer het eten moet vallen
  • de hoeveelheid te laten vallen voedsel
  • max voedsel/dag
  • het licht

Aanbevolen: