Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-23 15:10
Moti i keq gjithmonë duket më keq përmes dritares
Ne kemi qenë gjithmonë të interesuar të monitorojmë motin tonë lokal dhe atë që shohim nga dritarja. Ne gjithashtu donim kontroll më të mirë mbi sistemin tonë të ngrohjes dhe ajrit të kondicionuar. Ndërtimi i një stacioni të motit personal është një përvojë e madhe mësimore. Kur të përfundoni ndërtimin e këtij projekti do të keni një kuptim më të mirë se si funksionojnë komunikimet pa tel, si funksionojnë sensorët dhe sa e fuqishme mund të jetë platforma Raspberry Pi. Me këtë projekt si bazë dhe përvojën e fituar, ju do të jeni në gjendje të ndërtoni lehtësisht projekte më komplekse në të ardhmen.
Hapi 1: Fatura e Pajisjeve Thelbësore
1. Një mjedër Pi
Hapi i parë është të futni duart në një tabelë Raspberry Pi. Raspberry Pi është një kompjuter me një bord me Linux. Qëllimi i tij është të përmirësojë aftësitë e programimit dhe të kuptuarit e harduerit. U miratua shpejt nga hobiistët dhe entuziastët e elektronikës për projekte novatore.
2. Mburoja I²C për Raspberry Pi
INPI2 (përshtatësi I2C) siguron Raspberry Pi 2/3 një port I²C për përdorim me shumë pajisje I²C. Availableshtë në dispozicion në Dyqanin Dcube
3. Sensori i Lagështisë Dixhitale, Presionit dhe Temperaturës, BME280
BME280 është një sensor lagështie, presioni dhe temperature që ka kohë të shpejtë reagimi dhe saktësi të lartë të përgjithshme. Ne e blemë këtë sensor nga Dyqani Dcube
4. Kabllo lidhëse I²C
Ne kishim kabllon lidhës I²C të disponueshëm në Dyqanin Dcube
5. Kabllo mikro USB
Kablloja mikro USB Furnizimi me energji elektrike është një zgjedhje ideale për fuqizimin e Raspberry Pi.
6. Interpretoni Qasjen në Internet nëpërmjet EthernetCable/Përshtatës WiFi
Një nga gjërat e para që do të dëshironi të bëni është të lidhni Raspberry Pi tuaj në internet. Ne mund të lidhemi duke përdorur një kabllo Ethernet. Një mundësi tjetër është që ju mund të lidheni me një rrjet pa tel duke përdorur një përshtatës wireless USB.
7. Kabllo HDMI (Ekrani i kabllit të lidhjes)
Çdo monitor HDMI/DVI dhe çdo TV duhet të funksionojë si ekran për Pi. Por është opsionale. Mundësia e hyrjes në distancë (si-SSH) gjithashtu nuk mund të përjashtohet. Ju gjithashtu mund të merrni qasje me programin PUTTY.
Hapi 2: Lidhjet e pajisjeve për konfigurimin
Bëni qarkun sipas skemës së treguar.
Ndërsa mësonim, ne mësuam plotësisht me bazat e elektronikës në lidhje me njohuritë e harduerit dhe softuerit. Ne donim të hartonim një skemë të thjeshtë elektronike për këtë projekt. Skemat elektronike janë si një plan për elektronikën. Hartoni një plan dhe ndiqni me kujdes modelin. Ne kemi aplikuar disa baza të elektronikës këtu. Logjika ju çon nga A në B, imagjinata do t'ju çojë kudo!
Lidhja e Raspberry Pi dhe I²C Shield
Para së gjithash merrni Raspberry Pi dhe vendosni Mburojën I²C (me Portën I²C të Përballur me Përbrenda) mbi të. Shtypni Shield me butësi mbi kunjat GPIO të Pi dhe ne jemi bërë me këtë hap aq të lehtë sa byrek (shiko foton).
Lidhja e Sensorit dhe Raspberry Pi
Merrni sensorin dhe lidhni kabllon I²C me të. Sigurohuni që dalja I²C të lidhet GJITHMON me hyrjen e I²C. E njëjta gjë duhet të ndiqet për Raspberry Pi me mburojën I²C të montuar mbi të me kunjat GPIO. Ne kemi Mburojën I²C dhe kabllot lidhës në anën tonë si një lehtësim shumë i madh dhe një avantazh shumë i madh pasi na kanë mbetur vetëm opsioni plug and play. Nuk ka më probleme me kunjat dhe instalimet elektrike dhe kështu, konfuzioni është zhdukur. Vetëm imagjinoni veten në rrjetën e telave dhe duke u futur në të. Një lehtësim nga ajo. Kjo i bën gjërat të pakomplikuara.
Shënim: Teli kafe duhet të ndjekë lidhjen Ground (GND) midis daljes së një pajisjeje dhe hyrjes së një pajisjeje tjetër
Lidhshmëria në internet është një nevojë
Ju në fakt keni një zgjedhje këtu. Mund ta lidhni Raspberry Pi me kabllon LAN ose përshtatësin wireless Nano USB për Lidhshmërinë WIFI. Sido që të jetë, manifesti është të lidheni me internetin i cili është realizuar.
Fuqizimi i qarkut
Futeni kabllon Micro USB në prizën e energjisë të Raspberry Pi. Punch up dhe voila! Gjithçka është mirë për të shkuar dhe ne do të fillojmë menjëherë.
Lidhja me ekranin
Ne ose mund të kemi kabllon HDMI të lidhur me një monitor ose një televizor. Ne mund të hyjmë në një Raspberry Pi pa e lidhur atë me një monitor duke përdorur -SSH (Hyni në vijën e komandës së Pi nga një kompjuter tjetër). Ju gjithashtu mund të përdorni softuerin PUTTY për këtë. Ky opsion është për përdoruesit e përparuar, kështu që ne nuk do ta mbulojmë atë në detaje këtu.
Kam dëgjuar se do të ketë një recesion, kam vendosur të mos marr pjesë
Hapi 3: Programimi i Raspberry Pi në Java
Kodi Java për Sensorin Raspberry Pi dhe BME280. Availableshtë në dispozicion në depon tonëGithub.
Para se të kaloni në kod, sigurohuni që të lexoni udhëzimet e dhëna në skedarin Readme dhe Konfiguroni Raspberry Pi tuaj sipas tij. Do të duhet vetëm një moment për ta bërë këtë. Një stacion personal i motit është një grup instrumentesh për matjen e motit të operuara nga një individ privat, klub, shoqatë, apo edhe biznes. Stacionet personale të motit mund të funksionojnë vetëm për kënaqësinë dhe edukimin e pronarit, por shumë operatorë të stacioneve të motit personal gjithashtu ndajnë të dhënat e tyre me të tjerët, ose duke përpiluar manualisht dhe duke i shpërndarë ato, ose përmes përdorimit të internetit ose radios amatore.
Kodi është në formën më të thjeshtë që mund ta imagjinoni dhe nuk duhet të keni asnjë problem me të, por pyesni nëse keni. Edhe nëse dini një mijë gjëra, prapë pyesni dikë që e di.
Ju gjithashtu mund të kopjoni kodin Java të punës për këtë sensor nga këtu.
// Shpërndarë me një licencë me vullnet të lirë.// Përdoreni atë në çdo mënyrë që dëshironi, fitimprurëse ose falas, me kusht që të përshtatet në licencat e veprave të tij shoqëruese. // BME280 // Ky kod është krijuar për të punuar me Mini Modulin BME280_I2CS I2C i disponueshëm nga ControlEverything.com. //
import com.pi4j.io.i2c. I2CBus;
import com.pi4j.io.i2c. I2CDevice; import com.pi4j.io.i2c. I2CFactory; import java.io. IOException;
klasa publike BME280
{public static void main (String args ) hedh Përjashtim {// Krijo autobus I2C I2CBus bus = I2CFactory.getInstance (I2CBus. BUS_1); // Merrni pajisjen I2C, adresa BME280 I2C është 0x76 (108) pajisje I2CDevice = bus.getDevice (0x76); // Lexoni 24 bajt të dhëna nga adresa 0x88 (136) bajt b1 = bajt i ri [24]; pajisje.lexoni (0x88, b1, 0, 24); // Shndërroni të dhënat // koeficientët temp int dig_T1 = (b1 [0] & 0xFF) + ((b1 [1] & 0xFF) * 256); int dig_T2 = (b1 [2] & 0xFF) + ((b1 [3] & 0xFF) * 256); nëse (dig_T2> 32767) {dig_T2 -= 65536; } int dig_T3 = (b1 [4] & 0xFF) + ((b1 [5] & 0xFF) * 256); nëse (dig_T3> 32767) {dig_T3 -= 65536; } // koeficientët e presionit int dig_P1 = (b1 [6] & 0xFF) + ((b1 [7] & 0xFF) * 256); int dig_P2 = (b1 [8] & 0xFF) + ((b1 [9] & 0xFF) * 256); nëse (dig_P2> 32767) {dig_P2 -= 65536; } int dig_P3 = (b1 [10] & 0xFF) + ((b1 [11] & 0xFF) * 256); nëse (dig_P3> 32767) {dig_P3 -= 65536; } int dig_P4 = (b1 [12] & 0xFF) + ((b1 [13] & 0xFF) * 256); nëse (dig_P4> 32767) {dig_P4 -= 65536; } int dig_P5 = (b1 [14] & 0xFF) + ((b1 [15] & 0xFF) * 256); nëse (dig_P5> 32767) {dig_P5 -= 65536; } int dig_P6 = (b1 [16] & 0xFF) + ((b1 [17] & 0xFF) * 256); nëse (dig_P6> 32767) {dig_P6 -= 65536; } int dig_P7 = (b1 [18] & 0xFF) + ((b1 [19] & 0xFF) * 256); nëse (dig_P7> 32767) {dig_P7 -= 65536; } int dig_P8 = (b1 [20] & 0xFF) + ((b1 [21] & 0xFF) * 256); nëse (dig_P8> 32767) {dig_P8 -= 65536; } int dig_P9 = (b1 [22] & 0xFF) + ((b1 [23] & 0xFF) * 256); nëse (dig_P9> 32767) {dig_P9 -= 65536; } // Lexoni 1 bajt të dhëna nga adresa 0xA1 (161) int dig_H1 = ((byte) pajisje. Lexoni (0xA1) & 0xFF); // Lexoni 7 bajt të dhëna nga adresa 0xE1 (225) pajisje. Lexoni (0xE1, b1, 0, 7); // Shndërroni të dhënat // koeficientët e lagështisë int dig_H2 = (b1 [0] & 0xFF) + (b1 [1] * 256); nëse (dig_H2> 32767) {dig_H2 -= 65536; } int dig_H3 = b1 [2] & 0xFF; int dig_H4 = ((b1 [3] & 0xFF) * 16) + (b1 [4] & 0xF); nëse (dig_H4> 32767) {dig_H4 -= 65536; } int dig_H5 = ((b1 [4] & 0xFF) / 16) + ((b1 [5] & 0xFF) * 16); nëse (dig_H5> 32767) {dig_H5 -= 65536; } int dig_H6 = b1 [6] & 0xFF; nëse (dig_H6> 127) {dig_H6 -= 256; } // Zgjidhni regjistrin e kontrollit të lagështisë // Lagështia mbi normën e marrjes së mostrave = 1 pajisje. Shkruani (0xF2, (bajt) 0x01); // Zgjidhni regjistrin e matjes së kontrollit // Mënyra normale, temperatura dhe presioni mbi normën e marrjes së mostrave = 1 pajisje. Shkruani (0xF4, (bajt) 0x27); // Zgjidh regjistrin e konfigurimit // Koha e gatishmërisë = 1000 ms pajisje. Shkruaj (0xF5, (bajt) 0xA0); // Lexoni 8 bajt të dhëna nga adresa 0xF7 (247) // presioni msb1, presioni msb, presioni lsb, temp msb1, temp msb, temp lsb, lagështia lsb, lagështia msb byte të dhëna = bajt i ri [8]; pajisje.lexoni (0xF7, të dhëna, 0, 8); // Shndërroni të dhënat e presionit dhe temperaturës në 19-bit të gjata adc_p = (((e gjatë) (të dhëna [0] & 0xFF) * 65536) + ((e gjatë) (të dhëna [1] & 0xFF) * 256) + (e gjatë) (të dhëna [2] & 0xF0)) / 16; e gjatë adc_t = (((e gjatë) (të dhëna [3] & 0xFF) * 65536) + ((e gjatë) (të dhëna [4] & 0xFF) * 256) + (e gjatë) (të dhëna [5] & 0xF0)) / 16; // Shndërroni të dhënat e lagështisë gjatë adc_h = ((e gjatë) (të dhëna [6] & 0xFF) * 256 + (e gjatë) (të dhëna [7] & 0xFF)); // Llogaritjet e kompensimit të temperaturës dyfish var1 = (((dyfish) adc_t) / 16384.0 - ((dyfish) dig_T1) / 1024.0) * ((dyfish) dig_T2); dyfish var2 = ((((dyfish) adc_t) / 131072.0 - ((dyfish) dig_T1) / 8192.0) * (((dyfish) adc_t) /131072.0 - ((dyfish) dig_T1) /8192.0)) * ((dyfish) dig_T3); dyfish t_fine = (e gjatë) (var1 + var2); cTemp dyfishtë = (var1 + var2) / 5120.0; dyshe fTemp = cTemp * 1.8 + 32; // Llogaritjet e kompensimit të presionit var1 = ((dyfish) t_fine / 2.0) - 64000.0; var2 = var1 * var1 * ((dyfish) dig_P6) / 32768.0; var2 = var2 + var1 * ((dyfish) dig_P5) * 2.0; var2 = (var2 / 4.0) + (((dyfish) dig_P4) * 65536.0); var1 = (((dyfish) dig_P3) * var1 * var1 / 524288.0 + ((dyfish) dig_P2) * var1) / 524288.0; var1 = (1.0 + var1 / 32768.0) * ((dyfish) dig_P1); dyshe p = 1048576.0 - (dyfish) adc_p; p = (p - (var2 / 4096.0)) * 6250.0 / var1; var1 = ((dyfish) dig_P9) * p * p / 2147483648.0; var2 = p * ((dyfish) dig_P8) / 32768.0; presion i dyfishtë = (p + (var1 + var2 + ((dyfish) dig_P7)) / 16.0) / 100; // Llogaritjet e kompensimit të lagështisë dyfish var_H = (((dyfish) t_fine) - 76800.0); var_H = (adc_h - (dig_H4 * 64.0 + dig_H5 / 16384.0 * var_H)) * (dig_H2 / 65536.0 * (1.0 + dig_H6 / 67108864.0 * var_H * (1.0 + dig_H3 / 67108864.0 * var_H))); lagështi e dyfishtë = var_H * (1.0 - dig_H1 * var_H / 524288.0); nëse (lagështia> 100.0) {lagështia = 100.0; } tjetër nëse (lagështia <0.0) {lagështia = 0.0; } // Dalja e të dhënave në ekran System.out.printf ("Temperatura në Celsius: %.2f C %n", cTemp); System.out.printf ("Temperatura në Fahrenheit: %.2f F %n", fTemp); System.out.printf ("Presioni: %.2f hPa %n", presion); System.out.printf ("Lagështia relative: %.2f %% RH %n", lagështia); }}
Hapi 4: Prakticiteti i Kodit
Tani, shkarkoni (ose git pull) kodin dhe hapeni atë në Raspberry Pi.
Drejtoni komandat për të përpiluar dhe ngarkuar kodin në terminal dhe shihni daljen në Monitor. Pas pak çastesh, do të shfaqë të gjithë parametrat. Duke u siguruar që të keni një kalim të qetë të kodit dhe një rezultat të qetë (ish), ju mendoni më shumë ide për të bërë ndryshime të mëtejshme (Çdo projekt fillon me një histori).
Hapi 5: Shfrytëzimi në botën konstruktive
BME280 arrin performancë të lartë në të gjitha aplikimet që kërkojnë matje të lagështisë dhe presionit. Këto aplikacione në zhvillim janë vetëdija për kontekstin, p.sh. Zbulimi i lëkurës, Zbulimi i ndryshimit të dhomës, Monitorimi / Mirëqenia e Fitnesit, Paralajmërim në lidhje me Thatësinë ose Temperaturat e Larta, Matja e Vëllimit dhe Rrjedhës së Ajrit, Kontrolli i Automatizimit të Shtëpisë, Ngrohja e Kontrollit, Ventilimi, Kondicionimi (HVAC), Interneti i Gjërave (IoT), Përmirësimi i GPS (p.sh. Përmirësimi i rregullimit të kohës së parë, llogaritja e vdekur, zbulimi i shpatit), navigimi i brendshëm (ndryshimi i zbulimit të dyshemesë, zbulimi i ashensorit), navigimi në natyrë, aplikacionet e kohës së lirë dhe sporteve, parashikimi i motit dhe treguesi i shpejtësisë vertikale (ngritje/lavaman) Shpejtësia).
Hapi 6: Përfundimi
Siç mund ta shihni, ky projekt është një demonstrim i shkëlqyeshëm i asaj që janë në gjendje hardware dhe softuer. Në pak kohë, dikush mund të ndërtojë një projekt kaq mbresëlënës! Sigurisht, ky është vetëm fillimi. Krijimi i një Stacioni Moti Personal më të sofistikuar si Aeroporti i Automatizuar Stacionet Moti Personal mund të përfshijë edhe më shumë sensorë si Anemometër (shpejtësia e erës), Transmetometri (dukshmëria), Pyranometri (rrezatimi diellor) etj. Ne kemi një video tutorial në Youtube që ka funksionimin bazë të Sensori I²C me Rasp Pi. Reallyshtë vërtet e mahnitshme të shohësh rezultatet dhe punën e komunikimeve të I²C. Kontrolloni gjithashtu. Argëtohuni duke ndërtuar dhe mësuar! Ju lutemi na tregoni se çfarë mendoni për këtë udhëzues. Ne do të donim të bënim disa përmirësime nëse ishte e nevojshme.
Recommended:
Stacioni i motit NaTaLia: Stacioni i motit Arduino me energji diellore Bëhet në rrugën e duhur: 8 hapa (me fotografi)
Stacioni i motit NaTaLia: Stacioni i motit me energji diellore Arduino Bëhet në rrugën e duhur: Pas 1 viti funksionimi të suksesshëm në 2 vende të ndryshme, unë po ndaj planet e mia të projektit të stacionit të motit me energji diellore dhe po shpjegoj se si evoluoi në një sistem i cili me të vërtetë mund të mbijetojë për një kohë të gjatë periudha nga energjia diellore. Nëse ndiqni
Stacioni i motit në dhomë duke përdorur Arduino & BME280: 4 hapa
Stacioni i motit në dhomë duke përdorur Arduino & BME280: Më parë kam ndarë një stacion të thjeshtë moti i cili shfaq temperaturën dhe lagështinë e zonës lokale. Problemi me të ishte se do të duhej kohë për tu përditësuar dhe të dhënat nuk ishin të sakta. Në këtë tutorial do të bëjmë një monitor të motit të brendshëm
Stacioni i motit duke përdorur Wemos D1 Mini, BME280 dhe Sensate .: 6 hapa
Stacioni i motit duke përdorur Wemos D1 Mini, BME280 dhe Sensate .: Në postimet e mëparshme kam ndarë metoda të ndryshme për të ndërtuar një stacion moti. Nëse nuk e keni kontrolluar, këtu është një lidhje. Në këtë udhëzues unë do të demonstroj se si të ndërtoj një stacion të thjeshtë Moti duke përdorur Wemos dhe një platformë IoT të quajtur Sensate.
Stacioni i motit duke përdorur Raspberry Pi Me BME280 në Python: 6 hapa
Stacioni i motit duke përdorur Raspberry Pi Me BME280 në Python: is aith a scéalaí an synir (Moti është një tregimtar i mirë) Me ngrohjen globale dhe çështjet e ndryshimit të klimës, modeli global i motit po bëhet i çrregullt në të gjithë botën tonë duke çuar në një numër të motit të lidhur fatkeqësitë natyrore (thatësira, ekstreme
Stacioni i motit Acurite 5 në 1 duke përdorur një Raspberry Pi dhe Weewx (Stacionet e tjera të motit janë të pajtueshme): 5 hapa (me fotografi)
Stacioni i motit Acurite 5 në 1 Duke përdorur një Raspberry Pi dhe Weewx (Stacionet e tjera të motit janë të pajtueshme): Kur kisha blerë stacionin e motit Acurite 5 në 1 doja të isha në gjendje të kontrolloja motin në shtëpinë time ndërsa isha larg. Kur mbërrita në shtëpi dhe e vendosa, kuptova se ose duhej ta kisha ekranin të lidhur me një kompjuter ose të blija shpërndarësin e tyre të zgjuar,