Съдържание:

Tweerstationneke A.k.a. Dutch WeatherStation: 4 стъпки
Tweerstationneke A.k.a. Dutch WeatherStation: 4 стъпки

Видео: Tweerstationneke A.k.a. Dutch WeatherStation: 4 стъпки

Видео: Tweerstationneke A.k.a. Dutch WeatherStation: 4 стъпки
Видео: Трактористы (комедия, реж. Иван Пырьев, 1939 г.) 2024, Ноември
Anonim
Tweerstationneke A.k.a. Холандска WeatherStation
Tweerstationneke A.k.a. Холандска WeatherStation

Баща ми винаги се интересува от последните новини и най -новата информация за времето. Така че това ме доведе до перфектния подарък за рожден ден, когато навърши 76 години: Малка метеорологична станция за постоянно, без глупости, тя просто седи тихо в ъгъла през целия ден и дава обобщение на последните прогнози.

Той е проектиран около два холандски уебсайта. Вероятно можете да видите това в смешното местно заглавие на тази тема! Един дава местната прогноза за град на всеки 10 минути във формат json. Другият дава прогноза за дъжда за следващите два часа в обикновен текстов формат, който винаги е удобен за узнаване. Сигурен съм, че ако не живеете в Холандия, можете лесно да адаптирате тази тема към всяка друга услуга.

Консумативи

  • Платка ESP8266; предлагаме да използвате Wemos D1 mini
  • 1,8 инчов TFT екран с 128*160 точки; 16 битов цвят
  • Няколко кабела
  • Програмата такава, каквато е или за начало да създадете своя собствена
  • Хубава кутия, която да събере всичко. Използвайте стандартен или отпечатайте свой собствен с приложен дизайн

Стъпка 1: Направете прототипа

Направете прототип
Направете прототип

Свързващ екран и контролер

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

TFT ЕКРАН ------------------ WEMOS

LED ------------------------------- D8 SCK ---------------- --------------- D5SDA ------------------------------- D7A0- -------------------------------- D3RESET ----------------- ----------- D2CS ---------------------------------- D4GND --- ---------------------------- GNDVCC --------------------- ---------- 3V3

Като алтернатива можете да поставите светодиода на 3v3 вместо на щифт D8. Използвах щифт D8, за да заспим устройството около 23:00 през нощта и да се събудя отново около 07:00 часа. В сила това ще бъде първият момент, в който чете бюлетина за времето след това време, тъй като чете заглавката, за да провери часа. В това устройство няма часовник в реално време.

Ако всичко това работи, включете вашия USB кабел към Wemos и заредете софтуера. Ако всичко работи, можете да започнете да изграждате кутията.

Стъпка 2: Проектиране на програмата

Дизайн на програмата
Дизайн на програмата

Моите идеи за това метеорологично устройство къде

  • Лесно се адаптира към друга wifi среда
  • Показване на прогнозата за времето и прогнозата за дъжд
  • Без бутони
  • Без звук, просто qui, без мъх

Имайки това предвид, създадох програма, която започва с кода на WifiManager, когато не може да открие известна Wifi мрежа. Той създава своя собствена мрежа и показва името на дисплея. Това ви дава възможност да зададете параметрите на Wifi към собствената си домашна мрежа.

След тази настройка показва последователно прогнозата за времето и валежите от дъжд на всеки 20 секунди. Ако по някаква причина не е възможно да се прочете следващата прогноза, в дясната страна на дисплея ще се покаже малък номер на грешка; и ще се покаже предишното изображение. При следващото изпълнение се прави нов опит за извличане на информацията.

Информацията за времето се получава от сайта в съобщение в стил json. Информацията в него се преобразува и записва в глобални променливи. По този начин можем да отделим извличането на информацията от показването й. Няма причина да извличате времето по -бързо веднъж на 10 минути.

Получаването на валежи от дъжд е още по -лесно. Той се сервира в обикновен текстов формат, като очакваното количество дъжд като стойност 0..255; вертикална лента; време на всеки ред. Това на всеки 5 минути през следващите 2 часа. Дъждовната стойност се доставя по интелигентен начин, където малките стойности дават повече място да се покаже разликата като по -големи стойности. Използваната формула е следната:

mmhour = кръгъл (pow (10, (rainvalue - 109) / 32) * 10) / 10;

Обърнете внимание, че „умножено по 10, разделено на 10“е трик, за да се гарантира, че имаме 1 десетичен знак зад точката. В зависимост от очакваното максимално количество дъжд през следващите 2 часа, за графиката се използват 3 скали;

  1. Очаква се максимум 5 мм/час
  2. Очаква се максимум 20 мм/час
  3. Макс е взет от най -високата стойност в прогнозата

Тук, в Холандия, рекордно високата ни стойност е около 80 мм/час; така че тази скала ще се справи перфектно. За други страни може да е разумно да се промени това.

Стъпка 3: Програмен код

Програмен код
Програмен код

Настройки на редактора

Софтуерът за това метеорологично устройство е създаден в средата за програмиране Arduino. Ще го намерите прикачен тук за ваше удобство. Използвайте го както е; или го променете според вашите нужди. Целият текст, който може да се покаже на TFT екрана, се ОПРЕДЕЛЯ отгоре на програмата; което означава, че можете лесно да го промените на свой език, ако искате. Използвах Wemos D1 mini, но подобни платки също ще работят.

В средата Arduino използвах следните настройки;

  • Дъска: LOLIN (WEMOS) D1 RA & Mini
  • Скорост на качване: 115200
  • Честота на процесора: 80 MHz
  • Размер на светкавицата: 4M (без SPIFFS) V2 Lower Memory Disabled

Софтуерните таймери се използват, за да направят loop () по -лесен и по -четим. Показването на информацията е отделено от изтеглянето на информацията. По този начин можем да използваме други размери на екрана и т.н., без да се налага да променяме цялата програма.

Използвайте.ino файла и го заредете в редактора на arduino. Настройте дъската си в редактора. Прикачете заглавния файл, който гарантира, че необходимите масиви PROGMEM в C стил са включени в програмата.

SD карта

Имайте предвид, че повечето от наличните 1,8 -инчови дисплеи имат слот за SD карта в задната част на екрана. Това е хубава функция, която ви помага да съхранявате големи изображения на картата. Повечето микроконтролери нямат твърде много памет на борда, така че това помага.

Въпреки че прекарвам много време в опит да накарам SD картата да работи с дисплея, не успях да имам работеща ситуация. Бих могъл да използвам дисплея; успешно извлече файл от SD картата, но след това вече не можех да достигна до TFT екрана. Промяната на библиотеките, промяната на реда на библиотеките и „събличането“на програмата до най -малкото тяло, за да се изключат други възможности, не ми помогнаха.

За да добавя към моето разочарование; в интернет има много примери за хора, които правят подобни неща с положителен резултат, хммм. Възможно ли е да има хардуерен проблем на моя TFT екран? Или нещо, за което не се сетих? Всякакви предложения са добре дошли за следващ опит. В края, след като прекарахте няколко вечери върху него; Реших да напусна този път. Тъй като снимките са само 50x50 пиксела (което води до 5000 байта всяка при 16 битов цвят), ESP може лесно да съхранява това в PROGMEM. Това е трикът, който използвах.

Този избор доведе до още едно предизвикателство. Как да преведа BMP картината, която имах, в четим формат. След известно търсене открих сайта от Хенинг Карлсен, който реши този пъзел по -рано. Той създаде програма, която преобразува файлове тип-p.webp

Стъпка 4: Създайте кутията

Създайте кутията
Създайте кутията
Създайте кутията
Създайте кутията
Създайте кутията
Създайте кутията

Това не е първата кутия, от която се нуждаех. Много стандартни кутии се предлагат от доставчици. С помощта на малък трион, нож, бормашина и т.н. е лесно да се създаде дупка за дисплея в кутията. Но така и не успях да направя точен хубав правоъгълник. Вероятно няма достатъчно умения и/или търпение;-)

Решението: Имах късмет. Имам колеж, който е като супермен, ако трябва да се занимавам с технически неща. Това включва и 3D дизайн и печат. Затова той реши да предложи много от свободното си време, за да измери TFT дисплея и микроконтролера и да създаде кутия около него. Всичко пасва добре, погледнете снимките. Той дори съдържа приставки за дисплея, отвор за USB конектора и място за фиксиране на микроконтролера.

Благодаря Arjan за тази супер свършена работа !!! Още по -добре, той беше толкова любезен, за да даде достъп на всички до работата си, така че ако изтеглите файловете му от връзката и го използвате за свой собствен 3D принтер, можете да създадете същото поле със съдържание.

Препоръчано: