Cov txheej txheem:
- Khoom siv
- Kauj Ruam 1: Npaj Yam Khoom Npaj
- Kauj Ruam 2: Teeb RPi
- Kauj Ruam 3: Txuas Cov Cuab Yeej thiab Ntxiv Txoj Cai
- Kauj Ruam 4: Tsim Web Ui
- Kauj ruam 5: Tsim Database
- Kauj Ruam 6: Coding Lub Vev Xaib: Frontend (html Css)
- Kauj Ruam 7: Coding Lub Vev Xaib: Backend (eventlet) + Coding Frontend (javascript)
- Kauj Ruam 8: Ua Casing
Video: Chaw Nres Tsheb Huab Cua Hauv Zos: 8 Kauj Ruam (nrog Duab)
2024 Tus sau: John Day | [email protected]. Kawg hloov kho: 2024-01-30 09:25
Raws li kuv tab tom nrhiav txoj haujlwm zoo los ua rau kuv thawj xyoo kawm ntawv txoj haujlwm Kuv muaj ntau lub tswv yim ntawm yuav ua dab tsi tab sis tsis muaj ib qho uas kuv pom tias nyuaj.
Tom qab ntawd kuv xav txog kev ua Chaw Ua Haujlwm Huab Cua uas muaj qee yam tshwj xeeb rau nws. Kuv xav kom muaj peev xwm khaws tag nrho kuv cov ntaub ntawv thiab tom qab siv qhov no rau kev txheeb cais. Txoj haujlwm no yuav tshwj xeeb ua rau cov tib neeg uas muaj kev txaus siab rau huab cua thiab xav tau lub tsev tsim cov chaw nres tsheb huab cua uas tsis raug nqi ntau npaum li qhov muaj nyob hauv khw. Txoj haujlwm no kuj tseem ua kom muaj peev xwm ntxiv lossis tshem tawm cov cim tau txhua lub sijhawm.
Kuv zoo siab heev thaum kuv pom kuv qhov txiaj ntsig kawg uas ua tau zoo dua li qhov xav tau.
Nws yog tsim los ntawm Raspberry Pi 4 khiav linux.
- Apache Lub Vev Xaib (html css js)
- Eventlet (backend server lub vev xaib)
- MariaDB (database neeg rau zaub mov)
Khoom siv
-
Raspberry Pi 4:
sd-daim npav (min 16gb)
-
Sensors:
- QS-FS cua ceev sensor
- Cua Sensor Vaj Teeb Pom Kev Aluminium Alloy Cua Direction Sensor Cua Vane Ceev Ntsuas Ntsuas https://www.banggood.com/Wind-Sensor-Garden-Signal-Output-Aluminium-Alloy-Wind-Direction-Sensor-Wind-Vane-Speed -Measuring-Instrument-p-1624988.html? Rmmds = myorder & cur_warehouse = CN
- DHT22 (av noo)
- BMP280 (huab cua siab)
- DS18B20 (ntsuas kub)
-
Power Supply cov
- 5v fais fab mov (RPi)
- 9v fais fab mov (nyob rau sab nrauv daim phiaj fais fab mov)
-
Daim ntawv qhia zaub mov (x2)
T-cobbler ntxiv rau RPi 4
- jumper cov xov hlau
-
IC cov
- YWB 3008
- PCF8574 UA
- LCD Zaub 16x2
- LED (liab
-
Casing (optinal)
- crates cawv
- ntoo ncej (2m)
- ntoo ntoo (1m)
Kauj Ruam 1: Npaj Yam Khoom Npaj
Nws ib txwm muaj qhov tseem ceeb kom tau txais txhua yam khoom koj xav tau ua ntej koj pib ua haujlwm ntawm ib qib. Qhov no yuav txuag koj ntau lub sijhawm thaum ua haujlwm hla nws.
Yog li ua ntej, Koj xav tau dab tsi:
-
Raspberry Pi 4:
sd-daim npav (min 16gb)
-
Sensors:
- QS-FS cua ceev sensor
- Cua Sensor Vaj Teeb Pom Kev Txhuas Txhuas Txhuas Alloy Cua Kev Taw Qhia Sensor Cua Vane Ceev Ntsuas Ntsuas
- DHT22 (av noo)
- BMP280 (huab cua siab)
- DS18B20 (kub)
-
Power Supply cov
- 5v fais fab mov (RPi)
- 9v fais fab mov (nyob rau sab nrauv daim phiaj fais fab mov)
- Daim ntawv qhia zaub mov (x2)
- T-cobbler ntxiv rau RPi 4
- jumper cov xov hlau
-
IC cov
- YWB 3008
- PCF8574 UA
- LCD Zaub 16x2
- LED (liab)
-
Casing (optinal)
- cawv crateswooden
- ntoo ntoo (1m)
- ncej (2m)
Koj tuaj yeem pom txhua qhov txuas uas kuv yuav cov no hauv ntu khoom siv hauv qab qhia.
Kauj Ruam 2: Teeb RPi
Rau peb txoj haujlwm peb xav tau RPi nrog rau cov software tau teeb tsa.
- Apache Lub Vev Xaib (html css js)
- Flask Socket-IO (backend server lub vev xaib)
- MariaDB (database neeg rau zaub mov)
Ua ntej txhim kho nws ib txwm ua tau zoo kom ntseeg tau tias koj muaj qhov software tshiab tshaj plaws nruab rau ntawm koj RPi. Txhawm rau ua qhov no tsuas yog ua raws cov lus txib hauv qab no:
sudo apt hloov tshiab
Apache:
Ua ntej cia tham txog Apache. Apache yog lub vev xaib uas siv thoob plaws ntiaj teb. Nws khiav koj lub vev xaib flawlessly. Qhov tsuas yog koj yuav tsum ua yog nruab nws thiab tso koj lub vev xaib rau hauv daim nplaub tshev raug thiab nws muaj.
sudo apt nruab apache2 -y
Qhov ntawd yog nws!
Kom paub tseeb tias txhua yam tau teeb tsa kom raug nthwv dej rau koj li raspberry pi Ip-address hauv koj tus browser thiab saib yog tias koj tau txais lub vev xaib tsis raug. Yog tias koj muaj teeb meem hais txog cov kauj ruam no koj tuaj yeem tshawb xyuas RPi lub vev xaib ntawm no.
Txheej xwm:
Tam sim no cia nruab Eventlet. Nws yuav ua haujlwm peb lub backend server thiab yuav ua kom muaj kev sib txuas los ntawm peb cov sensors mus rau peb lub vev xaib. Rau qhov ntawd peb xav tau ob peb pob khoom.
Flask-socketIO:
pip3 nruab flask-socketio
Txheej xwm:
pip3 nruab eventlet
Gevent:
pip3 nruab gevent
Mariadb:
Mariadb yog MySQL raws cov database uas ua rau cov ntaub ntawv txheeb ze. Nws feem ntau siv hauv RPi thiab yog li ntawd muaj kev pab ntau yam uas koj tuaj yeem nrhiav tau hauv internet. Yog xav paub ntxiv koj tuaj yeem mus rau qhov txuas no.
apt nruab mariadb-server
Kauj Ruam 3: Txuas Cov Cuab Yeej thiab Ntxiv Txoj Cai
Txhawm rau txuas cov ntsuas rau peb RPi peb tuaj yeem siv T-Cobbler ntxiv rau. Nov yog qhov khoom siv me me uas ua rau nws muaj peev xwm siv tag nrho koj cov pins ntawm koj RPi ntawm lub khob cij.
Hauv kuv qhov project kuv muaj 5 tus ntsuas:
- QS-FS cua ceev sensor
- Cua Sensor Vaj Teeb Pom Kev Txhuas Txhuas Txhuas Alloy Cua Kev Taw Qhia Sensor Cua Vane Ceev Ntsuas Ntsuas
- DHT22 (av noo)
- BMP280 (huab cua siab)
- DS18B20 (kub)
Cua ceev sensor:
Ua ntej tshaj txhua yam kuv tau pib nrog lub ntsuas cua nrawm vim kuv feem ntau zoo siab txog qhov ntsuas no. Nws yog lub ntsuas hluav taws xob nrog lub teeb liab sib piv ntawm 0-5v tso tawm thiab xav tau qhov hluav taws xob tsawg kawg 7 volts los ua haujlwm. Kuv xaiv rau tus 9 volts adapter kom nws.
Txhawm rau nyeem hauv qhov ntsuas no kuv siv MCP3008 uas yog IC nyeem hauv Analog cov cim. IC tuaj yeem ua haujlwm ntawm 3.3V lossis 5V tab sis kuv xaiv 3.3V txhawm rau ua kom nws sib xws nrog RPi. Qhov no txhais tau tias kuv xav hloov pauv qhov hluav taws xob los ntawm 5V txog 3.3V Kuv tau ua qhov no los ntawm kev ntxiv qhov faib hluav taws xob tsim los ntawm 2 resistors (2k thiab 1k ohm).
Cua Taw Qhia Sensor:
Kev taw qhia cua yog qhov tseem ceeb raws li cua nrawm yog li kuv yuav txuas qhov txuas mus ntxiv no.
Qhov ntsuas no muaj qhov tshwj xeeb ib yam li cua ceev sensor. Nws tseem yuav ua haujlwm ntawm 9V thiab muaj qhov hluav taws xob tso tawm ntawm 5 volts. Qhov ntsuas no peb yuav txuas rau MCP3008 ntawm qhov faib hluav taws xob.
DHT22 (av noo):
DHT22 nyeem cov av noo. Nws muab tus nqi rau koj feem pua thiab nws tus nqi tuaj yeem nyeem tau los ntawm kev siv I2C raws tu qauv ntawm RPi. Yog li koj yuav tsum pab kom I2C cov chaw nres nkoj hauv Raspi-teeb tsa. Xav paub ntau ntxiv ntawm no.
BMP280 (huab cua siab):
BMP280 yog siv los nyeem huab cua siab. Nws tus nqi tau txais los ntawm SPI npav ntawm RPi. Cov txheej txheem no tseem yuav tsum tau ua kom nyob hauv Raspi-teeb tsa. Rau kuv tus lej kuv siv Adafruit lub tsev qiv ntawv.
DS18B20 (kub):
Qhov kawg sensor ntsuas qhov kub thiab txias. lub ntsuas no yog los ntawm Dallas thiab yog tias koj tau muaj kev paub me ntsis nrog Dallas koj yuav tsum tau zaum twb paub lawm tias lawv siv 1Wire-npav. Tsis txhob poob siab yog tias kuv hais tias cov txheej txheem no tseem yuav tsum tau ua kom nyob hauv Raspi-teeb tsa.
Yuav ua li cas kuv txuas cov sensors:
Raws li pdf Kuv tau tshaj tawm cov phiaj xwm hluav taws xob thiab daim ntawv qhia zaub mov kom yooj yim me ntsis.
Tom qab muaj peev xwm txuas lub ntsuas hluav taws xob tau zoo thiab koj ntxiv cov cai yuav tsum tau nyeem tag nrho cov ntsuas koj tuaj yeem mus tom ntej thiab mus rau theem tom ntej. Yog tias koj nyiam tso lub sensor tom qab lossis xav ntxiv ntau ntxiv koj tuaj yeem ua tau.
Kauj Ruam 4: Tsim Web Ui
Tam sim no peb txuas nrog cov sensors peb xav tau tus tsim rau peb lub vev xaib.
Peb xav kom lub vev xaib tsim kom yooj yim saib thaum tso tawm txhua lub sijhawm tiag tiag-cov ntaub ntawv ntawm cov ntsuas.
Tsis tas li peb xav kom tuaj yeem pom keeb kwm ntawm cov ntsuas ntsuas no nyob rau ib lub sijhawm twg.
Yog li Ua Ntej Kuv pib saib ib puag ncig hauv lub vev xaib rau qee qhov kev tshoov siab. Feem ntau ntawm txhua qhov uas tsuas yog cov ntaub ntawv qhia chaw tsis muaj qhov tsim tiag kuv tab tom nrhiav. Cov chaw huab cua uas twb tau nyob hauv kev ua lag luam feem ntau yuav muaj cov zaub. Thiab tawm ntawm qhov tso saib kuv qhov kev tshoov siab tuaj. Cov lus qhia feem ntau muaj kev tsim qauv nrog daim phiaj zoo. Qhov no tau muab kuv lub tswv yim los tsim lub vev xaib uas txhua qhov ntsuas yuav pom.
Tab sis, kuv kuj tau hais tias kuv xav ua nplooj ntawv uas koj tuaj yeem pom keeb kwm ntawm txhua qhov ntsuas nws qhov txiaj ntsig.
Vim yog vim li cas kuv kuj tau ua nplooj ntawv 2 hauv kuv tus qauv tsim muaj qhov no. Ntawm nplooj ntawv no kuv tuaj yeem pom qee cov ntaub ntawv ntxiv txog kuv lub ntsuas cua uas yuav tsis tshwm rau ntawm kuv lub hauv ntej-nplooj ntawv thiab tsis yog keeb kwm ib feem.
Tom qab ob peb teev kuv tau ua tiav kuv cov qauv tsim tawm!
Kev tsim qauv tau tsim los siv Adobe XD.
Kauj ruam 5: Tsim Database
Kom tau so ntawm qhov tsim qauv ib feem kuv pib ntawm kuv cov ntaub ntawv.
Cov ntaub ntawv no yuav suav nrog txhua tus ntsuas (5), txhua tus ua haujlwm (2) thiab qhov muaj txiaj ntsig uas cov ntsuas tau muaj.
Cov database yog qhov yooj yim heev thiab muaj qee qhov kev sib raug zoo.
Koj tuaj yeem pom tus qauv database hauv daim duab.
Kauj Ruam 6: Coding Lub Vev Xaib: Frontend (html Css)
Rov qab mus rau Lub Vev Xaib!
Tam sim no kuv muaj tus tsim Kuv tuaj yeem pib coding nws li html css kom siv nws tiag.
Hauv qhov home-page:
Kuv pib los ntawm kev txiav txim siab txhua lub sensor ua lub hauv paus ntawm kuv lub vev xaib. Yog li ntawd kuv tuaj yeem tom qab tso qhov no tsim los ntawm kuv tus lej Javascript.
Kuv kuj tau tso cov chav kawm JS-tuav rau hauv cov ntsiab lus. Cov no yuav ua rau nws hloov pauv cov ntsiab lus ntawm cov khoom ntawd
Qhov no coj kuv ntau lub sijhawm vim tias kuv tsis zoo nyob hauv cov lus tshwj xeeb no.
Ua tiav qhov home-page nws yog lub sijhawm pib ntawm nplooj ntawv keeb kwm.
Hauv keeb kwm-nplooj ntawv:
Nplooj ntawv no yooj yim dua los tsim dua tshiab. Hauv nplooj ntawv no tseem muaj js-tuav kom tau txais cov ntaub ntawv hais txog lub ntsuas pa hauv, lub sijhawm muaj txiaj ntsig qhov txiaj ntsig thiab los tso saib cov lus nrog rau qhov ntsuas qhov tseem ceeb.
Txhawm rau tsim lub tab-xaiv ntawm kuv lub vev xaib los xaiv ntawm Table lossis Chart Kuv tau yuav tsum ntxiv me ntsis ntawm Javascript los ua cov ntsiab lus tsis pom lossis ua kom pom.
Tam sim no peb muaj lub vev xaib zoo kawg tab sis tsis tuaj yeem qhia dab tsi ntawm nws? Wb kho qhov ntawd.
Koj tuaj yeem pom kuv tus lej ntawm kuv qhov chaw cia khoom github:
Kauj Ruam 7: Coding Lub Vev Xaib: Backend (eventlet) + Coding Frontend (javascript)
Backend:
Thaum lub backend server twb tau teeb tsa lawm peb tseem xav tau siv qhov no hauv peb qhov haujlwm. Ua ntej peb yuav tsum tau ntxiv qee qhov kev xa khoom los ua kom txhua yam ua haujlwm tau zoo.
los ntawm lub raj mis ntshuam Flask, thov, jsonify los ntawm flask_socketio ntshuam SocketIO los ntawm flask_cors ntshuam CORS
Txhawm rau ua kom lub server pib peb yuav tsum ntxiv cov hauv qab no:
socketio.run (app, debug = Cuav, host = '0.0.0.0')
Tam sim no tus neeg rau zaub mov yog online tab sis nws yuav tsis tuaj yeem tham nrog lub ntsej muag.
Nws tsis tau txais lossis xa rov qab dab tsi. Wb hloov qhov ntawd.
Txhawm rau nug txhua tus ntsuas hauv cov ntaub ntawv wel yuav ntxiv txoj hauv kev:
@app.route (endpoint + '/sensors', method = ['GET']) def get_sensors (): yog thov.method == 'GET': s = DataRepository.get_sensors () rov qab jsonify (sensors = s), 200
Txoj cai no siv chav kawm hu ua DataRepository thiab hais lus rau lub database. Ntawm no nws muab rov qab rau peb cov sensors peb thov.
Peb kuj xav tau txoj hauv kev los nug cov ntaub ntawv hais txog 1 lub ntsuas tshwj xeeb thiab lwm qhov rau qhov txiaj ntsig ntawm qhov ntsuas tau muab.
Cov no yog txhua txoj hauv kev tab sis ua kom cov ntaub ntawv tiag tiag ua tau. Peb yuav tsum xa txhua lub sijhawm sib nrug cov ntaub ntawv uas lub ntsuas ntsuas tsuas yog nyeem. Txhawm rau ua qhov no peb siv Socket-IO kev txuas. Nws yog kev sib txuas tsim los ntawm lub sijhawm uas ib tus neeg rub lub vev xaib nrog JS thiab nws ua kom qhov kev sib txuas no qhib. Qhov no yog kev txuas ob-duplex uas txhais tau tias nws yog kev sib txuas uas ua haujlwm hauv ob txoj hauv kev (xa thiab txais) tib lub sijhawm. Txhawm rau siv qhov no peb yuav tsum ntxiv cov cai hauv qab no.
@socketio.on ('txuas') def initial_connection (): luam tawm ('Ib tus neeg siv tshiab txuas') socketio.send ("U khoov geconnecteerd") # # Xa mus rau tus neeg siv khoom!
Qhov kev thaj yeeb nyab xeeb ntawm cov cai tau khiav thaum tus neeg siv khoom sib txuas.
Txhawm rau tau txais cov lus los ntawm tus frontend koj tuaj yeem siv tus lej no.
@socketio.on ('message') def message_recieved (): dhau
Koj kuj tuaj yeem xa lus. Qhov no ua tiav los ntawm cov hauv qab no.
socketio.emit ('Update_RTD', dict_results, tshaj tawm = Tseeb)
Thawj qhov kev sib cav tuaj yeem yog txhua yam koj xav tau tab sis yuav sib haum rau qhov koj muab tso rau hauv koj JS thiab koj tuaj yeem xa cov khoom nrog nws ib yam. Qhov no yog nyob ntawm yeem.
Javascript:
Nws yog ib qho tseem ceeb kom ntxiv me ntsis ntawm JS kom tau txais lub server txuas nrog lub backend server kom tuaj yeem tso tawm cov ntaub ntawv tam sim no thiab tau txais cov ntaub ntawv los ntawm lub hauv paus.
Peb yuav hu xov tooj rau socketIO cov haujlwm peb tau ua kom tau txais thiab xa cov ntaub ntawv.
Thaum peb tau txais cov ntaub ntawv ua Json Object peb yuav tshem nws kom tau cov ntaub ntawv peb xav tau thiab tom qab ntawd muab tso rau hauv JS-tuav peb muab tso rau hauv peb lub vev xaib.
Koj tuaj yeem pom kuv tus lej ntawm kuv qhov chaw cia khoom github:
Kauj Ruam 8: Ua Casing
Lub casing tau siv ntau txoj haujlwm thiab tuaj yeem ua tiav los ntawm txhua txoj hauv kev uas koj xav tau. Nov yog qhov kuv tau ua.
Kuv coj ib co Wine Crates.
Ib ntawm lawv kuv tau siv ua lub thawv kom muaj kuv RPi thiab feem ntau ntawm kuv lub ntsuas cua.
Cua ceev sensor thiab cua qhia sensor tau ntawm chav kawm tsis tau muab tso rau sab hauv tab sis nyob rau sab saum toj ntawm tus ntoo khaub lig muab tso rau ntawm tus ncej. Ntawm tus ncej no kuv dai tus cawv txiv hmab uas kuv kuj ua lub qhov rooj rau.
Koj tuaj yeem pom yuav ua li cas kuv ua tiav kuv txoj haujlwm los ntawm kev saib cov duab.
Nov yog qhov piv txwv ntawm yuav ua li cas koj thiaj ua tau. Koj tuaj yeem ua nrog nws txhua yam koj xav tau.
Pom zoo:
Chaw Nres Tsheb Huab Cua DIY & WiFi Chaw Nres Tsheb Sensor: 7 Kauj Ruam (nrog Duab)
Chaw Tshawb Xyuas Huab Cua DIY & WiFi Chaw Nres Nkoj: Hauv qhov haujlwm no kuv yuav qhia koj yuav tsim lub chaw nres tsheb huab cua nrog rau qhov chaw nres tsheb WiFi sensor. Lub chaw nres tsheb ntsuas ntsuas cov ntaub ntawv kub thiab av noo hauv cheeb tsam thiab xa nws, los ntawm WiFi, mus rau chaw nres tsheb huab cua. Cov chaw nres tsheb huab cua tom qab ntawd qhia t
Huab cua-chaw nres tsheb Nrog Arduino, BME280 & Zaub rau Pom Kev Pom Zoo Hauv 1-2 Hnub Xeem: 3 Kauj Ruam (nrog Duab)
Huab cua-chaw nres tsheb Nrog Arduino, BME280 & Zaub rau Pom Kev Pom Zoo Hauv 1-2 Hnub Xeem: Nyob Zoo! Ntawm no ntawm cov lus qhia qhia txog huab cua tau twb tau qhia lawm. Lawv qhia txog huab cua tam sim no, qhov kub thiab txias. Dab tsi lawv tsis muaj txog tam sim no yog kev nthuav qhia ntawm chav kawm hauv 1-2 hnub dhau los. Cov txheej txheem no yuav muaj lub
Huab Cua Huab Cua Huab Cua: 11 Kauj Ruam (nrog Duab)
Huab Cua Huab Cua Huab Cua: Txoj haujlwm no ua rau huab cua huab siv Raspberry Pi Zero W. Nws txuas rau Yahoo Huab Cua API thiab nyob ntawm qhov kev kwv yees rau hnub tom ntej hloov xim. Kuv tau tshoov siab los ntawm Wisconsin Gas Building uas muaj nplaim taws ntawm lub ru tsev uas hloov pauv
HRV (Lub Tsev Huab Cua Hloov Chaw) Arduino Tus Tswj Nrog Huab Cua Huab Cua: 7 Cov Kauj Ruam (nrog Duab)
HRV (Lub Tsev Huab Cua Hloov Chaw) Arduino Tus Tswj Nrog Air Economizer: HRV Arduino Tus Tswj Nrog Air Economizer Yog li kuv keeb kwm nrog txoj haujlwm no yog kuv nyob hauv Minnesota thiab kuv lub rooj tsav xwm hluav taws xob kib ntawm kuv LifeBreath 155Max HRV. Kuv tsis xav them $ 200 rau qhov tshiab Kuv ib txwm xav tau qee yam nrog kev lag luam huab cua kev ua txhaum
Chaw Nres Tsheb Huab Cua Nrog Cov Ntaub Ntawv Teev Npe: 7 Kauj Ruam (nrog Duab)
Chaw Nres Tsheb Huab Cua Nrog Cov Ntaub Ntawv Teev Npe: Hauv qhov kev qhia no kuv yuav qhia koj yuav ua li cas thiaj ua lub chaw nres tsheb huab cua los ntawm koj tus kheej. Txhua yam koj xav tau yog kev paub yooj yim hauv tshuab hluav taws xob, kev ua haujlwm thiab lub sijhawm me ntsis. Qhov haujlwm no tseem tab tom ua. Qhov no tsuas yog thawj ntu. Kev hloov kho tshiab yuav yog