Სარჩევი:

JAWS: უბრალოდ კიდევ ერთი ამინდის სადგური: 6 ნაბიჯი
JAWS: უბრალოდ კიდევ ერთი ამინდის სადგური: 6 ნაბიჯი

ვიდეო: JAWS: უბრალოდ კიდევ ერთი ამინდის სადგური: 6 ნაბიჯი

ვიდეო: JAWS: უბრალოდ კიდევ ერთი ამინდის სადგური: 6 ნაბიჯი
ვიდეო: ეკჰარტ ტოლე - "აწმყოს ძალა" - აუდიო წიგნი - Audible Read Along 2024, ნოემბერი
Anonim
JAWS: ჩვენი ნივთების მომზადება
JAWS: ჩვენი ნივთების მომზადება
JAWS: ჩვენი ნივთების მომზადება
JAWS: ჩვენი ნივთების მომზადება
JAWS: ჩვენი ნივთების მომზადება
JAWS: ჩვენი ნივთების მომზადება

საკმაოდ ადვილია ასეთი JAWS- ის გაკეთება.

თქვენ იღებთ თქვენს სენსორებს, აგდებთ მათ დაფებზე და იწყებთ ბიბლიოთეკების გამოყენებას, რომლებიც მოყვება სენსორებს.

დავიწყოთ პროგრამის დაყენებით.

ვინაიდან მე ვსაუბრობ ჰოლანდიურად (მშობლიურ ენაზე) ყველა მონაცემი და ბევრი ცვლადი, რომელსაც ვიყენებ ჰოლანდიურ ენაზეა. ახლა თქვენ გაქვთ შესაძლებლობა ისწავლოთ სხვა ენა…

რა გვინდა JAWS– სგან?

ადვილია: ჩვენ გვინდა ვუყუროთ ეკრანს, რომელიც გვაჩვენებს რეალურ დროს, თარიღს, ეფემერიდებს (მზე ამოდის, მზე ჩადის, დღის ხანგრძლივობა და ასტრონომიული შუადღე).

ამის შემდეგ, სასიამოვნო იქნებოდა შიდა და გარე ტემპერატურის დანახვა, ფარდობითი ტენიანობა და dewpoint და ჰაერის წნევა.

საქმის გასაადვილებლად, ვიყენებ სანტიგრამებს ტემპერატურისთვის და hPa (= mBar) წნევისთვის. ასე რომ, არავის მოუწევს გამოთვალოს ფარენჰაიტიდან ან ფუნტი კვადრატულ ბორკილზე…

ამ დროისთვის მხოლოდ ეს მონაცემები არის ხელმისაწვდომი…

მომავალში დავამატებ ჰაერის სიჩქარეს, ქარის მიმართულებას და ნალექებს.

იდეა იმაში მდგომარეობს, რომ მე მექნება გარე ქოხი და ყველა მონაცემი გადაგზავნილი იქნება შიდა განყოფილებაში 2.4 გჰც -ზე მეტი.

ნაბიჯი 3: JAWS: პროგრამული უზრუნველყოფა

JAWS: პროგრამული უზრუნველყოფა
JAWS: პროგრამული უზრუნველყოფა

ჩვენს პროგრამულ უზრუნველყოფასთან მისასვლელად, უმეტესობა შეგიძლიათ იხილოთ არსებულ ბიბლიოთეკებში.

JAWS– ში ვიყენებ შემდეგს:

  1. SPI.h: ორიგინალური ბიბლიოთეკა Arduino– დან 4 მავთულის პროტოკოლისთვის. ის გამოიყენება 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* თვე = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11 "," 12 "};

n

TimeLord– ით ჩვენ ვიღებთ ამას, როგორც მონაცემებს, ჩემი ადგილისთვის: (ლოკერენი, ბელგია)

თაიმლორდ ლოკერენი; ლოკერენის დაყენება. პოზიცია (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, თვის დღე, თვე, წელი}; იგივე რაც ზემოთ

byte maan = {0, 0, 12, თვის დღე, თვე, წელი}; იგივე რაც ზემოთ

float ფაზა;

აქედან ხდება გათვლები.

ფაზა = Lokeren. MoonPhase (maan);

ლოკერენი. მზის ამოსვლა (მზის ამოსვლა);

Lokeren. SunSet (sunSet);

Lokeren. DST (მზის ამოსვლა);

Lokeren. DST (sunSet);

int ZonOpUur = მზის ამოსვლა [tl_hour];

int ZonOpMin = მზის ამოსვლა [tl_minute];

int ZonOnUur = მზის ჩასვლა [tl_hour];

int ZonOnMin = მზის ჩასვლა [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 ფაილი (იხ. SD.h Arduino.cc), მომდევნო ცვლადებისთვის ჩვენ ვამატებთ ჩანართს, ამიტომ უფრო ადვილია მისი იმპორტი Excel- ში.

ასე რომ, ჩვენ მივედით: variablestring = variablestring + "\ t" + DHT.temperature + "\ t" + DHTT. ტემპერატურა.

Და ასე შემდეგ.

ნაბიჯი 5: რამდენიმე ეკრანის ანაბეჭდი…

რამდენიმე ეკრანის ანაბეჭდი…
რამდენიმე ეკრანის ანაბეჭდი…
რამოდენიმე ეკრანის ანაბეჭდი…
რამოდენიმე ეკრანის ანაბეჭდი…
რამოდენიმე ეკრანის ანაბეჭდი…
რამოდენიმე ეკრანის ანაბეჭდი…

დარწმუნებული ვარ, რომ ჩვენ არ "გადატვირთავთ" ჩვენი მონაცემთა ნაკრები, მე დავწერე მონაცემები მხოლოდ 10 წუთში ერთხელ. გვაძლევს 144 ჩანაწერს დღეში. ცუდი არ არის, ვფიქრობ.

და რა თქმა უნდა, შეგიძლიათ გააგრძელოთ ამ მონაცემების დამუშავება: შეგიძლიათ გააკეთოთ საშუალო, შეგიძლიათ მოძებნოთ მაქსიმუმი და მინიმუმი, შეგიძლიათ შეადაროთ გასულ წლებს…

მეტრო ოფისები ჩვეულებრივ აკეთებენ დღის და ღამის საშუალო მაჩვენებლებს ტემპერატურისთვის: დღისით იწყება დილის 8 საათიდან და გრძელდება საღამოს 8 საათამდე.

ქარის, წნევისა და ნალექების შემთხვევაში, საშუალო მაჩვენებლები მიიღება შუაღამიდან შუაღამემდე.

ნაბიჯი 6: დასრულდა?

დასრულდა?
დასრულდა?
დასრულდა?
დასრულდა?

ნამდვილად არა … როგორც ვთქვი, მსურს საბოლოოდ მივიღო ქარის სიჩქარის და ქარის მიმართულების სენსორი სხვა JAWS– თან ერთად.

პატარა კონსტრუქცია, რომელიც მე გავაკეთე, დაახლოებით 4 მეტრის სიმაღლეზე დგას. მეტეოროლოგები ქარის სიჩქარეს 10 მეტრიდან აღწევენ. ცოტა ზედმეტად მაღალია ჩემთვის …

იმედი მაქვს მოგეწონათ ამის წაკითხვა!

Adafruit-GFX განმარტებულია აქ:

MCUFRIEND_kbv.h შეგიძლიათ იხილოთ აქ:

მეტი BMP 120 (იგივე BMP085):

DHT22- ის შესახებ:

გირჩევთ: