Orodha ya maudhui:

Chemchemi ya Maji isiyowasiliana: Hatua 9 (na Picha)
Chemchemi ya Maji isiyowasiliana: Hatua 9 (na Picha)

Video: Chemchemi ya Maji isiyowasiliana: Hatua 9 (na Picha)

Video: Chemchemi ya Maji isiyowasiliana: Hatua 9 (na Picha)
Video: TAFSIRI: KUOTA NDOTO ZENYE ISHARA ZA MAJI NDANI YAKE 2024, Novemba
Anonim
Chemchemi ya Maji isiyo na mawasiliano
Chemchemi ya Maji isiyo na mawasiliano

Mwisho wa mwaka wangu wa kwanza kama mwanafunzi wa MCT nilipewa jukumu la kufanya mradi ambao ulikuwa na ustadi wote niliochukua kutoka kozi kwa mwaka mzima.

Nilikuwa nikitafuta mradi ambao ungeangalia mahitaji yote yaliyowekwa na waalimu wangu na wakati huo huo kuwa ya kufurahisha kwangu kuifanya. Wakati wa kutafuta mada sikuweza kusaidia lakini nilijisikia kuongozwa na Covid-19 (Hii ilikuwa ni haki kabla ya kuzuka kwa mlipuko wa ulimwengu.) Nilichagua kuwasiliana na chemchemi / mtoaji wa maji, kwani ingetoa kwa njia ya kunywa maji bila kugusa vifungo kabla maji yatoke.

Mradi huu hutumia sensa ya umbali kugundua ikiwa kikombe au glasi imewekwa chini ya pato la maji, chemchemi hiyo itaendelea kutoa maji kwa sekunde 60 (100ml / dakika). Hii ni kuifanya iwe thabiti zaidi kwa sababu kugundua ikiwa glasi imeondolewa imeonekana kuwa ngumu sana / polepole ya kazi ndio sababu kipima muda kiliwekwa. Baada ya glasi yako kujazwa na 100ml ya maji unaweza kusubiri kwa sekunde 5 na ikiwa glasi bado iko mbele ya sensa ya umbali itaendelea kujaza wakati mwingine (hii inamaanisha pia kuna muda wa muda wa sekunde 5 kati ya kujaza mbili tofauti vitu).

Vifaa

Vipengele

- 1x RaspberryPi (nilitumia toleo la 4 lakini matoleo ya zamani yanaweza kufanya kazi pia) - 1x S8050 transistor au 1x PN2222 transistor inaweza kufanya kazi pia- 1x Photoresistor- 1x HC-SR04 (Sensor ya Umbali wa Ultrasonic) - 1x RFID-RC522- 3x Tofauti rangi za LED (bluu, manjano, nyekundu) - 1x LCD1602- 1x Buzzer Active- 1x PCF8574- 1x MCP3008- 1x Pump Water (Pampu ya pervaltiki 12v ilitumika, unganisha na kitu hiki)

- 1x DC Ugavi wa umeme (12v, 600mAh) - 1x nguvu ya matofali yenye matangazo 3- 3x mikate (unaweza kutumia kidogo) - T-cobbler ya RaspberryPi GPIO pini- T-cobbler cable (ya kuunganisha kati ya pi na sekunde)

Vifaa na zana zilizotumiwa

- Kuchimba visima na vipande vifuatavyo vya kuchimba visima:

- 4mm (kuchimba visima kabla ya visu) - 15mm (kuchimba mashimo kwa sensor ya umbali)

- Bisibisi yoyote- screws 30 za urefu wa 45mm- screws 6 za 20mm- 2 bawaba kwa mlango- Sahani ya MDF ya karibu 130cm na 80cm- Faili kadhaa

Hatua ya 1: Kukusanya Mzunguko

Kukusanya Mzunguko
Kukusanya Mzunguko
Kukusanya Mzunguko
Kukusanya Mzunguko
Kukusanya Mzunguko
Kukusanya Mzunguko

Kwa mzunguko tuna sensorer 2, sensor ya umbali na kipinga picha. Sensor ya umbali hutumiwa kugundua ikiwa kikombe kimewekwa kwenye chemchemi ya maji na kwa hiari niliongeza kipinga picha, hii hutumiwa kugundua ikiwa casing imefunguliwa na mtu yeyote ambaye hafai kuifungua. Juu ya hayo tuna msomaji wa RFID hii inaweza kutumika kudhibitisha fundi anayehitaji kufungua kesi ili kujaza tena hifadhi ya maji au kwa shida nyingine ya kiufundi.

