Съдържание:
- Стъпка 1: Какво ще ви трябва:
- Стъпка 2: Инструменти:
- Стъпка 3: Направете колана:
- Стъпка 4: Съвет:
- Стъпка 5: Свържете всичко заедно:
- Стъпка 6: Как да получите ключ OpenWeatherMap
- Стъпка 7: Как да получите ключ OpenWeatherMap, абонирайте се
- Стъпка 8: Как да получите ключ OpenWeatherMap, Вземете API ключ
- Стъпка 9: Как да получите ключ OpenWeatherMap, Регистрация
- Стъпка 10: Как да получите ключ OpenWeatherMap, Създайте акаунт
- Стъпка 11: Настройте Arduino IDE:
- Стъпка 12: Изберете своя съвет:
- Стъпка 13: Изберете серийния порт:
- Стъпка 14: WeatherStation.ino
- Стъпка 15: Редактирайте WeatherStation.ino
- Стъпка 16: Качете кода на вашия ESP8266
- Стъпка 17: Как да видите уебсайта за метеорологични данни
- Стъпка 18: Поздравления, готови сте
Видео: Още една метеорологична станция (Y.A.W.S.): 18 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:54
Този проект е моят поглед към все по -популярната метеорологична станция. Моят е базиран на ESP8266,.96”OLED дисплей и матрица от сензори за околната среда BME280. Метеорологичните станции изглеждат много популярен проект. Моят се отличава от другите, като използва матрица от сензори BME280 вместо популярния сензор за температура и влажност DHT22. BME280 има сензор за температура, влажност и налягане на въздуха. Той също така използва интерфейса I2C. Използваният.96”OLED дисплей също е I2C. Може да се закупи като I2C или SPI или и двете. Отидох с версията I2C, за да опростя окабеляването. Както с OLED дисплея, така и с BME280, използвайки I2C и 3.3V, беше много лесно да се направи „Y“кабел за свързване на двете устройства към ESP8266. При разработването на този проект попаднах на множество проекти за метеорологични станции в Интернет, които използват ESP8266, същия OLED дисплей и BME280. Така че това не е оригинална идея, но е оригинална реализация.
BME280 предоставя вътрешни данни за околната среда. Външната информация за времето се получава от OpenWeatherMap.org. Ще трябва да се регистрирате с OpenWeatherMap.org, за да получите ключ за достъп до метеорологичните данни. Те предлагат безплатна услуга, която използвах. Вижте стъпката Как да получите ключ OpenWeatherMap за инструкции как да получите ключ.
NTP сървър за време се използва за получаване на часа на деня и деня от седмицата.
Данните за времето, времето и околната среда се показват на OLED дисплея. Всяка информация има собствен форматиран екран. Екраните се показват за пет секунди, преди да превключите на друг. Достъпът до OpenWeatherMap.org се осъществява на всеки петнадесет минути, за да се опресни информацията за времето. BME280 се чете на всеки петдесет и пет секунди. Използваният на всеки екран шрифт се настройва автоматично, за да показва цялата информация с възможно най -големия шрифт.
ESP8266 също е настроен да бъде уеб сървър. Цялата информация за времето може да бъде достъпна с помощта на браузър от вашия телефон, таблет на компютър. Един от екраните, който се показва, показва IP адреса на уеб сървъра.
ESP8266 се предлага в различни форми и размери. Избирам GEEKCREIT DoIt ESP12E Dev Kit V2. Този е напълно съвместим със „стандарта“на NodeMCU за самостоятелни модули ESP8266. Той има вграден 3.3V регулатор, CH340 като USB-към-сериен мост и верига за автоматично нулиране на NodeMCU. Можете да използвате всеки модул ESP8266-12, който имате. Имайте предвид, че може да се наложи да добавите 3.3V регулатор или други схеми, за да го програмирате. Също така създадох такъв, използвайки Witty Cloud ESP8266. Това ми позволи да опаковам всичко в 1,5 -инчов куб. Долната USB мостова платка се изключва след програмиране. Добавих щифт за правоъгълна заглавка към отвора 3.3V на платката Witty. Коланът е направен с две четири щифтови черупки, една с две щифтове и две с една щифтове.
На горната снимка платката, към която е включен модулът ESP8266, е платка, която разработих като пробивна платка за ESP8266 и ESP32. Той ще приеме съвместимите с NodeMCU платки ESP8266 с тесен корпус, платката The Witty Cloud ESP8266 или платка ESP32 от GEEKCREIT. Всички налични GPIO щифтове са разделени на заглавия за лесен достъп. Открих, че повечето дъски за развитие никога нямат достатъчно захранващи и заземителни щифтове. Всеки път, когато искате да прикачите нещо, имате нужда от поне заземяващ щифт и най -често щифт за захранване на устройството. Всеки ред GPIO щифтове е придружен от 3.3V захранващ щифт и заземен щифт. Използвам същото оформление, което използва First Robotics, мощност в средата. Харесва ми това оформление, защото ако включите нещо назад, не освобождавате вълшебния дим. Платката има няколко екстри, инфрачервен сензор, превключвател с бутон и трицветен светодиод. Джъмперите могат да се използват за свързване към някоя от тези функции. Ако се интересувате от една от тези ESPxx пробивни платки, свържете се с мен.
Стъпка 1: Какво ще ви трябва:
1 - BME280 I2C платка на сензора за температура, влажност и налягане
Купих моя на Ebay от Китай за около 1,25 долара с безплатна доставка. Предлага се също от Adafruit или Sparkfun
1 -.96”, 128x64, I2C OLED дисплей с помощта на SSD1306 драйвер
Купих моя на Ebay от Китай за около 4,00 долара. Моят е бял. Можете да намерите синьо и бяло с жълта област отгоре. Някои се продават като SPI и I2C. Може да се наложи да преместите някои резистори, за да изберете I2C операция. Важната част е, че той използва чип драйвер SD1306. Предлага се и от Adafruit.
1-NodeMCU ESP8266-12 с CH340
Можете да използвате всеки модул ESP8266-12, който искате. Предпочитам тези с CH340 USB-to-Serial мост. Преди няколко години имаше обрив от фалшиви FTDI и SI мостови чипове, така че вече не вярвам на нищо друго освен на CH340.
2 - 4 -пинови DuPont черупки с дебелина 0,14 инча (2,54 мм)
2 - 2 -пинов DuPont корпус с дебелина 0,14 инча (2,54 мм)
12-DuPont женски кримпване за 22-28 awg тел
Вземам моята в Ebay. Можете също да използвате Molex или друга марка, която предпочитате. Кримпвани щифтове или IDC Изборът е ваш. Внимавайте да купувате правилните щифтове за вашите черупки. Те не се смесват и съвпадат. Можете също така просто да запоите проводниците към дъските и да премахнете конекторите. Ако използвате нагънатите щифтове, ще ви е необходима кримпване. Не се опитвайте да го нагъвате с клещи. Не работи.
1 - 5V, 1A минимум стенен захранващ блок.
Те са евтини и се предлагат в Ebay. Вземете такъв с микро USB конектор или каквото и да е свързано с вашата платка ESP8266.
Ще ви трябват и осем парчета 22-28 awg проводник, за да свържете всичко заедно. Или можете просто да свържете всичко това към парче перф дъска. Зависи от теб.
Включих снимка на това, което е използвано за изграждането на метеорологичната станция с помощта на Witty Cloud ESP8266. Една снимка детайлизира къде да добавите щифт на правоъгълна заглавка към пикап 3.3V. Една от двете щифтови черупки се заменя с две една щифтови черупки. Заземяващи и 3.3V проводници са напъхани в корпусите с един щифт.
Следвайте тази връзка, за да получите файловете с изходния код от хранилището на GitHub; ESP8266-Метеорологична станция. Папката zip или клонираната папка ще има папка WeatherStation, която съдържа WeatherStation.ino и BME280.h. Това са файловете с изходния код. Има и няколко pdf файла. PDF файловете имат почти същата информация като тази с инструкции.
Стъпка 2: Инструменти:
След като опитах много марки кримпери, установих, че японският инженер PA-21 или PA-09 работи най-добре за мъжки и женски кримпреси DuPont. Предлага се в Ebay или Amazon. И двете ще работят за щифтовете на DuPont. PA-09 също ще изпълнява щифтовете за JST конекторите, които обикновено се използват при LiPo батерии. Ето линк към видеоклип за това как да използвате машинните кримпери с пресовки DuPont; Как да използвате кримпване PA-21
Instructables наскоро имаше страхотен урок за използване на кримпери Weierli Tools SN-28B с щифтове и черупки DuPont. Можете да го видите тук; Направете добър Dupont Pin-Crimp всеки път!
Стъпка 3: Направете колана:
Кабелът за окабеляване е ключът към този проект. Това е основен четирижилен „Y“кабел. По -горе е снимка на колана, който направих. OLED дисплеят и матрицата от сензори BME280 имат един и същ извод. Това означава, че двата четирите щифта са идентични след поставянето на нагънатите проводници. Направих сбруята си с двойно нагънатите проводници, които влизат в двете две щифтови черупки, които се прикрепят към платката ESP8266. Вместо това бихте могли да изберете да натъпчете двойно нагънатите проводници в една от четирите щифтови черупки, правейки го като връзка с маргаритка. И двете ще свършат работа.
- Изрежете всичките си проводници по дължина. Обичам да използвам различни цветове за всеки проводник; червено за 3.3V, черно за земя, жълто за SCL и зелено за SDA.
- Отстранете единия край на всеки проводник на около 0,1 инча.
- Завийте нишките заедно и добавете женска кримпване.
- След като всички проводници имат кримпване в единия край, отстранете всички проводници на около 0,2 инча.
- Завийте заедно нишките от два проводника със същия цвят.
- След като се усуче, отрежете на около 0,1 инча и добавете женска кримпване.
- Когато всички двойки жици са нагънати, е време да вмъкнете нагънатите краища в черупките.
- Двата четирите щифта са пълнени отляво надясно с червено, черно, жълто, зелено или 3.3V, Gnd, SCL, SDA.
- Една от двете щифтови черупки получава червените и черните проводници.
- Другите два щифта получават жълтите и зелените проводници.
Стъпка 4: Съвет:
Открих, че когато използвам 28 awg тел с кримпващите щифтове, те са склонни да падат. Това, което правя, за да предотвратя това, е да оголя края на проводника два пъти по -дълго от нормалното. Завийте откритите проводници заедно. След това сгънете усуканата тел, за да удвоите дебелината. Сега, когато го свивам, жицата е достатъчно дебела, за да се държи здраво.
Стъпка 5: Свържете всичко заедно:
- Включете четирите щифта в OLED дисплея и платките BME280.
- Подравнете червения проводник с щифтовете Vcc и 3V3.
- Включете два пинов червен/черен корпус към чифт 3V3 (3.3V) и GND щифтове на платката ESP8266. Има три места на дъската, където 3V3 и GND щифтове са съседни. Избягвайте щифтовете Vin (5V) и GND, тъй като те ще освободят вълшебния дим от вашите OLED и BME280 дъски. Уверете се, че червеният проводник е свързан към щифта 3V3.
- Включете жълто -зелената обвивка с два пина към D1 и D2 на платката ESP8266. Жълтият проводник (SCL) трябва да е на D1.
Проверете отново връзките си. Ако всичко изглежда добре, тогава сте готови да включите платката ESP8266.
Стъпка 6: Как да получите ключ OpenWeatherMap
Ще ви е необходим API ключ за достъп до уебсайта на OpenWeatherMap.org, за да получите актуална информация за времето. Следващите няколко стъпки подробно описват как да се регистрирате с OpenWeatherMap.org и да получите API ключ.
Следвайте тази връзка към OpenWeatherMap.org.
Кликнете върху API в средата на горната част на уеб страницата.
Стъпка 7: Как да получите ключ OpenWeatherMap, абонирайте се
От лявата страна, под Текущи метеорологични данни, щракнете върху бутона Абониране.
Стъпка 8: Как да получите ключ OpenWeatherMap, Вземете API ключ
Щракнете върху Get APIkey and Start в колоната Free.
Стъпка 9: Как да получите ключ OpenWeatherMap, Регистрация
Кликнете върху бутона Регистрация под Как да получите API ключ (APPID).
Стъпка 10: Как да получите ключ OpenWeatherMap, Създайте акаунт
Попълнете всички полета. Когато приключите, поставете отметка в квадратчето Приемам Общите условия и Декларацията за поверителност. След това кликнете върху бутона Създаване на акаунт.
Проверете имейла си за съобщение от OpenWeatherMap.org. Имейлът ще съдържа вашия API ключ. Ще трябва да копирате API ключа в изходния код на метеорологичната станция, за да получите текущото време.
Безплатната услуга OpenWeatherMap.org има някои ограничения. Най -важното е, че нямате достъп до него по -често от веднъж на всеки десет минути. Това не би трябвало да е проблем, защото времето не се променя толкова бързо. Другите ограничения са свързани с наличната информация. Всеки от платените абонаменти ще предоставя по -подробна информация за времето.
Стъпка 11: Настройте Arduino IDE:
Разработката на програмата беше извършена с помощта на Arduino IDE версия 1.8.0. Можете да изтеглите най -новата IDE на Arduino тук; Arduino IDE. Уебсайтът на Arduino има отлични указания как да инсталирате и използвате IDE. Поддръжката за ESP8266 може да бъде инсталирана в Arduino IDE, като следвате инструкциите, дадени от тази връзка: ESP8266 Addon към Arduino. На уеб страницата щракнете върху бутона „Клониране или изтегляне“и изберете „Изтегляне на цип“. Файлът ReadMe.md има указания как да добавите поддръжката на ESP8266 към IDE на Arduino. Това е обикновен текстов файл, който можете да отворите с всеки текстов редактор.
Платките ESP8266 се предлагат във всички размери, форми и използват различни USB-към-серийни мостови чипове. Предпочитам дъските, които използват мостов чип CH340. Преди няколко години FTDI, SI и други се умориха от евтини клонинги, претендиращи за тяхна роля. Производителите на чипове промениха своя код на водача, за да работят само със собствени оригинални части. Това доведе до много разочарования, тъй като хората откриха, че USB-към-серийните мостове вече не работят. Сега само се придържам към CH340 базирани USB-към-серийни мостове, за да избегна закупуването на платки, които могат или не могат да работят. Във всеки случай ще трябва да намерите и инсталирате правилния драйвер за чипа за мост, използван на вашата платка. Това е връзка към официалния сайт за драйверите на CH340; CH341SER_EXE.
ESP8266 няма специален I2C хардуер. Всички I2C драйвери за ESP8266 са базирани на битово разбиване. Една от най -добрите ESP8266 I2C библиотеки е библиотеката brzo_I2C. Той е написан на асемблер за ESP8266, за да стане възможно най -бърз. Библиотеката на OLED дисплея, която използвам, използва библиотеката brzo_I2C. Добавих код за достъп до сензорния масив BME280 с помощта на библиотеката brzo_I2C.
Можете да получите OLED библиотеката тук: ESP8288-OLED-SSD1306 Library.
Можете да получите библиотеката brzo_I2C тук: Библиотека Brzo_I2C.
И двете библиотеки ще трябва да бъдат инсталирани във вашата Arduino IDE. Уебсайтът на Arduino има указания как да инсталирате zip библиотеки в IDE тук: Как да инсталирате Zip библиотеки.
Съвет: След като инсталирате пакета с платки ESP8266 и библиотеките, затворете Arduino IDE и го отворете отново. Това ще гарантира, че платките и библиотеките на ESP8266 ще се показват в IDE.
Стъпка 12: Изберете своя съвет:
Отворете Arduino IDE. Ако все още не сте го направили, инсталирайте добавката ESP8266, библиотеката brzo_i2c и библиотеката с драйвери OLED.
Кликнете върху „Инструменти“в горната лента с менюта. Превъртете надолу падащото меню до мястото, където пише „Board:“. Плъзнете до падащото меню "Board Manager" и превъртете надолу до; „NodeMCU 1.0 (модул ESP-12E)“. Щракнете върху него, за да го изберете. Оставете всички останали настройки на стойността им по подразбиране.
Стъпка 13: Изберете серийния порт:
Кликнете върху „Инструменти“в горната лента с менюта. Превъртете надолу падащото меню до мястото, където пише "Порт". Изберете порта, който е подходящ за вашия компютър. Ако вашият порт не се показва, или вашата платка не е включена, или не сте заредили драйвера за вашия мост чип, или вашата платка не е била включена, когато сте отваряли Arduino IDE. Простото решение е да затворите Arduino IDE, да включите дъската си, да заредите липсващите драйвери и след това да отворите отново Arduino IDE.
Стъпка 14: WeatherStation.ino
Можете да използвате бутоните за изтегляне по -горе или да следвате тази връзка към GitHub, за да получите изходния код; ESP8266-Метеорологична станция.
Файловете WeatherStation.ino и BME280.h трябва да са в една и съща папка. Името на папката трябва да съвпада с името на.ino файла (без разширението.ino). Това е изискване на Arduino.
Стъпка 15: Редактирайте WeatherStation.ino
Кликнете върху „Файл“в горната лента с менюта. Кликнете върху „Отваряне“. В диалоговия прозорец File Open намерете папката WeatherStation и я изберете. Трябва да видите два раздела, един за WeatherStation и един за BME280.h. Ако нямате и двата раздела, тогава сте отворили грешната папка или не сте изтеглили двата файла или не сте ги запазили в правилната папка. Опитай пак.
Ще трябва да редактирате файла WeatherStation.ino, за да добавите SSID и парола за вашата WiFi мрежа. огледайте ред 62 за следното;
// поставете SSID и парола за вашата WiFi мрежа тук
const char* ssid = "yourssid"; const char* парола = "парола";
Заменете „yourssid“със SSID на вашата WiFi мрежа.
Заменете „паролата“с паролата за вашата WiFi мрежа.
Също така ще трябва да добавите своя OpenWeatherMap ключ и пощенския код, където живеете. Огледайте ред 66 за следното;
// поставете своя OpenWeatherMap.com ключ и пощенския код тук
const char* owmkey = "yourkey"; const char* owmzip = "yourzip, държава";
Заменете „yourkey“с ключа, получен от OpenWeatherMap.org.
Заменете „yourzip, country“с вашия пощенски код и държава. Вашият пощенски код трябва да бъде последван от запетая и вашата държава („10001, нас“).
След това трябва да зададете вашата часова зона и да активирате/деактивирате лятното часово време (DST). Огледайте ред 85 за следното;
// Върнатото сурово време е в секунди от 1970 г. За да се коригира за часовите зони се изважда
// броя секунди разлика за вашата часова зона. Отрицателната стойност ще // извади времето, положителната стойност ще добави време #дефинирайте TZ_EASTERN -18000 // брой секунди за пет часа #дефинирайте TZ_CENTRAL -14400 // брой секунди за четири часа #дефинирайте TZ_MOUTAIN -10800 // брой секунди в три часа #дефинирайте TZ_PACIFIC -7200 // брой секунди за два часа
// Регулирайте времето за вашата часова зона, като промените TZ_EASTERN на една от другите стойности.
#define TIMEZONE TZ_EASTERN // променете това във вашата часова зона
Има група изявления #define, които определят отместването на времето за различни часови зони. Ако вашата часова зона е там, заменете „TZ_EASTERN“в дефиницията „TIMEZONE“. Ако вашата часова зона не е посочена, тогава ще трябва да я създадете. NTP сървърът дава време като средно време по Гринуич. Трябва да добавите или извадите определен брой часове (в секунди), за да стигнете до вашето местно време. Просто копирайте един от операторите "#define TZ_XXX", след което променете името и броя на секундите. След това променете „TZ_EASTERN“на новата си часова зона.
Вие също трябва да решите да използвате лятното часово време или не. За да деактивирате DST, заменете „1“с „0“в следния ред;
#define DST 1 // зададено на 0, за да деактивирате лятното часово време
Когато е активирано, DST автоматично ще напредне или забави времето с един час, когато е подходящо.
Стъпка 16: Качете кода на вашия ESP8266
Щракнете върху кръглата икона със стрелка, която е точно под „Редактиране“в горната лента с менюта. Това ще компилира кода и ще го качи на дъската ви. Ако всичко се компилира и качи правилно, след няколко секунди OLED дисплеят трябва да светне и да се появи съобщението за свързване.
Стъпка 17: Как да видите уебсайта за метеорологични данни
Снимката по -горе показва уеб страницата, обслужвана от метеорологичната станция. Можете да получите достъп до него от вашия компютър, телефон или таблет. Просто отворете браузър и въведете IP адреса на метеорологичната станция като URL. IP адресът на метеорологичната станция се показва на един от екраните на метеорологичната станция. Щракнете върху Опресняване на страницата, за да актуализирате информацията.
Стъпка 18: Поздравления, готови сте
Това е. Сега трябва да имате работеща метеорологична станция. Следващата ви стъпка може да бъде да проектирате и направите корпус, в който да се помещава вашата метеорологична станция. Или може би искате да добавите още няколко екрана, за да покажете охлаждане на вятъра, точка на оросяване, времена на изгрев или залез или графика на промените на барометричното налягане или да прогнозирате времето с помощта на барометрично налягане. Забавлявайте се и се наслаждавайте.
Препоръчано:
Метеорологична станция NaTaLia: Метеорологична станция със слънчева енергия Arduino, направена по правилния начин: 8 стъпки (със снимки)
Метеорологична станция NaTaLia: Метеорологична станция Arduino със слънчева енергия, направена по правилния начин: След 1 година успешна работа на 2 различни места споделям плановете си за проекти на метеорологични станции със слънчева енергия и обяснявам как се е развила в система, която наистина може да оцелее дълго време периоди от слънчевата енергия. Ако следвате
Още една интелигентна метеорологична станция, но : 6 стъпки (със снимки)
Още една интелигентна метеорологична станция, но …: Добре, знам, че има толкова много такива метеорологични станции, налични навсякъде, но отделете няколко минути, за да видите разликата … 2 дисплея с ниска мощност на електронна хартия … но 10 различни екрани! Акселерометър на базата на ESP32 и сензори за температура / влажност Wifi upd
JAWS: Просто още една метеорологична станция: 6 стъпки
JAWS: Просто още една метеорологична станция: Каква е целта? От по -младите ми години се интересувам от времето. Първите данни, които събрах, бяха от стар, напълнен с живак термометър, който висеше отвън. Всеки ден, месеци подред, записвах температурата, датата и часа на см
Още една метеорологична станция Arduino (ESP-01 & BMP280 & DHT11 & OneWire): 4 стъпки
Още една метеорологична станция Arduino (ESP-01 & BMP280 & DHT11 & OneWire): Тук можете да намерите една итерация за използване на OneWire с много малкото щифтове на ESP-01. Устройството, създадено в тази инструкция, се свързва с Wifi мрежата на вашия избор (трябва да имате идентификационни данни …) Събира сензорни данни от BMP280 и DHT11
YACS (още една зарядна станция): 6 стъпки (със снимки)
YACS (Още една зарядна станция): Станция за зареждане на вашите джаджи. Консумативи: Гумени уплътнения Кутия Инструменти: Свредло и накрайници