Orodha ya maudhui:

Kituo cha Hali ya Hewa ya Kibinafsi Kutumia Raspberry Pi Pamoja na BME280 katika Java: Hatua 6
Kituo cha Hali ya Hewa ya Kibinafsi Kutumia Raspberry Pi Pamoja na BME280 katika Java: Hatua 6

Video: Kituo cha Hali ya Hewa ya Kibinafsi Kutumia Raspberry Pi Pamoja na BME280 katika Java: Hatua 6

Video: Kituo cha Hali ya Hewa ya Kibinafsi Kutumia Raspberry Pi Pamoja na BME280 katika Java: Hatua 6
Video: Cheki jama alivyo paa na ndege ya kichawi utashangaa 2024, Julai
Anonim
Image
Image
Muswada wa Vifaa Muhimu
Muswada wa Vifaa Muhimu

Hali mbaya ya hewa daima inaonekana mbaya kupitia dirisha

Tumekuwa na hamu ya kufuatilia hali ya hewa ya karibu na kile tunachokiona kupitia dirisha. Pia tulitaka udhibiti bora juu ya mfumo wetu wa kupokanzwa na A / C. Kujenga Kituo cha hali ya hewa ya kibinafsi ni uzoefu mzuri wa kujifunza. Unapomaliza kujenga mradi huu utakuwa na uelewa mzuri wa jinsi mawasiliano ya waya hufanya kazi, jinsi sensorer zinavyofanya kazi, na jinsi jukwaa la Raspberry Pi linavyoweza kuwa na nguvu. Pamoja na mradi huu kama msingi na uzoefu uliopatikana, utaweza kujenga miradi ngumu zaidi katika siku zijazo.

Hatua ya 1: Muswada wa Vifaa Muhimu

Muswada wa Vifaa Muhimu
Muswada wa Vifaa Muhimu
Muswada wa Vifaa Muhimu
Muswada wa Vifaa Muhimu
Muswada wa Vifaa Muhimu
Muswada wa Vifaa Muhimu

1. Raspberry Pi

Hatua ya kwanza ni kuweka mikono yako kwenye bodi ya Raspberry Pi. Raspberry Pi ni kompyuta moja ya bodi inayotumiwa na Linux. Lengo lake ni kuboresha ujuzi wa programu na uelewa wa vifaa. Ilipitishwa haraka na wapenda hobby na wapenda elektroniki kwa miradi ya ubunifu.

2. I²C Shield kwa Raspberry Pi

INPI2 (I2C adapta) hutoa Raspberry Pi 2/3 bandari ya I²C kwa matumizi na vifaa vingi vya I²C. Inapatikana kwenye Duka la Dcube

3. Unyevu wa dijiti, Shinikizo na Sensorer ya Joto, BME280

BME280 ni unyevu, shinikizo na sensorer ya joto ambayo ina wakati wa kujibu haraka na usahihi wa hali ya juu. Tulinunua sensor hii kutoka Duka la Dcube

4. I²C Kuunganisha Cable

Tulikuwa na kebo ya kuunganisha ya I²C inapatikana katika Duka la Dcube

5. kebo ndogo ya USB

Usambazaji wa umeme wa kebo ndogo ya USB ni chaguo bora ya kuwezesha Raspberry Pi.

6. Tafsiri Ufikiaji wa Mtandao kupitia adapta ya EthernetCable / WiFi

Moja ya mambo ya kwanza ambayo utataka kufanya ni kupata Raspberry Pi yako kushikamana hadi kwenye mtandao. Tunaweza kuunganisha kwa kutumia kebo ya Ethernet. Uwezekano mwingine ni kwamba unaweza kuungana na mtandao wa wavuti bila kutumia adapta isiyo na waya ya USB.

7. Cable ya HDMI (Onyesha na kebo ya muunganisho)

