Talaan ng mga Nilalaman:

JAWS: Lamang Isa pang Station ng Panahon: 6 Mga Hakbang
JAWS: Lamang Isa pang Station ng Panahon: 6 Mga Hakbang

Video: JAWS: Lamang Isa pang Station ng Panahon: 6 Mga Hakbang

Video: JAWS: Lamang Isa pang Station ng Panahon: 6 Mga Hakbang
Video: 10 PINAKA DELIKADONG INSEKTO SA BUONG MUNDO 2024, Nobyembre
Anonim
JAWS: Paghahanda ng Aming Bagay
JAWS: Paghahanda ng Aming Bagay
JAWS: Paghahanda ng Aming Bagay
JAWS: Paghahanda ng Aming Bagay
JAWS: Paghahanda ng Aming Bagay
JAWS: Paghahanda ng Aming Bagay

Ito ay medyo simple upang gumawa ng tulad ng isang JAWS.

Nakuha mo ang iyong mga sensor, itinatapon mo ang mga ito sa mga board, at sinimulan mong gamitin ang mga aklatan na kasama ng mga sensor.

Magsisimula tayo sa pag-setup ng programa.

Dahil nagsasalita ako ng Dutch (katutubong nagsasalita) lahat ng data at marami sa mga variable na ginagamit ko ay nasa Dutch. Kaya ngayon mayroon kang pagkakataon na matuto ng ibang wika …

Ano ang gusto natin sa JAWS?

Madali: nais naming manuod ng isang screen na nagpapakita sa amin ng aktwal na oras, petsa, ephemerides (sun up, sun down, haba ng araw at astronomical tanghali).

Sa tabi nito, magandang tingnan ang temperatura sa loob at labas, ang kamag-anak na halumigmig at hamog, at presyon ng hangin.

Upang gawing mas madali ang mga bagay, gumagamit ako ng mga centigrade para sa temperatura at hPa (= mBar) para sa presyon. Kaya walang sinuman ang dapat makalkula pabalik mula sa Fahrenheit o pounds bawat square furlongs…

Sa oras na ito, ang data lamang na ito ang magagamit…

Sa hinaharap, idaragdag ko ang bilis ng Air, direksyon ng hangin at pag-ulan.

Ang ideya ay magkakaroon ako ng isang labas ng kubo ng panahon at lahat ng data ay ipapadala sa higit sa 2.4GHz sa panloob na yunit.

Hakbang 3: JAWS: Software

JAWS: Software
JAWS: Software

Upang makapunta sa aming software, ang karamihan ay matatagpuan sa mga mayroon nang aklatan.

Sa JAWS ginagamit ko ang mga sumusunod:

  1. SPI.h: Ang orihinal na silid-aklatan mula sa Arduino para sa 4 na wire protocol. Ginagamit ito para sa TFT-Shield
  2. Adafruit_GFX.h at MCUfriend_kbv.h: parehong ginamit para sa graphics at screen. Ginagawa nitong napakadaling magsulat ng teksto, gumuhit ng mga linya at kahon sa TFT-screen.
  3. dht.h: para sa aming mga DHT: ang aklatang ito ay maaaring magamit para sa DHT11 (ang asul) at DHT22.
  4. Wire.h: ang Arduino library upang gawing madali ang serial komunikasyon. Ginagamit ito para sa orasan at sa SD card.
  5. SD.h: Muli isang orihinal na Arduino, upang magsulat at magbasa mula sa SD card.
  6. TimeLord.h: ang isang ito na ginagamit ko para sa pagpapanatili ng oras, pagkalkula ng paglubog ng araw o pagsikat ng araw mula sa anumang posisyon na pangheograpiya. Itinakda din nito ang orasan para sa DST (tag-init o taglamig).

Magsimula tayo sa orasan.

Kapag nagbabasa ng isang orasan, kailangan mo ng mga variable na makukuha mo mula sa iba't ibang mga pagrehistro sa loob ng module ng orasan. Kapag ginawa namin ang mga ito nang higit pa sa mga numero, maaari naming gamitin ang mga sumusunod na linya:

const int DS1307 = 0x68; const char * araw = {"Zo.", "Ma.", "Di.", "Wo.", "Do.", "Vr.", "Za."};

Const char * months = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11 "," 12 "};

n

Sa TimeLord, nakukuha namin ito bilang data, para sa aking lugar: (Lokeren, Belgium)

TimeLord Lokeren; pag-set up nito Lokeren. Position (51.096, 3.99); longitude at latitude

Lokeren. TimeZone (+ 1 * 60); GMT +1 = +1 x 60minutes

Lokeren. DstRules (3, 4, 10, 4, 60); DST mula ika-3 buwan, ika-4 na linggo hanggang ika-10 buwan, ika-4 na linggo, + 60minute

int jaar = taon +2000;

byte sunRise = {0, 0, 12, buwan ng buwan, buwan, taon}; simulang kalkulahin araw-araw mula 00 oras

byte sunSet = {0, 0, 12, buwan ng buwan, buwan, taon}; katulad ng nasa itaas

byte maan = {0, 0, 12, buwan ng buwan, buwan, taon}; katulad ng nasa itaas

float phase;

Mula dito, ang mga kalkulasyon ay ginawa.

phase = Lokeren. MoonPhase (maan);

Lokeren. SunRise (sunRise);

Lokeren. SunSet (sunSet);

Lokeren. DST (sunRise);

Lokeren. DST (sunSet);

int ZonOpUur = sunRise [tl_hour];

int ZonOpMin = sunRise [tl_minute];

int ZonOnUur = sunSet [tl_hour];

int ZonOnMin = sunSet [tl_minute];

Ito ang halimbawa ng kung paano kinakalkula ang mga bagay sa TimeLord. Sa library na ito, makakakuha ka ng (medyo) tumpak na oras ng paglubog ng araw at pagsikat ng araw.

Sa huli, ilalagay ko ang buong programa sa Instructable na ito. Medyo deretso ito.

Hakbang 4: Higit pang Software…

Marami pang Software…
Marami pang Software…
Marami pang Software…
Marami pang Software…

Dagdag pa tungkol sa software…

Mayroon kaming tatlong malalaking bahagi sa software.

1) Nakakatanggap kami ng ilang hilaw na data mula sa aming iba't ibang mga sensor: mula sa aming orasan, DHTs at BMP180. Iyon ang aming input.

2) Kailangan nating isalin ang data sa (1 at 0) sa isang bagay na may katuturan. Para dito, ginagamit namin ang aming mga aklatan at variable.

3) Nais naming basahin at iimbak ang aming data. Iyon ang aming output. Para sa agarang paggamit, mayroon kaming aming LCD-TFT, para magamit sa paglaon, mayroon kaming nai-save na data sa aming SD card.

Sa aming loop (), nakakakuha kami ng maraming "GOTO's": tumatalon kami sa iba't ibang mga aklatan. Nakukuha namin ang aming data mula sa isa sa mga sensor, nakuha ang data at iimbak ang mga ito sa (karamihan) isang lumulutang na variable ng data. Pinipili namin nang matalino ang aming mga variable na pangalan, hindi sa x o y ngunit sa mga pangalan tulad ng "tempOutside" o "pressure" o mga bagay na tulad nito. Upang mas mabasa ang mga ito. OK, ginagawa nitong medyo mabibigat sa paggamit ng mga variable at mas maraming pag-ubos ng memorya.

Narito ang trick: kapag ginagawa ang aming mga variable na makikita sa screen, inilalagay lamang ang mga ito sa tamang posisyon.

Ang dalawang silid aklatan na ginamit dito, ang Adafruit_GFX.h at MCUfriend_kbv.h ay mayroong magandang set ng trabaho upang magamit ang mga kulay, font at ang kakayahang gumuhit ng mga linya. Sa isang unang pagkakataon, gumamit ako ng isang 12864- screen sa mga aklatan na ito, kalaunan ay binago ko iyon sa tft-screen. Ang kailangan ko lang gawin, ay ang paglalagay ng mga kahon, parihaba at linya, at tiyakin na ang data ay lumabas sa tamang lugar. Para doon, maaari mong gamitin ang setCursor at tft. Sumulat bilang utos. Madaling gawin ito. Ang mga kulay ay maaaring itakda bilang mga variable din, maraming mga halimbawa sa mga aklatan na iyon kung paano pipiliin ang mga ito.

Para sa pagsusulat sa SD-card, kailangan din namin ng ilang simpleng mga trick.

Halimbawa, binasa namin ang aming data mula sa orasan bilang magkakahiwalay na oras, minuto at segundo. Ang temperatura ay DHT.temperature at DHTT.temperature, upang makilala ang pagitan ng panloob o panlabas.

Kapag nais naming ilagay ang mga ito sa SD card, gumagamit kami ng isang string: sinisimulan namin ang bawat loop bilang isang walang laman na string:

variablestring = ""; Pagkatapos ay mapupunan natin ito ng lahat ng aming data:

variablestring = variablestring + oras + ":" + minuto + ":" + segundo. Ibinibigay nito ang string tulad ng 00:00:00.

Dahil isinulat namin ito bilang isang TXT-file (tingnan ang SD.h sa Arduino.cc), para sa mga susunod na variable na idinagdag namin ang isang tab, kaya mas madaling i-import ito sa Excel.

Kaya nakarating kami sa: variablestring = variablestring + "\ t" + DHT.temperature + "\ t" + DHTT. Temperatura.

At iba pa.

Hakbang 5: Ilang Mga Screenshot …

Ang ilang mga Screenshot …
Ang ilang mga Screenshot …
Ang ilang mga Screenshot …
Ang ilang mga Screenshot …
Ang ilang mga Screenshot …
Ang ilang mga Screenshot …

Upang matiyak na hindi namin "labis na karga" ang aming mga database, nagsulat ako ng data nang isang beses lamang bawat 10 minuto. Pagbibigay sa amin ng 144 mga entry bawat araw. Hindi masama, sa palagay ko.

At syempre, maaari mong ipagpatuloy ang pagproseso ng data na iyon: maaari kang gumawa ng mga average, maaari kang maghanap ng maxima at minima, maaari mong ihambing sa mga nakaraang taon …

Ang mga nakakilala na tanggapan ay karaniwang gumagawa ng mga average ng araw at gabi, para sa mga temperatura: ang araw ay nagsisimula sa 8:00, at tatakbo hanggang 8:00.

Para sa hangin, presyon at ulan, ang mga average ay kukuha mula hatinggabi hanggang hatinggabi.

Hakbang 6: Tapos na?

Tapos na?
Tapos na?
Tapos na?
Tapos na?

Hindi talaga … Tulad ng sinabi ko na nais kong sa wakas makuha ang sensor ng bilis ng hangin at direksyon ng hangin na gumagana sa natitirang JAWS.

Ang maliit na konstruksyon na ginawa ko ay nakatayo mga 4m ang taas. Ang meteorologist ay nakakakuha ng bilis ng hangin mula 10m mataas. Medyo masyadong mataas para sa akin …

Inaasahan kong nasiyahan ka sa pagbabasa nito!

Ipinaliwanag dito ang Adafruit-GFX:

Makikita ang MCUFRIEND_kbv.h dito:

Dagdag pa tungkol sa BMP 120 (kapareho ng BMP085):

Tungkol sa DHT22:

Inirerekumendang: