Cuprins:
- Provizii
- Pasul 1: preliminar
- Pasul 2: Configurarea bazei de date
- Pasul 3: Configurarea depozitului Git
- Pasul 4: Backend
- Pasul 5: Circuit
- Pasul 6: Caz
- Pasul 7: Întrebări?
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:42
Dandywash este un sistem inteligent de gestionare a rufelor, orientat către persoanele care au puțin timp să-și petreacă lucruri casnice banale, cum ar fi spălatul. Am fost cu toții acolo, ne-am aruncat hainele murdare în coș, sperând să găsim motivație pentru a trece peste mizerie mai târziu. Cu toate acestea, nimeni nu o găsește vreodată. Până când avem nevoie într-adevăr de o piesă vestimentară și nu o putem găsi nicăieri. Acesta este doar începutul. Apoi urmează sortarea, umplerea și urmărirea. Efectuarea acestei sarcini simple și repetitive necesită multă atenție și concentrare. Tocmai de aceea am început acest proiect. Dandywash elimină toate aceste activități obositoare. Nu mai trebuie să cheltuiți încă o secundă sortându-vă, urmărind sau măsurând încărcăturile. În timp ce mențineți controlul deplin. Aflați mai multe și cum puteți obține același rezultat productiv, citind acest articol.
Provizii
Am creat o listă detaliată de material în Excel, pe care o puteți vedea aici.
Acesta conține toate piesele esențiale de care aveți nevoie și de unde să le obțineți.
Pe lângă acestea, aș dori să enumăr câteva elemente suplimentare care vor fi foarte utile la realizarea acestui proiect, dar care nu sunt obligatorii.
- Deoarece veți avea nevoie de niște fire jumper lungi și acestea nu sunt cu adevărat un lucru, vă sugerez să cumpărați atât cabluri feminin - feminin, cât și cabluri masculin - masculin. Am cumpărat și femei - bărbați, dar acestea nu sunt chiar necesare. În acest fel, puteți crea cabluri mai lungi înlănțuindu-le. Acest lucru elimină timpul de lipire care consumă mult timp.
-
Am adăugat, de asemenea, o mulțime de rezistențe de siguranță în circuit. Simțiți-vă liber să le scoateți dacă vă simțiți mai încrezători. Dacă aveți rezistențe reduse, vă recomand să ridicați acest kit, este foarte convenabil să aveți întotdeauna rezistențele de care aveți nevoie, etichetate clar.
Pasul 1: preliminar
Pornirea Raspberry Pi
Pentru a rula un întreg lanț IOT de la Raspberry Pi, trebuie să inițializăm dispozitivul. Acest lucru se poate face descărcând imaginea furnizată și arzând-o pe un card micro SD (16 GB). Acest lucru se poate face folosind cu adevărat Win32DiskImager sau orice alt software. Asigurați-vă că cardul SD este complet gol și formatat înainte de a arde imaginea. Acest videoclip explică întregul proces pas cu pas. Rețineți că nu este nevoie să utilizați imaginea raspbiană, ci imaginea furnizată în loc.
Când ați terminat de scris cardul SD, îl puteți scoate și introduce în cardul Pi. Asigurați-vă că Pi nu este încă conectat la alimentare!
Când cardul SD este introdus, conectați Pi la laptop folosind un cablu Ethernet. Abia atunci, când este deja în controlul tău, dă-i putere. Pi va porni în câteva secunde.
Puteți monitoriza acest lucru accesând promptul de comandă și tastând
ping 169.254.10.1 -t
Când primiți un răspuns, mai degrabă decât un „Host Unreachable”, Pi-ul dvs. a pornit cu succes. Aceasta înseamnă că putem interacționa cu ea. Ieșiți din bucla infinită de ping apăsând Ctrl + C. Acum puteți introduce Pi tastând
acest lucru vă va solicita parola, care este zmeura implicită.
Când porniți pentru prima dată, este în general o bună practică să rulați ambele
$ sudo apt-get update
$ sudo apt-get upgrade
Acest lucru vă va asigura că toate pachetele sunt actualizate și pe cea mai recentă versiune.
MariaDB și Apache2 vor fi deja instalate. Deci, nu trebuie să ne facem griji cu privire la acestea. Cu toate acestea, trebuie să pregătim alte lucruri pentru ca totul să funcționeze așa cum ne dorim.
Cu toate acestea, ar trebui să reporniți mai întâi, pentru a vă asigura că totul este pregătit pentru pasul următor.
$ sudo reporniți
Pasul 2: Configurarea bazei de date
Vom configura baza de date folosind laptopul / desktopul dvs., nu Pi. Deschideți MySQL Workbench (ghid de descărcare) și adăugați o nouă conexiune.
Ulterior, vi se va solicita o fereastră de configurare. Al meu este umplut așa cum ar trebui să fie al tău. Acordați o atenție deosebită câmpurilor marcate. Săgețile indică parolele pe care trebuie să le stocați în seif. Acestea sunt doar valori implicite și pot fi modificate după preferințele dvs.
Când toate informațiile sunt introduse, faceți clic pe Testare conexiune, ignorați avertismentul și, sperăm, vedeți fereastra de succes. În caz contrar, unele câmpuri sunt greșite. Puteți continua dând clic pe Ok pe fereastră cu toate câmpurile de introducere.
Conexiunea ar trebui să fie acum vizibilă în fereastra de pornire. Faceți clic pe acesta pentru a încerca conectarea. Parola ar trebui introdusă automat de când am stocat-o în seif.
Ultimul pas este importul bazei de date. Puteți descărca gunoiul de aici. Acest videoclip explică cum să deschideți și să rulați un fișier.sql. Asigurați-vă că sunteți conectat la Raspberry Pi și nu la instanța locală de pe laptop!
Pasul 3: Configurarea depozitului Git
Lucrul cu un repo git este destul de necesar aici. Mai ales dacă doriți să comutați cu ușurință între computer și raspi. Git ar trebui să fie deja instalat pe dispozitiv, astfel încât să puteți doar gona clona orice repo doriți în orice folder doriți. Cu toate acestea, deoarece folosim apache, trebuie să punem codul Frontend (html, css, javascript) în folderul / var / www / html. Nu vreau să pun întreaga repo aici și cu siguranță nu vreau o repo separată.
Acest lucru poate fi rezolvat prin crearea unei legături simbiotice, care este în esență aceeași cu o comandă rapidă în Windows. Poate fi configurat cu ușurință tastând următoarea comandă în terminalul raspi (după clonarea repo!)
$ git clone
Crearea unei legături simbiotice are următoarea structură
$ ln -s / cale / către / dir / cale / către / link simbolic
Aplicată acestui caz de utilizare, comanda ar trebui să arate cam așa
$ ln -s ~ / home / pi / project1 / git-repo / / var / www / html
Acum, dacă totul a mers bine, puteți naviga la https://169.254.10.1/Frontend ar trebui să vadă index.html din git repo.
În acest dosar veți găsi codul frontend complet receptiv. Inclusiv HTML5, CSS și JavaScript.
Pasul 4: Backend
Pentru acest proiect, vom folosi Flask în combinație cu Socketio. Acest lucru ne permite să configurăm un server web flexibil cu rutare și websockets. Această aplicație Flask va interacționa și cu baza de date pentru a efectua acțiuni CRUD. Cel mai bun lucru despre acest întreg teanc este că este nevoie de foarte puțin timp și efort pentru a configura. În primul rând, asigurați-vă că sunt instalate următoarele pachete terțe Python. Acestea ar trebui incluse în imagine, dar executând următoarele comenzi vă puteți asigura / actualiza la versiuni mai noi.
$ pip3 instalează mysql-connector-python
$ pip3 install flask-socketio $ pip3 install flask-cors $ pip3 install gevent $ pip3 install gevent-websocket
Acum ar trebui să puteți rula scriptul app.py fără probleme. S-ar putea să obțineți un atributError care să spună că tipul obiectului „Baza de date” nu are atributul „cursor”. Acest lucru este cauzat de o greșeală în fișierul config.py. Asigurați-vă că parola numelui de utilizator și numele bazei de date sunt corecte și că au acces la baza de date pe care tocmai am importat-o. Acest lucru este deosebit de remarcabil în cazul în care ați schimbat numele de utilizator și parola implicite în MySQL.
Pasul 5: Circuit
Nu pot spune prea multe despre circuit. Va trebui doar să construiți acest lucru și să rulați scripturile de testare în git repo. Am creat un script de testare pentru fiecare senzor și actuator din circuit, astfel încât să puteți testa fiecare parte / componentă individual.
S-ar putea să fie nevoie să schimbați numerele de pin din cod. Am adăugat, de asemenea, o mulțime de rezistențe de siguranță în circuit. Simțiți-vă liber să le scoateți dacă vă simțiți mai încrezători. Dacă aveți rezistențe reduse, vă recomand să ridicați acest kit, este foarte convenabil să aveți întotdeauna rezistențele de care aveți nevoie, etichetate clar.
Dacă circuitul te sperie deloc, nu te descuraja. Încercați să o împărțiți în secțiuni. Construiți mai întâi butoanele, asigurați-vă că funcționează, apoi treceți la următorul senzor. Acesta este un lucru pe care nu îl poți construi într-o singură încercare, decât dacă ești uimitor de talentat.
În cele din urmă, rețineți că Raspberry Pi nu este potrivit pentru niciun software PWM serios. Linux nu este un sistem de operare în timp real. Aceasta înseamnă că veți avea o ușoară perturbare la servomotori. Pinul GPIO 18 suportă hardware pwm, dar avem nevoie de mai mult decât doar 1 pin.
Pasul 6: Caz
Aveam în plan un design întreg, care nu putea fi realizat din cauza pandemiei actuale. Desigur, aceasta este o situație care necesită flexibilitate de la toată lumea și exact așa am reacționat. Am încă scena originală 3D pe care am realizat-o și voi împărtăși acest lucru și aici, dacă doriți să construiți carcasa în acest fel. Cu toate acestea, pentru restul acestui articol, voi discuta despre modul în care cazul a fost construit alternativ.
Principalul inconvenient a fost placa abdominală pe care urma să o folosesc pentru a monta porțiunea superioară la partea inferioară. Acesta a fost materialul perfect. Estetic plăcut și foarte practic. Totuși, acest lucru nu putea fi realizat, așa că a trebuit să găsesc o alternativă. Deoarece nu mi-am putut gândi la un alt material cu aceeași rezistență care ar putea fi îndoit în același mod, am decis să îl înlocuiesc cu un aspect de lemn. Acest lucru a făcut imposibilă curbele rotunjite, dar a creat de fapt o altă suprafață plană care ar putea fi utilizată pentru a depozita articole precum produse de rufe sau agrafe pentru haine. Am ajuns să-l folosesc pentru a stoca un al doilea panou, făcându-mi viața în circuit mult mai ușoară pentru acest prototip.
Rețineți gaura dreptunghiulară care a fost forată în spate. Acest lucru permite direcționarea cablurilor către Raspbarry Pi.
Pentru scânduri am făcut o vizită la magazinul meu local de bricolaj. Au întotdeauna niște resturi de lemn așezat și sunt dispuși să-l taie în bucăți la un preț mic. Am plătit în total 5 EUR în total. Strigăt uriaș către Louis de la Hubo Wevelgem pentru a face acest lucru posibil. Ulterior a fost doar o chestiune de găurire și înșurubare a tuturor locurilor. O prezentare detaliată a unde se taie și unde se găuresc poate fi găsită aici.
Pentru biții imprimați 3D, a trebuit să mă bazez pe oamenii din jurul meu, deoarece școala nu mai putea oferi acest serviciu din cauza pandemiei. Prin intermediul unui prieten al unui prieten am intrat în contact cu cineva care tocmai începea să-și construiască afacerea de imprimare 3D. A fost suficient de generos pentru a tipări piesa mea principală. Calitatea a fost destul de churlish datorită unei configurări greșite a imprimantei. Am cumpărat un spray de grund și i-am dat 3 acoperiri, redând aspectul general.
Suporturile senzorului de distanță au fost făcute de un alt prieten. De asemenea, a tipărit trapele care erau atașate servomotorelor. La început am încercat asta cu carton, dar nu s-ar lipi foarte bine. Rețineți că, dacă tipăriți 3D acești biți, aveți nevoie de două ori de la bottom_hatch.stl, precum și de distanceSensorHolder.stl. main_piece.stl și middle_hatch.stl trebuie să fie tipărite o singură dată.
Pasul 7: Întrebări?
Dacă o parte nu vă este încă complet clară, nu ezitați să vă contactați și permiteți-mi să vă ajut.
Simțiți-vă liber să luați legătura prin e-mail pe [email protected]
Recomandat:
Realizarea unei camere Pi Zero Dashcam (pct. 3): Gestionarea fișierelor și îmbunătățiri: 3 pași
Realizarea unei camere Pi Zero Dashcam (pct. 3): Gestionare fișiere și îmbunătățiri: Continuăm cu proiectul Pi Zero dashcam și în această postare ne ocupăm de gestionarea fișierelor, adăugând în același timp câteva îmbunătățiri în proces. Acest proiect este aproape finalizat și vom efectua teste rutiere în postarea / videoclipul săptămânii viitoare
Gestionarea fișierelor cardului Micro SD: 4 pași
Gestionarea fișierelor cardului SD: Tehnicile de gestionare a fișierelor cardului SD din acest instructable pot fi utilizate în proiecte care necesită date persistente, date care sunt menținute când proiectul dvs. este oprit și disponibile când este repornit. De asemenea, datele sunt portabile în sensul că
Ceas cu alarmă inteligentă: o ceas cu alarmă inteligentă realizată cu Raspberry Pi: 10 pași (cu imagini)
Ceas cu alarmă inteligentă: o ceas cu alarmă inteligentă realizată cu Raspberry Pi: Ți-ai dorit vreodată un ceas inteligent? Dacă da, aceasta este soluția pentru dvs.! Am creat Smart Alarm Clock, acesta este un ceas pe care îl puteți schimba ora alarmei conform site-ului web. Când alarma se declanșează, se va auzi un sunet (buzzer) și 2 lumini vor
Mufe Arduino Mega RJ45 pentru gestionarea cablurilor: 5 pași
Mufe Arduino Mega RJ45 pentru gestionarea cablurilor: Arduino Mega are tone de pini - acesta este un motiv important pentru cumpărarea unuia, nu? Vrem să folosim toți acei ace! Cablarea poate deveni rapid o mizerie spaghetti fără gestionarea cablurilor, totuși. Putem consolida firele folosind prize Ethernet. Pinii de date de pe
Grădinărire inteligentă bazată pe IoT și agricultură inteligentă folosind ESP32: 7 pași
Grădinărire inteligentă bazată pe IoT și agricultură inteligentă Utilizarea ESP32: Lumea se schimbă odată cu trecerea agriculturii. În prezent, oamenii integrează electronica în toate domeniile, iar agricultura nu face excepție. Această fuziune a produselor electronice în agricultură ajută fermierii și oamenii care gestionează grădinile