Mfuatiliaji wowote wa HDMI / DVI na Runinga yoyote inapaswa kufanya kazi kama onyesho la Pi. Lakini ni hiari. Ufikiaji wa mbali (kama-SSH) hauwezi kuzuiliwa pia. Unaweza pia kupata ufikiaji na programu ya PUTTY.

Hatua ya 2: Uunganisho wa vifaa kwa Usanidi

Uunganisho wa vifaa kwa Usanidi
Uunganisho wa vifaa kwa Usanidi
Uunganisho wa vifaa kwa Usanidi
Uunganisho wa vifaa kwa Usanidi

Fanya mzunguko kulingana na skimu iliyoonyeshwa.

Wakati wa kujifunza, tulipata kabisa na misingi ya umeme kuhusu maarifa ya vifaa na programu. Tulitaka kuandaa skimu rahisi ya umeme kwa mradi huu. Hesabu za elektroniki ni kama ramani ya umeme. Chora ramani na ufuate muundo kwa uangalifu. Tumetumia misingi ya umeme hapa. Mantiki inakupa kutoka A hadi B, Mawazo yatakupeleka kila mahali!

Uunganisho wa Raspberry Pi na I²C Shield

Kwanza kabisa chukua Raspberry Pi na uweke I²C Shield (na Ndani Inakabiliwa na I PortC Port) juu yake. Bonyeza Shield kwa upole juu ya pini za GPIO za Pi na tumemaliza na hatua hii rahisi kama pai (angalia picha).

Uunganisho wa Sensor na Raspberry Pi

Chukua sensorer na Unganisha kebo ya I²C nayo. Hakikisha kuwa Pato la I ALC Daima linaunganisha kwenye Ingizo la I²C. Vivyo hivyo inabidi ifuatwe kwa Raspberry Pi na ngao ya I²C iliyowekwa juu yake pini za GPIO. Tunayo Shield ya I²C na nyaya zinazounganisha upande wetu kama afueni kubwa sana na faida kubwa sana kwani tumebaki tu na kuziba na kucheza chaguo. Hakuna pini zaidi na suala la wiring na kwa hivyo, kuchanganyikiwa kumepita. Hebu fikiria mwenyewe kwenye wavuti ya waya na uingie ndani hiyo. Kitulizo kutoka kwa hilo. Hii inafanya mambo kuwa magumu.

Kumbuka: Waya wa hudhurungi inapaswa kufuata uunganisho wa Ardhi (GND) kati ya pato la kifaa kimoja na uingizaji wa kifaa kingine

Uunganisho wa Mtandao ni Hitaji

Una chaguo hapa kweli. Unaweza kuunganisha Raspberry Pi na kebo ya LAN au adapta isiyo na waya ya Nano USB kwa Uunganisho wa WIFI. Kwa vyovyote vile, wazi ni kuungana na mtandao ambao umekamilika.

Nguvu ya Mzunguko

Chomeka kebo ndogo ya USB ndani ya jack ya nguvu ya Raspberry Pi. Piga ngumi na voila! Kila kitu ni nzuri kwenda na tutaanza mara moja.

Uunganisho kwenye Onyesho

Tunaweza kuwa na kebo ya HDMI iliyounganishwa na mfuatiliaji au Runinga. Tunaweza kupata Raspberry Pi bila kuiunganisha kwa mfuatiliaji ukitumia -SSH (Fikia laini ya amri ya Pi kutoka kwa kompyuta nyingine). Unaweza pia kutumia programu ya PUTTY kwa hiyo. Chaguo hili ni kwa watumiaji wa hali ya juu kwa hivyo hatutalifunika kwa undani hapa.

Nimesikia kutakuwa na uchumi, nimeamua kutoshiriki

Hatua ya 3: Programu ya Raspberry Pi katika Java

Programu ya Raspberry Pi katika Java
Programu ya Raspberry Pi katika Java

Nambari ya Java ya Raspberry Pi na Sensor ya BME280. Inapatikana katika hazina yetu ya Github.

