Агуулгын хүснэгт:

JAWS: Өөр нэг цаг уурын станц: 6 алхам
JAWS: Өөр нэг цаг уурын станц: 6 алхам

Видео: JAWS: Өөр нэг цаг уурын станц: 6 алхам

Видео: JAWS: Өөр нэг цаг уурын станц: 6 алхам
Видео: Bilguun M. vs. Amina E. - "Chihiro" | The Battles | The Voice of Mongolia 2022 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: Дахин Arduino эх хувилбар, SD картаас бичиж унших боломжтой.
  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); уртраг ба өргөрөг

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 (maan);

Наран мандах (нар мандах);

Lokeren. SunSet (нар жаргах);

Lokeren. DST (нар мандах);

Lokeren. DST (нар жаргах);

int ZonOpUur = нар мандах [tl_hour];

int ZonOpMin = нар мандах [tl_minute];

int ZonOnUur = sunSet [tl_hour];

int ZonOnMin = sunSet [tl_minute];

Энэ бол TimeLord дээр аливаа зүйлийг хэрхэн тооцдогийн жишээ юм. Энэхүү номын сангийн тусламжтайгаар та нар жаргах, мандах цагийг (маш хөөрхөн) олж авдаг.

Төгсгөлд нь би энэ зааварчилгаа бүхий програмыг бүхэлд нь оруулах болно. Энэ бол нэлээд шууд юм.

Алхам 4: Нэмэлт програм хангамж …

Бусад програм хангамж…
Бусад програм хангамж…
Бусад програм хангамж…
Бусад програм хангамж…

Програм хангамжийн талаар дэлгэрэнгүй …

Бид програм хангамжид гурван том хэсэгтэй.

1) Бид өөр өөр мэдрэгчүүдээс цаг, DHT, BMP180 -аас зарим түүхий мэдээллийг авдаг. Энэ бол бидний оруулсан оролт юм.

2) Бид өгөгдлийг утга учиртай зүйл рүү (1 ба 0) рүү хөрвүүлэх хэрэгтэй. Үүний тулд бид номын сан, хувьсагчаа ашигладаг.

3) Бид өгөгдлөө уншиж, хадгалахыг хүсч байна. Энэ бол бидний гаралт. Яаралтай ашиглахын тулд бидэнд LCD-TFT байдаг бөгөөд дараа нь ашиглахын тулд хадгалсан өгөгдлөө SD карт дээрээ хадгалдаг.

Бидний давталтад () бид маш олон "GOTO" -г олж авдаг: бид янз бүрийн номын сан руу ордог. Бид өгөгдлөө нэг мэдрэгчээс авдаг, өгөгдлийг олж аваад (ихэвчлэн) хөвөгч өгөгдлийн хувьсагчид хадгалдаг. Бид хувьсагч нэрээ x эсвэл y-ээр биш харин "tempOutside" эсвэл "pressure" гэх мэт нэрээр эсвэл ийм зүйлээр ухаалгаар сонгодог. Тэднийг илүү унших боломжтой болгохын тулд. За, энэ нь хувьсагч ашиглахад жаахан хүнд болж, санах ой их зарцуулдаг.

Энд нэг заль мэх гарч ирж байна: бидний хувьсагчдыг дэлгэц дээр харуулахдаа тэдгээрийг зөв байрлалд байрлуулах явдал юм.

Энд ашигласан хоёр номын сан болох 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 -ийн тухай:

Зөвлөмж болгож буй: