Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Pag-iipon ng Circuit
- Hakbang 2: Pagse-set up ng aming RaspberryPi
- Hakbang 3: Pag-set up ng Backend
- Hakbang 4: Pag-set up ng Frontend
- Hakbang 5: Pag-import ng Database para sa Aming Project
- Hakbang 6: Pagsisimula ng Aming Project
- Hakbang 7: Ang Kaso
- Hakbang 8: Humanga sa Huling Produkto
- Hakbang 9: Ang Mga Suliranin
Video: Walang Pakikipag-ugnay na Tubig na Tubig: 9 Mga Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
Para sa pagtatapos ng aking unang taon bilang isang mag-aaral ng MCT ay inatasan akong gumawa ng isang proyekto na naglalaman ng lahat ng mga kasanayang nakuha ko mula sa mga kurso sa buong taon.
Naghahanap ako ng isang proyekto na susuriin ang lahat ng mga kinakailangan na itinakda ng aking mga guro at sa parehong oras ay magiging masaya para sa akin na gawin. Kapag naghahanap para sa isang paksa hindi ko maiwasang maging inspirasyon ng Covid-19 (Tama ito bago ito nagpunta sa isang malawak na pagsiklab sa buong mundo.) Pinili ko para sa isang contact na mas mababa ang fountain / dispenser ng tubig, dahil mag-aalok ito para sa isang paraan ng inuming tubig nang hindi hinahawakan ang ilang mga pindutan bago lumabas ang tubig.
Gumagamit ang proyektong ito ng isang distansya sensor upang makita kung ang isang tasa o baso ay inilagay sa ilalim ng output ng tubig, ang fountain ay magpapatuloy sa paglabas ng tubig sa loob ng 60 segundo (100ml / minuto). Ito ay upang gawing mas pare-pareho ito dahil ang pagtuklas kung ang baso ay nakuha ay napatunayan na napakahirap / mabagal ng isang gawain na kung bakit inilagay ang isang timer sa lugar. Matapos mapuno ang iyong baso ng 100ml na tubig maaari kang maghintay ng 5 segundo at kung ang baso ay nasa harap pa rin ng distansya sensor ay magpapatuloy na punan ang isa pang oras (nangangahulugan ito na mayroon ding timeout na 5 segundo sa pagitan ng pagpuno ng dalawang magkakaibang item)
Mga gamit
Mga Bahagi
- 1x RaspberryPi (Ginamit ko ang ika-4 na bersyon ngunit maaaring gumana rin ang mga mas lumang bersyon) - Maaaring gumana rin ang 1x S8050 transistor o 1x PN2222 transistor- 1x Photoresistor- 1x HC-SR04 (Ultrasonic Distance Sensor) - 1x RFID-RC522- 3x Iba't ibang mga kulay na LED (asul, dilaw, pula) - 1x LCD1602- 1x Active Buzzer- 1x PCF8574- 1x MCP3008- 1x Water Pump (Isang 12v peristaltic pump ang ginamit, i-link ang item na ito)
- 1x DC Power supply (12v, 600mAh) - 1x power brick na may 3 spot- 3x breadboard (maaari kang gumamit ng mas kaunti) - T-cobbler para sa mga RaspberryPi GPIO pin- T-cobbler cable (para sa pagkonekta sa pagitan ng pi at cobbler)
Ginamit ang mga materyales at kagamitan
- Isang drill na may mga sumusunod na drill bit:
- 4mm (sa mga pre-drill hole para sa mga tornilyo) - 15mm (upang mag-drill ng mga butas para sa distansya sensor)
- Anumang distornilyador- 30 turnilyo ng 45mm haba- 6 na turnilyo ng 20mm- 2 bisagra para sa pintuan- Isang plato ng MDF na humigit-kumulang 130cm ng 80cm- Isang pares ng mga file
Hakbang 1: Pag-iipon ng Circuit
Para sa circuit mayroon kaming 2 sensor, distansya sensor at isang photoresistor. Ginagamit ang distansya sensor upang matukoy kung ang isang tasa ay inilagay sa saklaw ng fountain ng tubig at opsyonal na nagdagdag ako ng isang photoresistor, ang isang ito ay ginagamit upang makita kung ang pambalot ay binuksan ng sinumang hindi dapat buksan ito. Sa itaas nito ay mayroon kaming isang RFID reader maaari itong magamit upang patunayan ang isang mekaniko na kailangang buksan ang kaso upang muling mapunan ang reservoir ng tubig o para sa ilang ibang isyu sa makina.
Para sa mga aktibong elemento mayroon kaming LCD1602, aktibong buzzer at isang peristaltic pump, ginagamit ang LCD upang ipakita ang katayuan tulad ng kung bukas ang kaso o tumatakbo ang bomba pati na rin ang IP address ng aparato ay ipapakita, ang buzzer ay Ginagawa upang makagawa ng isang nakakaalarma na tunog kapag ang kaso ay binuksan nang walang taong nagpapahintulot dito.
Naidagdag ko ang paningin ng pisara at eskematiko ng circuit sa ibaba.
Hakbang 2: Pagse-set up ng aming RaspberryPi
Upang ma-set up ang aming RaspberryPi, mai-download namin ang software ng imaging mula sa site ng Raspberry, sa pamamagitan nito maaari mong i-download ang bersyon ng Raspbian na gusto mo at i-image ang iyong SDCARD para sa iyo. Matapos magawa ang tool na ito sa trabaho nito maaari mong buksan ang SDCARD sa Windows Explorer, makikita mo ang boot na pagkahati ng iyong RaspberryPi. Dito mahahanap natin ang isang file na tinatawag na cmdline.txt (huwag buksan ang file na ito sa notepad, buksan ito sa Notepad ++ o anumang iba pang IDE). Kami ay magdagdag ng ip = 169.254.10.1 sa dulo ng file na ito upang matiyak na maaari kaming kumonekta sa aming aparato sa ibabaw ng ethernet (tiyakin na hindi ka magdagdag ng anumang ENTERS sa dulo ng iyong file o magkakaproblema ka).
Ngayon ay maaari mong ilagay ang iyong SDCARD sa iyong RaspberryPi at i-boot ito, ikonekta ang Pi sa iyong computer at gamitin ang Putty upang kumonekta sa iyong Pi sa SSH. Ginagamit ko ang sumusunod na utos upang kumonekta sa aking Pi sa halip na gumamit ng Putty. "ssh [email protected]" maaari itong mag-timeout, kaya maging mapagpasensya at hintaying mag-boot up ang Pi. Kapag na-prompt para sa isang password punan namin ang default na password ng "raspberry". Tiyaking baguhin ang password na ito pagkatapos ng pag-log in upang maiwasan ang sinumang may masamang hangarin na ma-access ang iyong Raspberry Pi.
I-configure namin ngayon ang aming Pi upang maibigay ang kinakailangang pag-andar para sa aming code. Gumamit ng "sudo raspi-config" upang buksan ang menu ng pagsasaayos at dito pupunta kami sa Mga Pagpipilian sa Interfacing.
Sa ilalim dito ay i-toggle namin ang mga sumusunod na pagpipilian ON: - SPI- I2C
Sundin ang patnubay na ito upang mai-set up ang isang koneksyon sa wireless internet sa iyong Pi, pagkatapos mong matagumpay itong nagawa maaari kaming makakuha ng pag-install ng aming mga kinakailangang package.
Mga Pakete: (patakbuhin ang mga utos sa pagkakasunud-sunod habang nabanggit dito)
Ang mga sumusunod upang makuha ang pinakabagong mga update para sa aming aparatong apt na Pi- sudo && apt na pag-upgrade -y
I-install ang aming MySQL server at webserver- sudo apt i-install ang mariadb-server apache2
Gagamitin ko ang MySQL Workbench upang i-setup ang database sa paglaon sa gabay na ito, kung hindi mo ito gagamitin at ginusto ang phpmyadmin maaari mo itong mai-install sa sumusunod na utos, malaya kang gumamit ng anumang iba pang MySQL Client pati na rin hangga't ikaw Nagawang mai-import nang maayos ang database.- sudo apt install phpmyadmin
Matapos mong magawa ang lahat sa itaas kailangan namin upang lumikha ng isang gumagamit para sa aming database. Gumamit ng "sudo MySQL -U root" upang mag-log in sa iyong MySQL server, dito lilikha kami ng isang gumagamit na tinatawag na db_admin kasama ang kani-kanilang password, panatilihin ang password na ito ay nabanggit sa isang lugar para sa ibang pagkakataon sa mga tagubilin. GRANT ANG LAHAT NG PRIVILEGES ON *. * SA "db_admin" @ "%" KINILALA NG "yourPasswordHere" MAY PUMILI NG PAPAGKABAGO;
Gamitin ang utos na "\ q" upang lumabas sa MySQL terminal.
Mga Pakete ng Python: Kailangan pa rin naming mag-install ng ilang mga pakete ng sawa bago magpatuloy, patakbuhin ang utos sa ibaba upang matiyak na ang lahat ay naroroon para sa isang walang kamali-mali na karanasan.
sudo pip3 i-install ang Flask Flask-Cors Flask-SocketIO gevent gevent-websocket greenlet spi SPI-Pyspidev
Pati na rin ang mga sumusunod na MySQL ikonekta ang python packagesudo apt i-install ang python3-mysql.connector -y
Kung naging tama ang lahat maaari mo na ngayong bisitahin ang iyong Pi sa iyong webbrowser gamit ang sumusunod na address na
Hakbang 3: Pag-set up ng Backend
Dito ko ipapaliwanag kung paano mo mai-set up ang backend sa iyong sarili, i-download muna ang rar file mula sa ibaba, i-unrar ito sa ilang pansamantalang direktoryo. Kumonekta sa iyong RaspberryPi sa FileZilla o WinSCP na may mga sumusunod na kredensyal:
IP: 169.254.10.1 Gumagamit: piPassword: raspberry (kung binago mo ang password gawin mo rin ito dito)
Pagkatapos ay maaari kang magpatuloy upang ilipat ang mga file na na-unrarar mo sa anumang direktoryo na nais mo sa direktoryo sa bahay ng pi gumagamit. Para sa kapakanan ng pagiging simple ipalagay namin sa setup na ito na na-upload namin ang lahat ng aming mga file sa ilalim ng direktoryo ng dokumento.
Panatilihing bukas ang iyong programa ng FTP para sa susunod na hakbang!
Ngayon buksan muli ang iyong prompt ng utos sa iyong koneksyon sa SSH dahil kakailanganin naming gumawa ng ilang mga pagbabago sa webserver upang ang frontend ay maaaring makipag-usap sa backend. Bubuksan namin ang default na Apache2 config file at baguhin ito nang bahagya: sudo nano /etc/apache2/site-available/000-default.conf
Idagdag ang mga sumusunod na linya sa ibaba ng DocumentRoot sa config file na binuksan lamang namin: ProxyPass / api / https://127.0.0.1onui000/api/ProxyPassReverse / api /
Maaari kang tumingin sa imaheng nakalakip bilang isang halimbawa.
Hakbang 4: Pag-set up ng Frontend
Bago ilipat ang aming mga file kailangan naming gumawa ng isang bagay bago namin masimulan ang paglilipat ng aming mga file sa harap. Buksan ang iyong command prompt gamit ang koneksyon ng SSH na ginawa mo dati at gamitin ang utos sa ibaba upang lumipat sa root user ng aming RaspberryPi: "sudo su -"
Pagkatapos nito maaari naming baguhin ang password ng aming root user gamit ang sumusunod na utos: "passwd" Hihilingin sa iyo na mag-input ng isang bagong password, pagkatapos mong magawa ito maaari kang bumalik sa iyong programa sa FTP at mag-login gamit ang iyong mga root kredensyal:
IP: 169.254.10.1 Gumagamit: rootPassword:
I-download ang rar file mula sa ibaba at alisin ito sa isang pansamantalang folder, maaari mong ilipat ang mga file na ito sa iyong RaspberryPi sa sumusunod na direktoryo / var / www / html /, pagkatapos mong magawa na maaari mong bisitahin ang frontend sa http: / /169.254.10.1, hindi ka pa maaaring makipag-ugnay dahil ang backend ay hindi pa tumatakbo, ipapakita ko sa iyo sa paglaon sa gabay na ito kung paano ito gawin.
Hakbang 5: Pag-import ng Database para sa Aming Project
Buksan ang iyong paboritong programa ng pamamahala ng server ng MySQL at kumonekta sa iyong Raspberry Pi gamit ang mga kredensyal na nilikha namin sa Hakbang 2.
I-download ang database dump mula sa ibaba at i-import ito tulad ng dati mong ginagawa, MySQL workbench pupunta ka sa File> Open SQL Script at piliin ang database dump na na-download mo. Pagkatapos ay pindutin ang CTRL + SHIFT + ENTER at ang SQL script ay dapat na patakbuhin at ang istraktura para sa database ay dapat nilikha.
Idinagdag ko ang mga kredensyal na ginamit ko para sa aking RaspberryPi bilang isang halimbawa sa ibaba pati na rin maraming mga larawan ng istraktura ng Database, maaari mo itong tingnan at subukan at makakuha ng isang pangkalahatang ideya kung paano gumagana ang lahat.
Hakbang 6: Pagsisimula ng Aming Project
Bago namin masimulan ang aming proyekto kailangan naming baguhin ang mga kredensyal ng database sa config.py file, kung sinunod mo ang mga tagubilin nang eksakto tulad ng sinabi ng gabay na ito pagkatapos ay mahahanap mo ang mga ito sa ilalim ng /home/pi/Documents/Backend/src/config.py dito kailangan mong baguhin ang mga kredensyal ng variable ng db_config upang tumugma sa mga nilikha namin nang mas maaga para sa aming database. Nagdagdag ako ng isang halimbawa ng kung ano ang makikita mo sa file na ito sa ibaba.
Pagkatapos nito ikaw ay magdagdag kami ng isang.service file na file na ito ay tiyakin na magsisimula ang aming proyekto kapag nagsimula ang RaspberryPi, tiyaking binago mo ang direktoryo nang naaangkop kung saan mo na-install ang mga backend file. Gamitin ang sumusunod na utos upang likhain ang file ng serbisyo: sudo nano /etc/systemd/system/dispenser.serviceLilikha ito ng isang file ng serbisyo at kopyahin ang idikit sa ibaba ang code sa file na ito.
[Yunit] Paglalarawan = Water DispenserAfter = mysql.service
[Serbisyo] Uri = simpleRestart = lagingRestartSec = 1User = piExecStart = / usr / bin / python3 /home/pi/Documents/Backend/index.py
[I-install] WantedBy = multi-user.target
Baguhin ang linya kung saan sinasabi /home/pi/Documents/Backend/index.py kung saan mo na-install ang iyong mga backend file, kung hindi mo ito nagawa nang tama ang proyekto ay hindi masisimulan nang tama! Magdaragdag ako ng isang halimbawa ng file sa ibaba.
Matapos mong gawin iyon at lumabas sa text editor maaari naming paganahin ang serbisyo sa mga sumusunod na utos: - sudo systemctl daemon-reload- sudo systemctl paganahin ang dispenser- sudo systemctl start dispenser
At bilang dagdag na maaari naming patakbuhin: sudo systemctl status dispenserIpapakita nito ang ilang impormasyon sa paligid ng aming serbisyo, kung ito ay aktibo o hindi,…
Hakbang 7: Ang Kaso
Congrats malapit na kami doon, magdaragdag ako ng ilang mga larawan na tumpak na magpapakita ng mga sukat na ginamit ko para sa aking proyekto, gumamit ako ng mga MDF plate na 18mm makapal, maaari mong opsyonal na gumamit ng ibang kapal. Ang aking pambalot ay maaaring magamit bilang isang gabay upang idisenyo ang iyo o maaari mong likhain muli ang ginawa ko. (Kung gagamit ka ng ibang kapal ng MDF hindi ka papayagan ng aking mga guhit na gawin ang aking disenyo, tiyaking iakma ito!) Ang mga panel na ginawa ko: - 2 mga panel ng 32cm ng 42cm (mga panel sa gilid) - 1 panel ng 24cm ng 32cm (ilalim na plato) - 2 mga panel ng 16cm ng 24cm (harap na plato kung saan nananatili ang LCD at mga kalapit na plato) - 1 panel ng 28cm ng 24cm (nakikita sa gitna ang plato mula sa harap) - 1 panel ng 30cm ng 24cm (tuktok na plato)
Hakbang 8: Humanga sa Huling Produkto
Narating mo na ang wakas at sa ngayon ay inaasahan kong nagawa ang buong bagay na isang katotohanan. Kung ikaw ay isang dumadaan lamang na nagbabasa, maligayang pagdating din, salamat sa iyong pagbabasa hanggang sa huling hakbang!
Gumastos ako ng maraming dugo, pawis at luha sa proyektong ito kaya't pahalagahan ko ito kung nag-iwan ka ng isang puna, ang anumang pagpuna sa pagpapabuti nito ay malugod!
Hakbang 9: Ang Mga Suliranin
Ilalagay ko ang proyekto sa kasalukuyang estado nito bilang isang gumaganang prototype na maaaring makakita ng mas maraming mga pagpapabuti.
Ang batayan ng code ng backend ay nakabalangkas sa isang paraan na ang isang ugnayan ng master alipin ay maaaring perpektong ginawa kung saan ang isang fountain ay gaganap bilang pangunahing frontend at lahat ng iba pang mga fountains ay itulak ang data at mga pagbabago sa REST api ng master. Mayroon ding mga labi ng isang sistema ng token ng API sa code dahil nilalayon itong ipatupad ngunit i-cut sa paglaon dahil sa mga paghihigpit sa oras.
Na-upload ko ang aking code sa aking Gitlab server at doon maaari mong tingnan ang code sa kabuuan:
Inirerekumendang:
Gumawa ng isang Madaling Infinity Mirror Cube - WALANG 3D Pagpi-print at WALANG Programming: 15 Hakbang (na may Mga Larawan)
Gumawa ng isang Madaling Infinity Mirror Cube | WALANG 3D Pagpi-print at WALANG Programming: Lahat ay may gusto ng isang mahusay na infinity cube, ngunit mukhang mahirap silang gawin. Ang layunin ko para sa Instructable na ito ay ipakita sa iyo ng sunud-sunod kung paano makakagawa ng isa. Hindi lamang iyon, ngunit sa mga tagubilin na ibinibigay ko sa iyo, makakagawa ka ng isa
Mga Laruang Switch-Adapt: Mga Paglalakad sa Tubig na Lumalakad sa Tubig na Naa-access !: 7 Mga Hakbang (na may Mga Larawan)
Mga Laruang Switch-Adapt: Mga Paglalakad sa Tubig na Lumalakad sa Dragon na Naa-access !: Ang pagbagay ng laruan ay nagbubukas ng mga bagong paraan at na-customize na solusyon upang payagan ang mga bata na may limitadong mga kakayahan sa motor o mga kapansanan sa pag-unlad na makipag-ugnay sa mga laruan nang nakapag-iisa. Sa maraming mga kaso, ang mga bata na nangangailangan ng inangkop na mga laruan ay hindi maaring
Makatipid ng Tubig at Pera Gamit ang Shower Monitor ng Tubig: 15 Hakbang (na may Mga Larawan)
Makatipid ng Tubig at Pera Gamit ang Shower Water Monitor: Alin ang gumagamit ng mas maraming tubig - isang paliguan o isang shower? Kamakailan ko lang naisip ang tungkol sa katanungang ito, at napagtanto ko na hindi ko talaga alam kung magkano ang ginamit na tubig kapag nag-shower ako. Alam ko kapag nasa shower ako kung minsan gumagala ang aking isip, iniisip ang tungkol sa isang cool na ne
Pakikipag-usap Arduino - Pagpe-play ng isang MP3 Sa Arduino Nang Walang Anumang Modyul - Pagpe-play ng Mp3 File Mula sa Arduino Paggamit ng PCM: 6 Mga Hakbang
Pakikipag-usap Arduino | Pagpe-play ng isang MP3 Sa Arduino Nang Walang Anumang Modyul | Nagpe-play ang Mp3 File Mula sa Arduino Gamit ang PCM: Sa mga instruksyon na ito matututunan natin kung paano maglaro ng isang mp3 file sa arduino nang hindi gumagamit ng anumang audio module, dito gagamitin namin ang PCM library para sa Arduino na nagpe-play ng 16 bit PCM ng 8kHZ dalas upang hinayaan itong gawin
Zero Cost Laptop Cooler / Stand (Walang Pandikit, Walang Pagbabarena, Walang Nuts & Bolts, Walang Mga Screw): 3 Hakbang
Zero Cost Laptop Cooler / Stand (Walang Pandikit, Walang Pagbabarena, Walang Mga Nuts at Bolts, Walang Mga Screw): I-UPDATE: Pakiusap MABUTI VOTE PARA SA MY INSTRUCTABLE, THANKS ^ _ ^ GUSTO MO DIN PO KONG MAGBOTOT PARA SA AKING IBA PANG KONTEST ENTRY AT www.instructables.com/id/Zero-Cost-Aluminum-Furnace-No-Propane-No-Glue-/ O BAKA MAGBOTA PARA SA PINAKA MAHIGING KAIBIGAN