Kabla ya kuendelea na nambari, hakikisha unasoma maagizo yaliyotolewa kwenye faili ya Readme na Sanidi Raspberry Pi yako kulingana nayo. Itachukua muda mfupi tu kufanya hivyo. Kituo cha kibinafsi cha hali ya hewa ni seti ya vyombo vya kupima hali ya hewa vinavyoendeshwa na mtu binafsi, kilabu, chama, au hata biashara. Vituo vya hali ya hewa vya kibinafsi vinaweza kuendeshwa tu kwa raha na elimu ya mmiliki, lakini waendeshaji wengi wa vituo vya hali ya hewa pia hushiriki data zao na wengine, iwe kwa kukusanya data na kusambaza kwa mikono, au kwa kutumia wavuti au redio ya amateur.

Nambari iko katika fomu rahisi unayoweza kufikiria na haupaswi kuwa na shida nayo lakini uliza ikiwa unayo. Hata ikiwa unajua vitu elfu, bado uliza mtu anayejua.

Unaweza kunakili nambari ya java inayofanya kazi ya sensa hii kutoka hapa pia.

// Imesambazwa na leseni ya hiari.// Itumie njia yoyote unayotaka, faida au bure, mradi inalingana na leseni za kazi zake zinazohusiana. // BME280 // Nambari hii imeundwa kufanya kazi na BME280_I2CS I2C Mini Module inayopatikana kutoka ControlEverything.com. //

kuagiza com.pi4j.io.i2c. I2CBus;

kuagiza com.pi4j.io.i2c. I2CDevice; kuagiza com.pi4j.io.i2c. I2CFactory; kuagiza java.io. IOException;

darasa la umma BME280

{public static void main (String args ) hutupa Isipokuwa {// Unda basi ya I2C I2CBus bus = I2CFactory.getInstance (I2CBus. BUS_1); // Pata kifaa cha I2C, anwani ya BME280 I2C ni 0x76 (108) I2CDevice kifaa = bus.getDevice (0x76); // Soma ka 24 za data kutoka kwa anwani 0x88 (136) byte b1 = byte mpya [24]; kifaa.soma (0x88, b1, 0, 24); // Badilisha data // coefficients ya data int dig_T1 = (b1 [0] & 0xFF) + ((b1 [1] & 0xFF) * 256); int dig_T2 = (b1 [2] & 0xFF) + ((b1 [3] & 0xFF) * 256); ikiwa (dig_T2> 32767) {dig_T2 - = 65536; } int dig_T3 = (b1 [4] & 0xFF) + ((b1 [5] & 0xFF) * 256); ikiwa (dig_T3> 32767) {dig_T3 - = 65536; } // coefficients ya shinikizo int dig_P1 = (b1 [6] & 0xFF) + ((b1 [7] & 0xFF) * 256); int dig_P2 = (b1 [8] & 0xFF) + ((b1 [9] & 0xFF) * 256); ikiwa (dig_P2> 32767) {dig_P2 - = 65536; } int dig_P3 = (b1 [10] & 0xFF) + ((b1 [11] & 0xFF) * 256); ikiwa (dig_P3> 32767) {dig_P3 - = 65536; } int dig_P4 = (b1 [12] & 0xFF) + ((b1 [13] & 0xFF) * 256); ikiwa (dig_P4> 32767) {dig_P4 - = 65536; } int dig_P5 = (b1 [14] & 0xFF) + ((b1 [15] & 0xFF) * 256); ikiwa (dig_P5> 32767) {dig_P5 - = 65536; } int dig_P6 = (b1 [16] & 0xFF) + ((b1 [17] & 0xFF) * 256); ikiwa (dig_P6> 32767) {dig_P6 - = 65536; } int dig_P7 = (b1 [18] & 0xFF) + ((b1 [19] & 0xFF) * 256); ikiwa (dig_P7> 32767) {dig_P7 - = 65536; } int dig_P8 = (b1 [20] & 0xFF) + ((b1 [21] & 0xFF) * 256); ikiwa (dig_P8> 32767) {dig_P8 - = 65536; } int dig_P9 = (b1 [22] & 0xFF) + ((b1 [23] & 0xFF) * 256); ikiwa (dig_P9> 32767) {dig_P9 - = 65536; } // Soma kaiti 1 ya data kutoka kwa anwani 0xA1 (161) int dig_H1 = ((byte) kifaa. Soma (0xA1) & 0xFF); // Soma ka 7 za data kutoka kwa kifaa 0xE1 (225) kifaa. Soma (0xE1, b1, 0, 7); // Kubadilisha data // coefficients ya unyevu int dig_H2 = (b1 [0] & 0xFF) + (b1 [1] * 256); ikiwa (dig_H2> 32767) {dig_H2 - = 65536; } int dig_H3 = b1 [2] & 0xFF; int dig_H4 = ((b1 [3] & 0xFF) * 16) + (b1 [4] & 0xF); ikiwa (dig_H4> 32767) {dig_H4 - = 65536; } int dig_H5 = ((b1 [4] & 0xFF) / 16) + ((b1 [5] & 0xFF) * 16); ikiwa (dig_H5> 32767) {dig_H5 - = 65536; } int dig_H6 = b1 [6] & 0xFF; ikiwa (dig_H6> 127) {dig_H6 - = 256; } // Chagua rejista ya unyevu kudhibiti // Unyevu juu ya kiwango cha sampuli = kifaa 1 andika (0xF2, (byte) 0x01); // Chagua rejista ya upimaji wa udhibiti // Hali ya kawaida, temp na shinikizo juu ya kiwango cha sampuli = kifaa 1 andika (0xF4, (byte) 0x27); // Chagua sajili ya usanidi // Simama_by wakati = kifaa ms 1000. andika (0xF5, (byte) 0xA0); // Soma ka 8 za data kutoka kwa anwani 0xF7 (247) // shinikizo msb1, msb shinikizo, shinikizo lsb, temp msb1, temp msb, temp lsb, unyevu lsb, unyevu msb byte data = new byte [8]; soma kifaa (0xF7, data, 0, 8); // Badilisha data ya shinikizo na joto kuwa 19-bits ndefu adc_p = (((ndefu) (data [0] & 0xFF) * 65536) + ((ndefu) (data [1] & 0xFF) * 256) + (ndefu) (data [2] & 0xF0)) / 16; muda mrefu adc_t = (((mrefu) (data [3] & 0xFF) * 65536) + ((ndefu) (data [4] & 0xFF) * 256) + (ndefu) (data [5] & 0xF0)) / 16; // Badilisha data ya unyevu kwa muda mrefu adc_h = ((ndefu) (data [6] & 0xFF) * 256 + (ndefu) (data [7] & 0xFF)); // Mahesabu ya kukabiliana na joto mara mbili var1 = ((((double) adc_t) / 16384.0 - ((double) dig_T1) / 1024.0) * ((double) dig_T2); var2 = mara mbili); mara mbili t_fine = (ndefu) (var1 + var2); mara mbili cTemp = (var1 + var2) / 5120.0; fTemp mara mbili = cTemp * 1.8 + 32; // Mahesabu ya kukabiliana na shinikizo var1 = ((mara mbili) t_fine / 2.0) - 64000.0; var2 = var1 * var1 * ((mara mbili) dig_P6) / 32768.0; var2 = var2 + var1 * ((mara mbili) dig_P5) * 2.0; var2 = (var2 / 4.0) + (((mara mbili) dig_P4) * 65536.0); var1 = (((mara mbili) dig_P3) * var1 * var1 / 524288.0 + ((mara mbili) dig_P2) * var1) / 524288.0; var1 = (1.0 + var1 / 32768.0) * ((mara mbili) dig_P1); mara mbili p = 1048576.0 - (mara mbili) adc_p; p = (p - (var2 / 4096.0)) * 6250.0 / var1; var1 = ((mara mbili) dig_P9) * p * p / 2147483648.0; var2 = p * ((mara mbili) dig_P8) / 32768.0; shinikizo mara mbili = (p + (var1 + var2 + ((mara mbili) dig_P7)) / 16.0) / 100; // Mahesabu ya kukabiliana na unyevu mara mbili var_H = ((((mara mbili) 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))); unyevu mara mbili = var_H * (1.0 - dig_H1 * var_H / 524288.0); ikiwa (unyevu> 100.0) {unyevu = 100.0; } kingine ikiwa (unyevu <0.0) {unyevu = 0.0; } // Takwimu za Pato kwenye Screen.out.printf ("Joto katika Celsius:%.2f C% n", cTemp); System.out.printf ("Joto katika Fahrenheit:%.2f F% n", fTemp); System.out.printf ("Shinikizo:%.2f hPa% n", shinikizo); System.out.printf ("Humidity Relative:%.2f %% RH% n", unyevu); }}

Hatua ya 4: Utekelezaji wa Kanuni

Utekelezaji wa Kanuni
Utekelezaji wa Kanuni

Sasa, pakua (au git vuta) nambari na uifungue kwenye Raspberry Pi.

Endesha amri za kukusanya na kupakia nambari kwenye terminal na uone matokeo kwenye Monitor. Baada ya muda mfupi, itaangalia vigezo vyote. Kuhakikisha kuwa una mpito mzuri wa nambari na matokeo ya utulivu (ish), unafikiria maoni zaidi ya kufanya marekebisho zaidi (Kila Mradi huanza na Hadithi).

Hatua ya 5: Utumiaji katika Ulimwengu wa Ujenzi

BME280 inafikia utendaji wa hali ya juu katika programu zote zinazohitaji unyevu na kipimo cha shinikizo. Programu hizi zinazojitokeza ni Uhamasishaji wa Muktadha, k.m. Kugundua Ngozi, Kugundua Mabadiliko ya Chumba, Ufuatiliaji wa Usawa / Ustawi, Onyo kuhusu Ukame au Joto la juu, Upimaji wa Kiasi na Mtiririko wa Hewa, Udhibiti wa Nyumbani, Udhibiti wa Joto, Uingizaji hewa, Kiyoyozi (HVAC), Mtandao wa Vitu (IoT), Uboreshaji wa GPS (kwa mfano Uboreshaji wa Muda-wa-Kwanza-Kurekebisha, Mahesabu ya Wafu, Kugundua Mteremko), Urambazaji wa ndani (Mabadiliko ya Kugundua Sakafu, Kugundua Elevator), Urambazaji wa nje, Burudani na Maombi ya Michezo, Utabiri wa Hali ya Hewa Na Dalili ya Wima ya Velocity (Inuka / Kuzama Kasi).

Hatua ya 6: Hitimisho

Kama unavyoona, mradi huu ni onyesho kubwa la vifaa na programu zina uwezo. Kwa muda kidogo, mtu anaweza kujenga mradi mzuri kama huo! Kwa kweli, huu ni mwanzo tu. Kutengeneza Stesheni ya hali ya hewa ya hali ya juu zaidi kama Vituo vya hali ya hewa vya kibinafsi vya Uwanja wa Ndege kunaweza kuhusisha sensorer zaidi kama Anemometer (kasi ya upepo), Transmissometer (kujulikana), Pyranometer (mionzi ya jua) n.k. Tuna mafunzo ya video kwenye Youtube inayo utendaji wa kimsingi wa Sensorer ya I²C na Rasp Pi. Inashangaza sana kuona matokeo na kufanya kazi kwa mawasiliano ya I²C. Iangalie pia. Kuwa na ujenzi wa kufurahisha na ujifunze! Tafadhali tujulishe maoni yako juu ya hii inayoweza kufundishwa. Tunapenda kufanya maboresho ikiwa ni lazima.

Ilipendekeza: