Obsah:
- Krok 1: Zařízení SmartBin
- Krok 2: Výroba malinového boxu a LED lišty
- Krok 3: Část víka
- Krok 4: Softwarová část a získávání dat
Video: SmartBin: 4 kroky
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:22
Hlavním účelem tohoto projektu je vytvořit elektronické zařízení, které používá alespoň jeden Raspberry Pi. Tým je složen z 5 budoucích strojních inženýrů a jednoho inženýra pro automatizaci. Náš projekt spočívá ve výrobě odpadkového koše, který se automaticky otevírá a zavírá pohybem nohou pod detektorem pohybu umístěným uprostřed na přední straně koše. Wifi USB klíč se používá k odesílání dat na web. Tento koš se nazývá „SmartBin“. Vtipné video výše představuje náš inovativní SmartBin.
K provedení tohoto projektu a tohoto pozoruhodného SmartBinu bylo zapotřebí několik nástrojů:
- Metr
- Silné lepidlo
- Lepicí páska
- Pila na dřevo
- Šroubovák
- Vrtačka
- Svorka
- Nůž
Krok 1: Zařízení SmartBin
SmartBin se skládá ze zelených, oranžových a červených LED diod, které jsou umístěny na svítidle na levé straně koše, což ukazuje, jak je naplněno. Tato světla budou jasně viditelná a upozorní uživatele, když je nutné vyměnit odpadkový pytel. Použitým programovacím jazykem je Python. Naměřená hladina naplnění koše je přenesena na následující web:
Zde jsou prvky, které byly použity, ale můžete snadno najít alternativní řešení:
- 1 přihrádka (přihrádka "výkyvný kryt")
- 1 Servomotor k otevření koše
- 1 Raspberry Pi 2
- 2 napájecí zdroje (5V nabíječka mobilního telefonu a 6V napájecí zdroj) pro napájení Raspberry Pi a servomotoru
- 1 Ultrazvukový senzor pro měření úrovně naplnění koše
- Některé LED diody zobrazují stav naplnění (4 zelené, 2 oranžové a 1 červená)
- 1 Ultrazvukový detektor pohybu pro detekci pohybu
- 1 16GB SD karta
- Elektrické odpory (10 000 ohmů, 2 000 ohmů a 1 000 ohmů)
- 1 WiFi usb stick umožňující bezdrátový přenos na web.
- 1 Breadboard a několik kabelů Raspberry
Odhadovaná výrobní cena je 80 €.
Krok 2: Výroba malinového boxu a LED lišty
K výrobě boxu Raspberry použijte pilu na dřevo. Připevněte každou stranu krabice nýty, aby vypadala čistě. Jak naznačuje jeho název, tento box bude obsahovat nejen Raspberry Pi, ale bude obsahovat také pohybový senzor, který umístíte dole. Jakmile je krabice postavena, namalujte ji stejnou barvou jako přihrádka. K vytvoření tohoto boxu by mohla být použita technologie 3D tisku.
K výrobě LED lišty použijte elektrické potrubí, do kterého vyvrtejte otvory, které umožní instalaci LED světel. LED lišta musí být také natřena. Když je vše připraveno, nainstalujte LED diody do potrubí a proveďte elektrické připojení. Dávejte pozor na správné očíslování jednotlivých LED kabelů lepicí páskou. Pomůže vám to identifikovat každou LED během zapojení.
Nakonec krabici a lištu LED připevněte k přední části koše.
Krok 3: Část víka
Pokud jde o víko koše, prvním krokem je přilepit servomotor k víku. Dříve bylo nutné provést rozšíření pákového efektu. Páka narazí na doraz, který byl dříve ručně vyroben. Na víko připevněte šroubovací skříňku a vytvořte do ní otvor, aby držel ultrazvukový senzor ve správné poloze. Ujistěte se, že jste kabely správně připevnili na víko páskou.
Krok 4: Softwarová část a získávání dat
Pokud jde o softwarovou část, použili jsme programovací jazyk python. Program je uložen na SD kartu, kterou Raspberry Pi spustí, když je zapnutá. Schéma zapojení je k dispozici výše. Obrázek pinů Gpio je k dispozici pro všechny typy malin na níže uvedeném odkazu:
www.raspberrypi-spy.co.uk/2012/06/simple-g…
Na výměnu detektoru pohybu je možné použít ultrazvukový senzor, stačí v kódu vytvořit „if loop“.
Jak bylo uvedeno výše, údaje týkající se úrovně, do které je koš naplněn, jsou přenášeny na webové stránky vytvořené na wix.com. Na tomto webu najdete různé karty, které shromažďují členy týmu, prezentaci hardwaru a softwaru, … Zajímavá karta je vlastně záložka „Databáze“, která shromažďuje informace o množství odpadu přímo ze SmartBin a vytváří graf s daty. Graf zobrazuje vývoj úrovně náplně. Je možné zobrazit nebo stáhnout data z webových stránek. Níže uvedený odkaz je web, který jsme použili, a ukáže vám, jak číst a psát na listech Google pomocí pythonu:
www.makeuseof.com/tag/read-write-google-sh…
Pokud jde o „část automatického spuštění“kódu, napište do terminálu: sudo nano/etc/xdg/lxsession/LXDE-pi/autostart
Poté na konec skriptu, který se právě otevřel, napište tyto dva řádky kódu: python /home/pi/main.py & python /home/pi/csvcontrol.py &
Pro uložení aurorunu stiskněte: C trl + O Then, press: Enter Then, press: C trl + X
Zapište jako poslední řádek kódu: sudo restart
Rovněž si můžete stáhnout přílohu, která je úplným kódem pythonu použitým pro projekt. Oba kódy jsou spuštěny současně!
Zde je kód main.py:
import RPi. GPIO jako GPIOimport datetime čas importu import csv
GPIO.setmode (GPIO. BCM)
GPIO.setwarnings (False)
kapitán P = 7
servo = 17
GPIO.setup (servo, GPIO. OUT)
GPIO.setup (capteurP, GPIO. IN)
pwm = GPIO. PWM (17, 50)
GPIO.setup (5, GPIO. OUT)
GPIO.setup (6, GPIO. OUT) GPIO.setup (13, GPIO. OUT) GPIO.setup (19, GPIO. OUT) GPIO.setup (20, GPIO. OUT) GPIO.setup (21, GPIO. OUT) GPIO.setup (26, GPIO. OUT)
Trig = 23
Echo = 24
GPIO.setup (Trig, GPIO. OUT)
GPIO.setup (Echo, GPIO. IN)
GPIO.setwarnings (False)
GPIO.output (5, False)
GPIO.output (6, False) GPIO.output (13, False) GPIO.output (19, False) GPIO.output (20, False) GPIO.output (21, False) GPIO.output (26, False)
GPIO.output (Trig, False)
timeset = time.time ()
vzdálenost = 100 paměť = 0 čas. spánek (2) pwm. start (12,5)
zatímco pravda:
timetac = time.time () pokud GPIO.input (capteurP) a timetac-timeset0.9: pwm. ChangeDutyCycle (2.5) time.sleep (0.2) paměť = -0.5 pwm. ChangeDutyCycle (0) timetac = time.time () time.sleep (0,5) pokud timetac-timeset> 15 nebo paměť> 0,4: if memory> 0,4: pwm. ChangeDutyCycle (2,5) time.sleep (1) for x in range (0, 1): # GPIO.output (Trig, True) time.sleep (0,01) GPIO.output (Trig, False)
zatímco GPIO.input (Echo) == 0 a timetac-timeset <17: timetac = time.time () debutImpuls = time.time ()
zatímco GPIO.input (Echo) == 1:
finImpulsion = time.time () pokud je časově časově nastaven <17: vzdálenost1 = kolo ((finImpulsion-debutImpulsion) * 340 * 100/2, 1) vzdálenost2 = vzdálenost if (vzdálenost1-vzdálenost2) <1 a (vzdálenost2-vzdálenost1) 0,4: dis = round ((vzdálenost 60)*5/6, 1) s otevřeným ('capteur.csv', 'w') jako csvfile: capteurwriter = csv.writer (csvfile) time_str = datetime.datetime.strftime (datetime.datetime.now (), '%Y-%m-%d%H:%M:%S') print ('Time: {0} Quantitee: {1}'. format (time_str, dis)) capteurwriter. writeow ([time_str, dis]) paměť = -0,1 pokud vzdálenost <52,5: GPIO.output (5, True) else: GPIO.output (5, False) pokud vzdálenost <45: GPIO.output (6, True) else: GPIO.output (6, False) if distance <37,5: GPIO.output (13, True) else: GPIO.output (13, False) if distance <30: GPIO.output (19, True) else: GPIO.output (19, False) if distance <22.5: GPIO.output (20, True) else: GPIO.output (20, False) if distance <15: GPIO.output (21, True) else: GPIO.output (21, False) pokud vzdálenost <7,5: GPIO.output (26, True) else: GPIO.output (26, False)
Zde je kód csvcontrol.py. Vytvořený soubor „.json“nezapomeňte vložit do stejného adresáře souboru main.py. Soubor „.json“je vytvořen pomocí rozhraní Google API. Na obrázcích je k dispozici snímek obrazovky.
import datetimeimport čas import csv import gspread
z oauth2client.service_account importovat ServiceAccountCredentials
od času importovat import importovat trasování zpět
timec2 = 'lol'
while True: time.sleep (5) loc = ('capteur.csv') with open (loc) as csvfile: readCSV = csv.reader (csvfile, delimiter = ',') for row in readCSV: print (row [0]) timec = řádek [0] tisk (řádek [1]) vzdálenost = řádek [1] vzdálenost = float (str (vzdálenost)) if timec2! = timec: timec2 = timec print ('Čas: {0} Quantitee: { 1} '. Formát (čas, vzdálenost))
ROZSAHY = ['https://www.googleapis.com/auth/spreadsheets', "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/ řídit"]
credentials = ServiceAccountCredentials.from_json_keyfile_name ('client_secret.json', SCOPES) gc = gspread.authorize (credentials) wks = gc.open ("graph"). sheet1 wks = wks.append_row ((timec, distance))
Doporučuje:
Živé streamování HD videa 4G/5G z dronu DJI s nízkou latencí [3 kroky]: 3 kroky
Živé streamování HD videa 4G/5G z DJI Drone s nízkou latencí [3 kroky]: Následující průvodce vám pomůže získat živé video streamy v kvalitě HD z téměř jakéhokoli dronu DJI. S pomocí mobilní aplikace FlytOS a webové aplikace FlytNow můžete začít streamovat video z dronu
4 kroky k měření vnitřního odporu baterie: 4 kroky
4 kroky k měření vnitřního odporu baterie: Zde jsou 4 jednoduché kroky, které vám mohou pomoci změřit vnitřní odpor baterie
SmartBin: 8 kroků
SmartBin: Este é um projeto para um sistema inteligente de coletas, no qual os caminh õ es de lixo receive demos das lixeiras, identificando a quantidade de lixo presente em cada uma delas, e uma rota de coleta tra ç ada, com base nas informa
Jak vytvořit video na rozdělené obrazovce čtyřmi kroky: 4 kroky (s obrázky)
Jak vytvořit video na rozdělené obrazovce ve čtyřech krocích: Často vidíme stejnou osobu, která se ve scéně dvakrát objeví v televizní hře. A pokud víme, herec nemá dvojče. Také jsme sledovali, že jsou na jednu obrazovku umístěna dvě zpívající videa, která porovnávají jejich pěvecké schopnosti. To je síla spl
Jak zobrazit všechny kroky ve výchozím nastavení V.3: 4 kroky
Jak zobrazit všechny kroky ve výchozím nastavení V.3: Dobrý den! V tomto Instructable vám ukážu, jak zobrazit své Instructables všemi kroky, místo abyste museli klikat na každý krok a unavovat prst, což mělo za následek selhání jater a ztrátu krve. Pijte prosím zodpovědně. Dík