Kwa vitu vyenye kazi tunayo LCD1602, buzzer inayotumika na pampu ya peristaltic, LCD hutumiwa kuonyesha hali kama kesi iko wazi au pampu inaendesha na anwani ya IP ya kifaa itaonyeshwa, buzzer ni kutumika kutoa sauti ya kutisha wakati kesi imefunguliwa bila mtu kuidhinisha.

Nimeongeza maoni ya bodi na mkate wa mzunguko hapa chini.

Hatua ya 2: Kuanzisha RaspberryPi yetu

Ili kuanzisha RaspberryPi yetu, tutapakua programu ya picha kutoka kwa wavuti ya Raspberry, na hii unaweza kupakua toleo la Raspbian unayotaka na picha yako SDCARD kwako. Baada ya chombo hiki kufanya kazi yake unaweza kufungua SDCARD katika Windows Explorer, utaweza kuona kizigeu cha boot cha RaspberryPi yako. Hapa tutapata faili inayoitwa cmdline.txt (usifungue faili hii katika notepad, ifungue katika Notepad ++ au IDE nyingine yoyote). Tutaongeza ip = 169.254.10.1 hadi mwisho wa faili hii ili kuhakikisha kuwa tunaweza kuungana na kifaa chetu juu ya ethernet (hakikisha hautaongeza INGIA zozote mwishoni mwa faili yako la sivyo utapata shida).

Sasa unaweza kuweka SDCARD yako kwenye RaspberryPi yako na uiunganishe, unganisha Pi kwenye kompyuta yako na utumie Putty kuungana na Pi yako juu ya SSH. Ninatumia amri ifuatayo kuungana na Pi yangu badala ya kutumia Putty. "ssh [email protected]" hii inaweza kuisha, kwa hivyo uwe na subira na subiri Pi ianze. Mara tu tukichochewa nywila tutajaza nywila chaguomsingi ya "raspberry". Hakikisha kubadilisha nenosiri hili baada ya kuingia ili kuzuia mtu yeyote aliye na nia mbaya kupata Raspberry Pi yako.

Sasa tutasanidi Pi yetu ili kutoa utendaji muhimu wa nambari yetu. Tumia "sudo raspi-config" kufungua menyu ya usanidi na hapa tutaenda kwenye Chaguzi za Interfacing.

Chini ya hapa tutabadilisha chaguzi zifuatazo ON: - SPI- I2C

Fuata mwongozo huu kuanzisha muunganisho wa mtandao bila waya kwenye Pi yako, baada ya kufanikiwa kufanya hivyo tunaweza kupata kusanikisha vifurushi vyetu vinavyohitajika.

Vifurushi: (endesha amri kwa mpangilio kama ilivyoainishwa hapa)

Ifuatayo kupata sasisho za hivi punde za sasisho la Pi- sudo apt && upgrade -y

Sakinisha seva yetu ya MySQL na webserver- sudo apt kufunga mariadb-server apache2

Nitatumia MySQL Workbench kusanidi hifadhidata baadaye katika mwongozo huu, ikiwa hutumii hii na unapendelea phpmyadmin unaweza kusanikisha hii kwa amri ifuatayo, uko huru kutumia Mteja mwingine yeyote wa MySQL na kwa muda mrefu kama wewe tunaweza kuagiza vizuri hifadhidata.- Sudo apt install phpmyadmin

Baada ya kumaliza haya yote hapo juu tunahitaji kuunda mtumiaji kwa hifadhidata yetu. Tumia "Sudo mysql -u mzizi" kuingia kwenye seva yako ya MySQL, hapa tutaunda mtumiaji anayeitwa db_admin na nywila yake, endelea nenosiri hili lilibainika mahali pengine baadaye katika maagizo. JIPE VIFAA VYOTE KWENYE *. * KWA "db_admin" @ "%" INAYOTAMBULISHWA NA "yourPasswordHapa" KWA OTI YA RUZUKU;

Tumia amri ya "q" kutoka nje kwa kituo cha MySQL.

Vifurushi vya chatu: Bado tunahitaji kusanikisha vifurushi vya chatu kabla ya kuendelea, tumia amri iliyo hapa chini ili kuhakikisha kuwa kila kitu kipo kwa uzoefu usiofaa.

sudo pip3 sakinisha Flask Flask-Cors Flask-SocketIO gevent gevent-websocket greenlet spi SPI-Pyspidev

