![JAWS: Просто още една метеорологична станция: 6 стъпки JAWS: Просто още една метеорологична станция: 6 стъпки](https://i.howwhatproduce.com/images/003/image-7584-8-j.webp)
Съдържание:
2025 Автор: John Day | [email protected]. Последно модифициран: 2025-01-23 14:36
![JAWS: Подготовка на нашите неща JAWS: Подготовка на нашите неща](https://i.howwhatproduce.com/images/003/image-7584-16-j.webp)
![JAWS: Подготовка на нашите неща JAWS: Подготовка на нашите неща](https://i.howwhatproduce.com/images/003/image-7584-17-j.webp)
![JAWS: Подготовка на нашите неща JAWS: Подготовка на нашите неща](https://i.howwhatproduce.com/images/003/image-7584-18-j.webp)
Създаването на такъв JAWS е съвсем просто.
Получавате сензорите си, хвърляте ги заедно на дъски и започвате да използвате библиотеките, които се доставят със сензорите.
Нека започнем с настройката на програмата.
Тъй като говоря холандски (роден говорител), всички данни и голяма част от променливите, които използвам, са на холандски. Така че сега имате възможност да научите друг език …
Какво искаме от JAWS?
Лесно: искаме да гледаме екран, който да ни показва действителното време, дата, ефемериди (изгрев слънце, залез слънце, продължителност на деня и астрономически обед).
Освен това би било хубаво да се видят вътрешната и външната температура, относителната влажност и точка на оросяване и въздушното налягане.
За да улесня нещата, използвам стоградуси за температура и hPa (= mBar) за налягане. Така че никой не трябва да изчислява обратно от Фаренхайт или лири на квадратни разстояния …
Понастоящем са налични само тези данни …
В бъдеще ще добавя скорост на въздуха, посока на вятъра и валежи.
Идеята е, че ще имам външна метеорологична хижа и всички данни ще бъдат изпращани през 2.4GHz до вътрешното тяло.
Стъпка 3: JAWS: Софтуер
![JAWS: Софтуер JAWS: Софтуер](https://i.howwhatproduce.com/images/003/image-7584-19-j.webp)
За да стигнем до нашия софтуер, повечето могат да бъдат намерени със съществуващи библиотеки.
В JAWS използвам следните:
- SPI.h: Оригиналната библиотека от Arduino за 4 -жичен протокол. Тя се използва за TFT-щит
- Adafruit_GFX.h и MCUfriend_kbv.h: и двете се използват за графиката и екрана. Те правят много лесно писането на текст, изчертаване на линии и полета на TFT екрана.
- dht.h: за нашите DHT: тази библиотека може да се използва за DHT11 (синята) и DHT22.
- Wire.h: библиотеката Arduino за улесняване на серийната комуникация. Използва се за часовника и SD картата.
- SD.h: Отново оригинал на Arduino, за писане и четене от SD картата.
- TimeLord.h: този, който използвам за запазване на времето, изчисляване на залеза или изгрева на слънцето от всяка географска позиция. Той също така настройва часовника за лятно или зимно време.
Нека започнем с часовника.
Когато четете часовник, имате нужда от променливите, които получавате от различните регистри в модула на часовника. Когато ги правим повече от просто числа, можем да използваме следните редове:
const int DS1307 = 0x68; const char* дни = {"Zo.", "Ma.", "Di.", "Wo.", "Do.", "Vr.", "Za."};
const char* месеца = {"01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11 ", "12"};
н
С TimeLord получаваме това като данни за моето място: (Локерен, Белгия)
ТаймЛорд Локерен; настройка на 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, ден от месец, месец, година}; същото като по -горе
байт maan = {0, 0, 12, ден от месец, месец, година}; същото като по -горе
поплавъчна фаза;
Оттук се правят изчисленията.
фаза = Lokeren. MoonPhase (maan);
Lokeren. SunRise (sunRise);
Lokeren. SunSet (sunSet);
Lokeren. DST (sunRise);
Lokeren. DST (sunSet);
int ZonOpUur = sunRise [tl_hour];
int ZonOpMin = sunRise [tl_minute];
int ZonOnUur = sunSet [tl_hour];
int ZonOnMin = sunSet [tl_minute];
Това е примерът за това как нещата се изчисляват във TimeLord. С тази библиотека получавате (доста) точни времена на залез и изгрев.
В края ще сложа цялата програма с този Instructable. Това е доста директно.
Стъпка 4: Още софтуер …
![Още софтуер … Още софтуер …](https://i.howwhatproduce.com/images/003/image-7584-20-j.webp)
![Още софтуер … Още софтуер …](https://i.howwhatproduce.com/images/003/image-7584-21-j.webp)
Повече за софтуера …
Имаме три големи части в софтуера.
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.температура и DHTT.температура, за да се прави разлика между вътрешна или външна.
Когато искаме да ги поставим на SD картата, използваме низ: започваме всеки цикъл като празен низ:
variablestring = ""; След това можем да го попълним с всички наши данни:
variablestring = variablestring + hours + ":" + minutes + ":" + seconds. Това дава низ като 12:00:00.
Тъй като го пишем като TXT-файл (вижте SD.h на Arduino.cc), за следващите променливи добавяме раздел, така че е по-лесно да го импортирате в Excel.
Така стигаме до: variablestring = variablestring + "\ t" + DHT.temperature + "\ t" + DHTT. Temperature.
И така нататък.
Стъпка 5: Някои екранни снимки …
![Някои екранни снимки… Някои екранни снимки…](https://i.howwhatproduce.com/images/003/image-7584-22-j.webp)
![Някои екранни снимки… Някои екранни снимки…](https://i.howwhatproduce.com/images/003/image-7584-23-j.webp)
![Някои екранни снимки… Някои екранни снимки…](https://i.howwhatproduce.com/images/003/image-7584-24-j.webp)
За да сме сигурни, че не „претоварваме“нашите набори от данни, писах данни само веднъж на всеки 10 минути. Дава ни 144 записи на ден. Мисля, че не е лошо.
И разбира се, можете да продължите да обработвате тези данни: можете да правите средни стойности, можете да търсите максимуми и минимуми, можете да сравнявате с последните години …
Службите за срещи обикновено правят средни стойности за деня и нощта, за температури: денят започва в 8 сутринта и продължава до 20:00.
За вятъра, налягането и валежите средните стойности се вземат от полунощ до полунощ.
Стъпка 6: Готово?
![Готово? Готово?](https://i.howwhatproduce.com/images/003/image-7584-26-j.webp)
![Готово? Готово?](https://i.howwhatproduce.com/images/003/image-7584-27-j.webp)
Всъщност не … Както казах, бих искал най-накрая да накарам сензора за скорост и посока на вятъра да работи с останалата част от JAWS.
Малката конструкция, която направих, е с височина около 4 м. Метеоролозите получават скорост на вятъра от 10 м височина. Малко прекалено високо за мен …
Надявам се да ви е харесало да прочетете това!
Adafruit-GFX е обяснено тук:
MCUFRIEND_kbv.h можете да намерите тук:
Повече за BMP 120 (същото като BMP085):
За DHT22:
Препоръчано:
Просто още една ретро конзола за игри ATtiny85: 4 стъпки
![Просто още една ретро конзола за игри ATtiny85: 4 стъпки Просто още една ретро конзола за игри ATtiny85: 4 стъпки](https://i.howwhatproduce.com/images/002/image-5823-j.webp)
Просто още една ATtiny85 ретро конзола за игри: Малка настройка, подобна на ретро конзола, базирана около ATtiny85 x 0,96 OLED за игра на космически нашественици, тетрис и т.н
Метеорологична станция NaTaLia: Метеорологична станция със слънчева енергия Arduino, направена по правилния начин: 8 стъпки (със снимки)
![Метеорологична станция NaTaLia: Метеорологична станция със слънчева енергия Arduino, направена по правилния начин: 8 стъпки (със снимки) Метеорологична станция NaTaLia: Метеорологична станция със слънчева енергия Arduino, направена по правилния начин: 8 стъпки (със снимки)](https://i.howwhatproduce.com/images/005/image-12601-j.webp)
Метеорологична станция NaTaLia: Метеорологична станция Arduino със слънчева енергия, направена по правилния начин: След 1 година успешна работа на 2 различни места споделям плановете си за проекти на метеорологични станции със слънчева енергия и обяснявам как се е развила в система, която наистина може да оцелее дълго време периоди от слънчевата енергия. Ако следвате
Още една интелигентна метеорологична станция, но : 6 стъпки (със снимки)
![Още една интелигентна метеорологична станция, но : 6 стъпки (със снимки) Още една интелигентна метеорологична станция, но : 6 стъпки (със снимки)](https://i.howwhatproduce.com/images/001/image-2669-16-j.webp)
Още една интелигентна метеорологична станция, но …: Добре, знам, че има толкова много такива метеорологични станции, налични навсякъде, но отделете няколко минути, за да видите разликата … 2 дисплея с ниска мощност на електронна хартия … но 10 различни екрани! Акселерометър на базата на ESP32 и сензори за температура / влажност Wifi upd
Още една метеорологична станция Arduino (ESP-01 & BMP280 & DHT11 & OneWire): 4 стъпки
![Още една метеорологична станция Arduino (ESP-01 & BMP280 & DHT11 & OneWire): 4 стъпки Още една метеорологична станция Arduino (ESP-01 & BMP280 & DHT11 & OneWire): 4 стъпки](https://i.howwhatproduce.com/images/002/image-5479-42-j.webp)
Още една метеорологична станция Arduino (ESP-01 & BMP280 & DHT11 & OneWire): Тук можете да намерите една итерация за използване на OneWire с много малкото щифтове на ESP-01. Устройството, създадено в тази инструкция, се свързва с Wifi мрежата на вашия избор (трябва да имате идентификационни данни …) Събира сензорни данни от BMP280 и DHT11
Още една метеорологична станция (Y.A.W.S.): 18 стъпки (със снимки)
![Още една метеорологична станция (Y.A.W.S.): 18 стъпки (със снимки) Още една метеорологична станция (Y.A.W.S.): 18 стъпки (със снимки)](https://i.howwhatproduce.com/images/001/image-219-84-j.webp)
Още една метеорологична станция (Y.A.W.S.): Този проект е моят поглед към все по -популярната метеорологична станция. Моят е базиран на ESP8266, a.96 ” OLED дисплей и матрица от сензори за околната среда BME280. Метеорологичните станции изглеждат много популярен проект. Моят се различава от останалите