» електроника » Arduino »Часова метеорологична станция на Arduino

Гледайте метеорологичната станция на Arduino

Гледайте метеорологичната станция на Arduino

Добър ден, продължавам да правя Arduino в свободното си време и този път той написа инструкции за направата на малка метеорологична станция. Той ще действа като часовник с дата и ще показва температурите вътре и извън помещението. Като основен контролер ще използваме Arduino UNO, но друг борд с Atmega328p на борда ще направи. За показване използваме графичния екран WG12864B. Свързваме и два сензора за температура ds18b20. Едната на закрито, ние изваждаме втората отвън. Да започнем.

В процеса на производство домашно ще ни трябва:

- Arduino UNO (или който и да е друг съвместим Arduino съвет)
- Графичен екран WG12864B
- сензор за температура ds18b20, 2бр
- Захранване 6 - 12 V
- Резистори 4.7 Kom 0.25 W, 2 бр.
- Резистори 100 ома 0,25 W
- Отделение за батерии за 4 AAA „розови“ батерии
- Кутия от патрона на конзолата SEGA
- електрическа лента
- свързващи проводници
- платка
- Бутони
- канцеларски нож
- поялник
- спойка, колофон
- Двустранна лента

Стъпка 1 Подготовка на WG12864B3.
Тези, които не са работили с екрани преди, може да се изплашат от голям брой модификации, които изглежда са еднакви, на екраните. Ще обясня малко. Повечето екрани от този тип работят върху ks0107 / ks0108 чипове. Всички екрани могат да бъдат разделени на 4 вида:

Вариант A: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T

Вариант B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ дисплеи AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG12864YJ, Q12864Y-1, Q12, QY, Q12, QQ

Вариант В: Шенжен Дзинхуа показва Ко ООД JM12864

Вариант D: Wintek-Cascades WD-G1906G, Wintek-GEN / WD-G1906G / KS0108B, Wintek / WD-G1906G / S6B0108A, TECDIS / Y19061 / HD61202, Varitronix / MGLS19264 / HD61202

Те изглеждат почти еднакви. Но те имат различни щифтове за връзка. Избрах и ви препоръчвам, WG12864B3 V2.0, но ако екранът беше различен или просто нямате под ръка, можете лесно да го разберете, като използвате таблицата:


Кратки характеристики:


В интернет има много различни схеми за връзка и всичко изглежда работи. Работата е там, че има не само различни екрани, но и два начина за свързването им: сериен и паралелен. Когато използваме връзка със сериен порт, се нуждаем само от 3 изхода на микроконтролера. С паралелен минимум 13. Изборът в този случай е очевиден, Ардуино има малко заключения. За паралелно свързване схемата на свързване е следната:


За серийна връзка, която ще използваме, схемата е следната:

WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5V
4 (RS) - 10
5 (R / W) - 11
6 (Д) - 13
15 (PSB) - БНД
19 (BLA) - чрез 100 ома резистор - + 5V
20 (BLK) - БНД


За да регулирате контраста, на екрана трябва да има потенциометър. Има екрани без него, но това вече е рядкост:


Необходим е резистор от 100 ома, така че напрежение от 5 волта случайно да не изгори диодите с подсветка.


Стъпка 2 Съставяне на случая.
За случая вземете кутията от префикса на патрона Sega. Ако не намерите това поле под ръка, можете да използвате друг случай. Основното е, че екранът и Arduino се вписват в него.


Нарежете прозрачното фолио отгоре на кутията, така че да няма останали парчета:


След това с помощта на чиновнически нож изрежете прозорец с размери 37х69.


На обратната страна, по ръба на разреза, лепим двустранна лента, за предпочитане черна:


Извадете защитната хартия от лепящата лента и залепете нашия екран върху нея:


Отвън трябва да изглежда така:


Под екрана, също на двустранна лента, ние закрепваме Arduino, като правим предварителни изрези за USB порта и гнездото за захранване:


Изрезите за гнезда Arduino трябва да се правят от двете страни на кутията, така че да може свободно да се затваря:


Стъпка 3 Датчици за температура.
Ще използваме цифрови датчици за температура DS18B20. Използвайки тях получаваме голяма точност на измерване, грешката е не повече от 0,5 ° C, в широк температурен диапазон -55 ... + 125 ° C. Освен това цифровият сензор извършва всички изчисления сам, а Arduino просто получава готови показания. Когато свързвате този сензор, не забравяйте за издърпващия резистор, 4,7 kΩ, между DQ и VDD контактите. Възможни са и няколко опции за връзка. С външно захранване, според мен най-добрият вариант, ще го използваме:


Ако искате можете да използвате режим на паразитно захранване:


Или подобрен вариант на паразитна храна:


С всяко захранване сензорите са свързани паралелно:


Ще поставим сензора за измерване на температурата на малката дъска заедно с два бутона, които ще използваме за настройка на часа и датата на часовника:


Общият проводник от двата бутона е свързан към GND, проводникът от първия бутон е свързан към A0, от втория към A1.
Закрепете на двустранна лента до Arduino:


Сензорът, който трябва да бъде поставен извън стаята, е по-добре да изберете в корпус от метал, прах и влага:


Изчислете жицата с необходимата дължина, така че сензорът да може да бъде окачен извън прозореца, основното е, че тя трябва да бъде не повече от 5 метра, ако имате нужда от повече дължина, ще трябва да намалите стойността на издърпващия резистор.

Проводникът от шината за данни DQ и на двата сензора е свързан към щифт 5 на Arduino.
Vdd - +5 Arduino.
GND - GND Arduino.


Стъпка 4 Мощност.
За захранване можете да използвате захранване с напрежение от 6 до 12 волта. В края на захранващия проводник, спойка щепсела, подходящ за електрическия контакт Arduino:


Или можете да поставите отделение за батерия за четири батерии "AAA", "pinky" в кутията. И свържете положителния проводник от отделението към Vin Arduino, а минусът - към GND.

Стъпка 5 Подготовка на програмната среда.
Първо трябва да изтеглите и инсталирате Arduino IDE с официален сайт

И също така добавете към двете библиотеки, необходими за скицата. OneWire - необходим за комуникация със ds18b20 сензори:
onewire.rar [16.75 Kb] (изтегляния: 34)


U8glib - използва се за показване на информация на екрана:
u8glib.rar [906.95 Kb] (изтегляния: 46)


Изтеглете библиотеката. След това разопаковаме архивите и преместваме съдържанието на архивите в папката „библиотеки“, разположена в папката с инсталирания Arduino IDE. Можете също да добавяте библиотеки чрез Arduino IDE. За да направите това, без да разопаковате архивите, стартирайте Arduino IDE, изберете Sketch - Connect Library от менюто Sketch. В самия връх на падащия списък изберете елемента „Добавяне. Zip library“. Посочваме местоположението на изтеглените архиви. След всички стъпки трябва да рестартирате Arduino IDE.

Стъпка 6 Редактиране на скицата.
Температурните сензори работят по протокола One Wire и имат уникален адрес за всяко устройство - 64-битов код. Добавянето на команди за търсене на сензори към скицата не е препоръчително. Не е необходимо да зареждате Arduino сензори за хълцане всеки път.Ето защо, първо, като сглобите всичко, попълнете скицата в Arduino, намираща се в менюто File - Примери - Температура на Далас - OneWireSearch. След това стартирайте Tools - Port Monitor. Arduino трябва да намери нашите сензори, да напише адресите и показанията на температурата. Тези адреси трябва да бъдат записани или просто копирани някъде. Сега отворете скицата Ard_Tic_Tak_WG12864B_2_x_Term_Serial и потърсете линиите:

байт addr1 [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63}; // вътрешен адрес
байт addr2 [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // адрес на външния сензор


Заменяме адресите, съответстващи на местоположението на сензорите, с нашите адреси.
Нашите часовници не използват модула RTC (часовник в реално време), така че трябва да настроите часовника. За удобство, коментирайте линията (секунди ще се появят на екрана):

//u8g.setPrintPos (44, 50); u8g.print (сек); // Печатайте секунди, за да проверите правилността на курса


Задайте правилното време през монитора на порта. За целта отворете монитора на порта, изчакайте да приключат първоначалните измервания на температурата и въведете текущата дата и час във формата „ден, месец, година, часове, минути, секунди“. Без интервали разделете числата със запетаи или точки.

Ако часовникът бърза, променете стойността на по-голяма, препоръчвам да експериментирате със стъпки от 100 единици. Ако изоставате, намалете стойността в реда:

ако (micros () - prevmicros> 494000) {// промяната на друга за корекция беше 500 000


Емпирично определете броя, при който часовникът върви доста точно. За да определите точността на курса и се нуждаете от заключителни секунди. След точното калибриране на номера, секундите могат да бъдат коментирани и по този начин да бъдат премахнати от екрана.
Попълнете скицата.

ard_tic_tak_wg12864b_2_x_term_serial.rar [3.2 Kb] (изтегляния: 90)

Функционалност или красота?
Общо избиратели: 19
8
8.3
7.7

Добавете коментар

    • усмихвамусмивкиxaxaдобреdontknowYahooНеа
      шефдраскотинаглупакдаДа-даагресивентайна
      съжалявамтанцувамdance2dance3извинениепомощнапитки
      спиркаприятелидобърgoodgoodсвиркаприпадамезик
      димплясканеCrayдеклариратподигравателендон-t_mentionизтегляне
      топлинасърдитlaugh1MDAсрещаmoskingотрицателен
      not_iпуканкинаказвамчетаплашаплашитърсене
      присмехthank_youтоваto_clueumnikостърСъгласен
      лошоbeeeblack_eyeblum3изчервяванесамохвалствоскука
      цензурираншегаsecret2заплашвампобедаюsun_bespectacled
      ShokРеспектхахаprevedдобре дошълkrutoyya_za
      ya_dobryiпомощникne_huliganne_othodifludзабранаблизо
3 коментари
Авторът
За съжаление не знам аналозите на дисплея по-евтини.
И колкото по-бюджет е възможно да се замени този дисплей, те изглеждаха от 500 рубли.?
За тези denyushki можете да закупите готова, наистина метеорологична станция, с указание не само за температура, но и за налягане и влажност, и с посочване на посоката на промяна на измерените стойности! усмихвам
Добър вечер И колкото по-бюджет е възможно да се замени този дисплей, те изглеждаха от 500 рубли.?
Благодаря ви!

Съветваме ви да прочетете:

Предайте го за смартфона ...