Pamoja na MySQL ifuatayo unganisha vifurushi vya pudo sudo apt kufunga python3-mysql.connector -y

Ikiwa yote yamekwenda sawa sasa unaweza kutembelea Pi yako kwenye kivinjari chako na anwani ifuatayo

Hatua ya 3: Kuweka Mpangilio wa Nyuma

Kuanzisha Backend
Kuanzisha Backend

Hapa nitaelezea jinsi unaweza kusanidi backend mwenyewe, kwanza pakua faili ya rar kutoka hapo chini, uiandikishe kwa saraka ya muda. Unganisha kwenye RaspberryPi yako na FileZilla au WinSCP na sifa zifuatazo:

IP: 169.254.10.1 Mtumiaji: piNenosiri: rasiberi (ikiwa umebadilisha nenosiri fanya hapa pia)

Basi unaweza kuendelea kuhamisha faili ambazo haujasajili kwenye saraka yoyote unayotaka kwenye saraka ya nyumbani ya mtumiaji wa pi. Kwa unyenyekevu tutafikiria katika usanidi huu kwamba tumepakia faili zetu zote chini ya saraka ya hati.

Weka programu yako ya FTP wazi kwa hatua inayofuata!

Sasa fungua amri yako ya amri tena na unganisho lako la SSH kwa sababu tutahitaji kufanya mabadiliko kwenye webserver ili upande wa mbele uweze kuwasiliana na backend. Tutafungua faili chaguomsingi ya Apache2 na kuibadilisha kidogo: nano /etc/apache2/sites-inapatikana/000-default.conf

Ongeza mistari ifuatayo hapa chini DocumentRoot katika faili ya usanidi ambayo tumeifungua tu: ProxyPass / api / https://127.0.0.1:5000/api/ProxyPassReverse / api / https:// 127.0.0.1: 52 /api

Unaweza kuangalia picha iliyoambatanishwa kwa mfano.

Hatua ya 4: Kuweka Mbele

Kabla ya kuhamisha faili zetu itabidi tufanye kitu kabla ya kuanza kuhamisha faili zetu za mbele. Fungua kidokezo chako cha amri na unganisho la SSH ulilotengeneza hapo awali na tumia amri ya chini kubadili mtumiaji wa mizizi ya RaspberryPi yetu: "sudo su -"

Baada ya hii tunaweza kubadilisha nenosiri la mtumiaji wetu wa mizizi na amri ifuatayo: "passwd" Hii itakuuliza uingize nywila mpya, baada ya kufanya hivyo unaweza kurudi kwenye programu yako ya FTP na uingie na sifa zako za mizizi:

IP: 169.254.10.1 Mtumiaji: mziziPassword:

Pakua faili ya rar kutoka chini na uiandike kwenye folda ya muda, unaweza kuhamisha faili hizi kwa RaspberryPi yako kwa saraka ifuatayo / var / www / html /, baada ya kufanya hivyo unaweza kutembelea mbele kwenye http: / /169.254.10.1, huwezi kuingiliana bado kwa sababu backend bado haijaendesha, nitakuonyesha baadaye katika mwongozo huu jinsi ya kufanya hivyo.

Hatua ya 5: Kuingiza Hifadhidata ya Mradi Wetu

Kuingiza Hifadhidata ya Mradi Wetu
Kuingiza Hifadhidata ya Mradi Wetu
Kuingiza Hifadhidata ya Mradi Wetu
Kuingiza Hifadhidata ya Mradi Wetu

Fungua mpango wako wa usimamizi wa seva ya MySQL unayopenda na unganisha kwenye Raspberry Pi yako na hati ambazo tumeunda katika Hatua ya 2.

Pakua dampo la hifadhidata kutoka chini na uiingize kama kawaida, benchi la kazi la MySQL ungeenda kwenye Faili> Fungua Hati ya SQL na uchague dampo la hifadhidata ulilopakua. Kisha bonyeza CTRL + SHIFT + ENTER na hati ya SQL inapaswa kuendeshwa na muundo kwa hifadhidata inapaswa kuundwa.

Niliongeza stakabadhi nilizotumia kwa RaspberryPi yangu kama mfano hapa chini na picha kadhaa za muundo wa Hifadhidata, unaweza kuiangalia na kujaribu kupata wazo la jumla la kila kitu kinavyofanya kazi.

Hatua ya 6: Kuanzisha Mradi wetu

Kuanzisha Mradi Wetu
Kuanzisha Mradi Wetu
Kuanzisha Mradi Wetu
Kuanzisha Mradi Wetu

Kabla ya kuanza mradi wetu tunahitaji kubadilisha hati za hifadhidata katika faili ya config.py, ikiwa ulifuata maagizo kama vile mwongozo huu ulivyosema basi unaweza kupata hizi chini ya /home/pi/Documents/Backend/src/config.py hapa unahitaji kubadilisha hati za db_config kutofautisha na zile tulizounda mapema kwa hifadhidata yetu. Nimeongeza mfano wa kile utaona kwenye faili hii hapa chini.

Baada ya hapo tutaongeza faili ya huduma faili hii itahakikisha mradi wetu unaanza RaspberryPi inapoanza, hakikisha unabadilisha saraka ipasavyo ya mahali ulipoweka faili za nyuma. Tumia amri ifuatayo kuunda faili ya huduma:

[Kitengo] Maelezo = Mgao wa MajiBaada ya = huduma ya mysql

[Huduma] Aina = rahisiRestart = daimaRestartSec = 1User = piExecStart = / usr / bin / python3 /home/pi/Documents/Backend/index.py

[Sakinisha] WantedBy = multi-user.target

Rekebisha laini mahali inasema / nyumba /pi / Nyaraka /Backend/index.py hadi mahali ulipoweka faili zako za nyuma, ikiwa haufanyi hivi kwa usahihi mradi hautaanza kwa usahihi! Nitaongeza faili ya mfano hapa chini.

Baada ya kufanya hivyo na kutoka nje ya mhariri wa maandishi tunaweza kuwezesha huduma kwa amri zifuatazo: -

Na kama nyongeza tunaweza kukimbia:

Hatua ya 7: Kesi

Kesi hiyo
Kesi hiyo
Kesi hiyo
Kesi hiyo
Kesi hiyo
Kesi hiyo
Kesi hiyo
Kesi hiyo

Hongera tuko karibu hapo, nitaongeza picha ambazo zitaonyesha kwa usahihi vipimo nilivyotumia kwa mradi wangu, nilitumia sahani za MDF zenye unene wa 18mm, unaweza kutumia unene tofauti. Kesi yangu inaweza kutumika kama mwongozo wa kubuni yako au unaweza kurudia kile nilichotengeneza. (Ikiwa utatumia unene tofauti wa MDF michoro yangu haitakuruhusu kutengeneza muundo wangu, hakikisha kuibadilisha!) Paneli nilizotengeneza: - Paneli 2 za 32cm na 42cm (paneli za pembeni) - 1 jopo la 24cm na 32cm (sahani ya chini) - paneli 2 za 16cm na 24cm (sahani ya mbele ambapo LCD inakaa na sahani ya jirani) - jopo 1 la 28cm na 24cm (sahani ya kati inayoonekana kutoka mbele) - 1 jopo la 30cm na 24cm (sahani ya juu)

Hatua ya 8: Pendeza Bidhaa ya Mwisho

Pendeza Bidhaa ya Mwisho
Pendeza Bidhaa ya Mwisho
Pendeza Bidhaa ya Mwisho
Pendeza Bidhaa ya Mwisho

Umefikia mwisho na kwa sasa kwa matumaini umeweza kufanikisha jambo zima. Ikiwa wewe ni mpita njia tu unasoma, pia karibu, nakushukuru kwa kusoma hadi hatua ya mwisho!

Nilitumia damu nyingi, jasho na machozi katika mradi huu kwa hivyo ningefurahi ikiwa ungeacha maoni, ukosoaji wowote juu ya kuiboresha unakaribishwa!

Hatua ya 9: Shida

Ningeweka mradi katika hali yake ya sasa kama mfano wa kufanya kazi ambao unaweza kuona maboresho mengi zaidi.

Msingi wa kificho wa backend umeundwa kwa njia ambayo uhusiano mzuri wa mtumwa unaweza kufanywa vizuri ambapo chemchemi moja ingefanya kama sehemu kuu ya mbele na chemchemi zingine zote zingeshinikiza data na mabadiliko juu ya api ya REST ya bwana. Pia kuna mabaki ya mfumo wa ishara ya API katika nambari kwani hii ilikusudiwa kutekelezwa lakini ikatwe baadaye kwa sababu ya upungufu wa wakati.

Nimepakia nambari yangu kwenye seva yangu ya Gitlab na hapo unaweza kuangalia nambari hiyo kwa ujumla:

Ilipendekeza: