Satura rādītājs:

Raspberry Pi barometra laika pulkstenis: 9 soļi (ar attēliem)
Raspberry Pi barometra laika pulkstenis: 9 soļi (ar attēliem)

Video: Raspberry Pi barometra laika pulkstenis: 9 soļi (ar attēliem)

Video: Raspberry Pi barometra laika pulkstenis: 9 soļi (ar attēliem)
Video: Моя работа наблюдать за лесом и здесь происходит что-то странное 2024, Novembris
Anonim
Raspberry Pi barometra laika pulkstenis
Raspberry Pi barometra laika pulkstenis

Šajā pamācībā es jums parādīšu, kā izveidot pamata termometra / barometra pulksteni, izmantojot Raspberry Pi 2 ar BMP180 I2C sensoru, kas tiek parādīts Adafruit 4 ciparu 7 segmenta I2C displejā. Pi izmanto arī DS3231 reālā laika I2C pulksteņa moduli, lai saglabātu laiku, kad Pi tiek restartēts.

Pulkstenis darbojas 4 posmos 5 sekundes. Vispirms tas parāda temperatūru Celsija grādos, pēc tam Fārenheitā, tad barometrisko spiedienu kPa *(ierobežoto ciparu skaita dēļ šis skaitlis iet pa kreisi) un, visbeidzot, parāda barometriskā spiediena izmaiņu tendenci no šī brīža līdz vidējam iepriekšējā stunda.

Šis pulkstenis atšķiras no vairuma ar to, ka tas izmanto MySQL datu bāzi Pi, lai katru minūti reģistrētu datus no BMP180. Tā kā pašreizējais barometriskais spiediens nav tik vērtīgs kā tā kustība uz augšu vai uz leju noteiktā laika periodā, tā izmanto šo datu bāzi, lai aprēķinātu vidējo stundas intervālu no 2 stundām līdz 1 stundai un salīdzinātu to ar pašreizējo spiedienu. Ievērojams barometriskā spiediena pieaugums parasti liecināja par laika apstākļu uzlabošanos, bet liels kritums varētu brīdināt par gaidāmo vētru.

Pulkstenis ir ievietots 3D drukātā ABS korpusā ar BMP180 ventilējamā vāciņā pulksteņa aizmugurē, lai novērstu Pi radītā siltuma ietekmi uz temperatūras rādījumiem. Es sniegšu Autodesk 123D Design shēmu, ja vēlaties izdrukāt savu.

Pulkstenis tiek darbināts ar standarta USB sienas kārpu, un tas kopā patērē aptuveni 450 mA.

Es pārāk bieži neiedziļināšos Pi un I2C pamata iestatījumos, jo tas ir aprakstīts daudzās citās pamācībās, uz kurām es sniegšu saites.

1. darbība: sagatavojiet Pi

Sagatavojiet Pi
Sagatavojiet Pi

Iestatiet savu Raspberry Pi - sīkāku informāciju vietnē Raspberrypi.org

  1. Lejupielādējiet un instalējiet izvēlēto Linux izplatīšanu SD kartē - es izmantoju Raspbian
  2. Pievienojiet pi un ielādējiet to
  3. Es izmantoju mikro WiFi adapteri, lai savienotu pi ar savu maršrutētāju, jo pulksteņa korpuss aizsedz Ethernet portu.
  4. Es izmantoju bezgalvaino režīmu, kur izveidojat savienojumu ar pi, izmantojot SSH, tāpēc viss, kas jums nepieciešams, ir pievienots elektrībai.
  5. Konfigurējiet I2C Pi - es sekoju šiem norādījumiem Adafruit vietnē.

2. solis: visu pieslēdziet vadam

Visu vadu
Visu vadu

Visi moduļi, kurus es izmantoju šajā projektā, ir izturīgi pret 5 V spriegumu un izmanto I2C, kas ir divu vadu protokols, ko izmanto IC, lai sazinātos savā starpā, tāpēc elektroinstalācija ir diezgan vienkārša. Savienojiet visu VCC ar 5 V, visu zemējumu kopā un visas SCA un SCL līnijas kopā saskaņā ar shēmu. Darbs padarīts.

3. darbība: pārbaudiet savu I2C

Pārbaudiet savu I2C
Pārbaudiet savu I2C

Daļa no I2C instalācijas ir palaist i2cdetect, kam vajadzētu izskatīties kā pievienotajam attēlam, ja viss ir pareizi savienots.

Tālāk ir norādītas atbilstošās adreses

  1. 0x70 = 7 segmentu displejs
  2. 0x77 = BMP180 termometra / barometra sensors
  3. 0x68 = DS3231 Reālā laika pulksteņa modulis
  4. 0x57 = DS3231 borta EEPROM trauksmes datu glabāšanai.

4. darbība: instalējiet MySQL un PhpMyAdmin

Instalējiet MySQL un PhpMyAdmin
Instalējiet MySQL un PhpMyAdmin

MySQL instalēšana ir diezgan vienkārša, ja sekojat apmācībai šeit

sudo apt-get install mysql-server

Es arī instalēju phpMyAdmin, kas ir vietne, kas darbojas Apache un kuru varat izmantot, lai izveidotu un pārvaldītu mySQL datu bāzes. Apmācība šeit

sudo apt-get instalēt phpmyadmin

Pēc instalēšanas es izveidoju datu bāzi ar nosaukumu BP180, izmantojot phpMyAdmin ar struktūru atbilstoši attēlam.

Es arī izmantoju python moduli ar nosaukumu mysqlDB, kuru varat instalēt, izmantojot

sudo apt-get install python-mysqldb

5. darbība: instalējiet Python moduļus

Lejupielādējiet un instalējiet tālāk norādītos python moduļus, kurus izmantosit, lai izveidotu savienojumu ar sensoriem.

  1. Adafruit_BMP085 modulis
  2. SDL_DS3231 modulis
  3. Adafruit 7 segmenta modulis

6. darbība: kods, lai reģistrētos datu bāzē

Zemāk redzamais koda fragments tiek izmantots, lai reģistrētu temperatūru un barometrisko spiedienu, un tas tiek izsaukts no cron skripta (Linux plānotie uzdevumi), kas darbojas ik pēc 5 minūtēm. Lai uzzinātu, kā izmantot crond, skatiet šo apmācību.

NB! Neuztraucieties izmest savas kodēšanas prasmes, es neesmu izstrādātājs, tāpēc jā, iespējams, ir miljons labāku, ātrāku, gludāku un tīrāku veidu, kā to izdarīt

Kodā jūs pamanīsit, ka temperatūra tiek samazināta par 7 grādiem, kas ir līdzvērtīgs Raspberry Pi radītajam siltumam, pat ja BMP180 ir uzstādīts uz korpusa ārpuses. Kad man sākotnēji tas bija korpusā, tas bija par 15 grādiem karstāks nekā apkārtējais. Šķiet, ka tas ir diezgan lineārs, bet man nav bijusi iespēja pārbaudīt galējības. Atsauksmes par jūsu pieredzi būtu pateicīgas.

7. solis: koda rādīšanas temperatūra

Kods uz displeja temp
Kods uz displeja temp
Kods uz displeja temp
Kods uz displeja temp
Kods uz displeja temp
Kods uz displeja temp
Kods uz displeja temp
Kods uz displeja temp

Šis kods tiek aicināts pārvietoties displejā saskaņā ar ievadu.

Atkal es neesmu izstrādātājs, tāpēc kods ir patiešām aptuvens, bet tas darbojas

8. solis: 3D drukāts korpuss

3D drukāts korpuss
3D drukāts korpuss
3D drukāts korpuss
3D drukāts korpuss
3D drukāts korpuss
3D drukāts korpuss
3D drukāts korpuss
3D drukāts korpuss

Nākamais ir korpusa dizains. Tas bija diezgan izaicinoši, jo forma ir pakļauta deformācijai, jo ārējā apvalka daļas ir tikai 2 mm biezas. Vispirms uzzīmēju Pi un visu detaļu maketus un pēc tam izveidoju korpusu ap to. Manā RapMan 3.2 (kas ir diezgan lēns printeris) drukāšana aizņēma apmēram 7 stundas 0,25 slāņa dziļumā.

Pievienotā shēma ir veidota Autodesk 123D Design, kas, manuprāt, ir fantastiska bezmaksas programmatūras daļa.

Ņemiet vērā, ka daži caurumi, piemēram, tie, kas nepieciešami Pi montāžai, nav iekļauti dizainā, jo labāk tos vēlāk urbt, ja drukāšana nedaudz deformējas. Nepieciešama stabila roka ar 3 mm urbi. Atzīmējiet uzgaļa dziļumu ar kādu maskēšanas lenti, lai nejauši neizietu taisni caur 7 stundu izdruku, kā es to darīju.

9. solis: lietas, kas jādara

Lietas ko darīt
Lietas ko darīt
  1. Reālā laika pulkstenis bija papildinājums pēc tam, kad korpuss tika izdrukāts piekto reizi, tāpēc tas pašlaik ir karsti pielīmēts pie korpusa sāniem, kas neizskatās labi, tāpēc es vēlētos vēlreiz noformēt dizainu un pievienot tam vietu.
  2. 7 segmentu displeja spilgtums pašlaik ir iestatīts uz vieglāko, kas nav optimāls spēcīgam apgaismojumam. Es vēlos korpusa augšpusē pievienot foto rezistoru un pielāgot 7 segmenta spilgtumu, ņemot vērā apkārtējās gaismas apstākļus.
  3. Ar pamatnes plaisāšanu ir dažas nelielas dizaina problēmas, kuras arī tiks novērstas.
  4. Jebkuras idejas ir laipni gaidītas.

Es ceru, ka jums patika šī pamācība un jūs atradāt to pietiekami iedvesmojošu, lai jūs turpinātu. Ideja ir nodrošināt platformu, kuru varat izmantot, lai pievienotu savas idejas. Izklaidējieties!

Ieteicams: