Мазмұны:

JAWS: Тек басқа метеостанция: 6 қадам
JAWS: Тек басқа метеостанция: 6 қадам

Бейне: JAWS: Тек басқа метеостанция: 6 қадам

Бейне: JAWS: Тек басқа метеостанция: 6 қадам
Бейне: Ягуар - свирепый хищник Америки! Убийца, способный запросто прокусить череп! 2024, Қараша
Anonim
JAWS: Біздің заттарды дайындау
JAWS: Біздің заттарды дайындау
JAWS: Біздің заттарды дайындау
JAWS: Біздің заттарды дайындау
JAWS: Біздің заттарды дайындау
JAWS: Біздің заттарды дайындау

Мұндай JAWS жасау өте қарапайым.

Сіз сенсорларды аласыз, оларды тақтаға лақтырасыз және сенсорлармен бірге келетін кітапханаларды қолдана бастайсыз.

Бағдарламаны орнатудан бастайық.

Мен голланд тілінде сөйлейтіндіктен (ана тілінде сөйлейтін адам) мен қолданатын барлық деректер мен көптеген айнымалылар голланд тілінде. Енді сізде басқа тілді үйренуге мүмкіндік бар …

JAWS -тен не алғымыз келеді?

Оңай: біз нақты уақытты, күнді, эфемеридтерді (күннің батуы, батуы, күннің ұзақтығы мен астрономиялық түс) көрсететін экранды көргіміз келеді.

Оның жанында ішкі және сыртқы температураны, салыстырмалы ылғалдылық пен шық нүктесін және ауа қысымын көру жақсы болар еді.

Жеңілдету үшін мен температура үшін центрибтерді, қысым үшін hPa (= mBar) қолданамын. Сондықтан ешкім Фаренгейт немесе фунт үшін бір шаршы фунт үшін есептемейді …

Қазіргі уақытта бұл деректер ғана қол жетімді…

Болашақта мен ауа жылдамдығын, желдің бағыты мен жауын -шашын мөлшерін қосамын.

Менің ойымша, менде ауа райы сырты болады және барлық деректер ішкі блокқа 2,4 ГГц жиілікте жіберіледі.

3 -қадам: JAWS: бағдарламалық қамтамасыз ету

JAWS: Бағдарламалық қамтамасыз ету
JAWS: Бағдарламалық қамтамасыз ету

Біздің бағдарламалық жасақтаманы алу үшін олардың көпшілігін бар кітапханалардан табуға болады.

JAWS -те мен мыналарды қолданамын:

  1. SPI.h: 4 сымды протоколға арналған Arduino түпнұсқа кітапханасы. Ол TFT қалқаны үшін қолданылады
  2. Adafruit_GFX.h және MCUfriend_kbv.h: екеуі де графика мен экран үшін қолданылады. Бұл TFT экранында мәтін жазуды, сызықтар мен өрістерді салуды жеңілдетеді.
  3. dht.h: біздің DHT үшін: бұл кітапхананы DHT11 (көк) және DHT22 үшін пайдалануға болады.
  4. Wire.h: сериялық байланысты жеңілдету үшін Arduino кітапханасы. Ол сағат пен SD картасы үшін қолданылады.
  5. SD.h: қайтадан SD картасынан жазу және оқу үшін Arduino түпнұсқасы.
  6. TimeLord.h: мен бұл уақытты сақтау үшін, күннің батуын немесе күннің шығуын кез келген географиялық позициядан есептеу үшін қолданамын. Ол сондай -ақ DST (жазғы немесе қысқы) сағатын орнатқан.

Сағаттан бастайық.

Сағатты оқу кезінде сізге сағат модулінің ішіндегі әр түрлі регистрлерден алынған айнымалылар қажет. Біз оларды сандар ғана емес, келесі жолдарды қолдана аламыз:

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

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

n

TimeLord көмегімен біз мұны менің орным үшін деректер ретінде аламыз: (Локерен, Бельгия)

TimeLord Lokeren; оны орнату Lokeren. Position (51.096, 3.99); бойлық пен ендік

Lokeren. TimeZone (+1*60); GMT +1 = +1 x 60 минут

Lokeren. DstRules (3, 4, 10, 4, 60); DST 3 -ші ай, 4 -ші аптадан 10 -шы айға дейін, 4 -ші апта, +60 минут

int jaar = жыл +2000;

байт sunRise = {0, 0, 12, ай күні, ай, жыл}; күн сайын 00 сағаттан бастап есептеуді бастаңыз

байт sunSet = {0, 0, 12, ай күні, ай, жыл}; жоғарыдағыдай

байт = {0, 0, 12, ай күні, ай, жыл}; жоғарыдағыдай

жүзу фазасы;

Осы жерден есептеулер жүргізіледі.

фаза = Lokeren. MoonPhase (маңызды);

Күн шығуы (күннің шығуы);

Lokeren. SunSet (күн батуы);

Lokeren. DST (күннің шығуы);

Lokeren. DST (күннің батуы);

int ZonOpUur = sunRise [tl_hour];

int ZonOpMin = sunRise [tl_minute];

int ZonOnUur = sunSet [tl_hour];

int ZonOnMin = sunSet [tl_minute];

Бұл TimeLord -та заттар қалай есептелетінінің мысалы. Бұл кітапхананың көмегімен сіз күннің батуы мен шығысының дәл уақыттарын аласыз.

Соңында мен барлық бағдарламаны осы нұсқаулықпен қосамын. Бұл өте тікелей.

4 -қадам: Қосымша бағдарламалық қамтамасыз ету…

Қосымша бағдарламалық қамтамасыз ету…
Қосымша бағдарламалық қамтамасыз ету…
Қосымша бағдарламалық қамтамасыз ету…
Қосымша бағдарламалық қамтамасыз ету…

Бағдарламалық қамтамасыз ету туралы толығырақ…

Бізде бағдарламалық қамтамасыз етуде үш үлкен бөлік бар.

1) Біз әр түрлі сенсорлардан бастапқы ақпаратты аламыз: біздің сағаттан, DHTs және BMP180. Бұл біздің кіріс.

2) Біз деректерді мағынасы бар нәрсеге (1 және 0) аударуымыз керек. Ол үшін біз кітапханалар мен айнымалыларды қолданамыз.

3) Біз өз деректерімізді оқып, сақтағымыз келеді. Бұл біздің шығысымыз. Жедел пайдалану үшін бізде LCD-TFT бар, кейінірек пайдалану үшін бізде SD картасында сақталған деректер бар.

Біздің циклда () бізде көптеген «GOTO» бар: біз әр түрлі кітапханаларға секіреміз. Біз деректерді сенсорлардың бірінен аламыз, деректерді аламыз және оларды (көбіне) өзгермелі деректер айнымалысында сақтаймыз. Біз айнымалы атауды x немесе y арқылы емес, «tempOutside» немесе «қысым» сияқты атаулармен немесе осындай нәрселермен ақылмен таңдаймыз. Оларды оқуға ыңғайлы ету үшін. Жарайды, бұл айнымалы мәндерді аздап ауырлатады және жадты көп жұмсайды.

Міне, айла бар: айнымалыларды экранда көрсететін болсақ, бұл оларды дұрыс орынға қою.

Мұнда пайдаланылатын екі кітапханада, Adafruit_GFX.h және MCUfriend_kbv.h түстерді, қаріптерді және сызықтар салу мүмкіндігін қолдануға арналған жақсы жұмыс жиынтығы бар. Біріншіден, мен осы кітапханалармен 12864 экранды қолдандым, кейінірек оны tft экранында өзгерттім. Мен тек қораптарды, тіктөртбұрыштар мен сызықтарды орналастырып, деректердің дұрыс жерде шыққанына көз жеткізуім керек еді. Ол үшін setCursor және tft. Write командаларын қолдануға болады. Оңай жасайды. Түстерді айнымалылар ретінде де қоюға болады, сол кітапханаларда оларды қалай таңдауға болатыны туралы көптеген мысалдар бар.

SD-картаға жазу үшін бізге қарапайым амалдар қажет.

Мысалы, біз өз деректерімізді сағаттан бөлек сағат, минут және секунд ретінде оқимыз. Температура - DHT.temperature және DHTT.temperature, ішкі немесе сыртқы бөлу.

Біз оларды SD картасына салғымыз келсе, біз жолды қолданамыз: біз әрбір циклды бос жол ретінде бастаймыз:

variablestring = «»; Содан кейін біз оны барлық деректермен толтыра аламыз:

variablestring = variablestring + сағат + «:» + минут + «:» + секунд. Бұл жолды 12:00:00 сияқты береді.

Біз оны TXT-файл ретінде жазатындықтан (Arduino.cc-те SD.h қараңыз), келесі айнымалылар үшін біз қойынды қосамыз, сондықтан оны Excel-ге импорттау оңайырақ.

Біз келеміз: variablestring = variablestring + «\ t» + DHT.temperature + «\ t» + DHTT. Temperature.

Және тағы басқа.

5 -қадам: Кейбір скриншоттар …

Кейбір скриншоттар…
Кейбір скриншоттар…
Кейбір скриншоттар…
Кейбір скриншоттар…
Кейбір скриншоттар…
Кейбір скриншоттар…

Біздің деректер жиынтығымызды «шамадан тыс жүктемейтінімізге» сенімді болу үшін мен деректерді 10 минут сайын бір рет жаздым. Бізге күніне 144 жазба беріледі, жаман емес деп ойлаймын.

Әрине, сіз бұл деректерді өңдеуді жалғастыра аласыз: сіз орташа мәндерді жасай аласыз, максимумдар мен минимумдарды іздей аласыз, өткен жылдармен салыстыра аласыз …

Мет -офистер әдетте температура үшін күн мен түннің орташа мәнін шығарады: күндізгі таңертеңгі 8 -де басталады және кешкі 8 -ге дейін.

Жел, қысым мен жауын -шашын үшін орташа көрсеткіштер түн ортасынан түн ортасына дейін алынады.

6 -қадам: Аяқталды ма?

Аяқталды ма?
Аяқталды ма?
Аяқталды ма?
Аяқталды ма?

Шынында да емес … Мен айтқанымдай, ақырында JAWS-тің қалған бөлігінде желдің жылдамдығы мен желдің сенсорын алғым келеді.

Мен жасаған шағын құрылыс биіктігі шамамен 4 м. Метеоролог желдің жылдамдығын 10 м биіктіктен алады. Мен үшін тым жоғары…

Сізге мұны оқу ұнады деп сенемін!

Adafruit-GFX мұнда түсіндіріледі:

MCUFRIEND_kbv.h мына жерден табуға болады:

BMP 120 туралы көбірек (BMP085 сияқты):

DHT22 туралы:

Ұсынылған: