Съдържание:

ESP32 WiFi метеорологична станция със сензор BME280: 7 стъпки (със снимки)
ESP32 WiFi метеорологична станция със сензор BME280: 7 стъпки (със снимки)

Видео: ESP32 WiFi метеорологична станция със сензор BME280: 7 стъпки (със снимки)

Видео: ESP32 WiFi метеорологична станция със сензор BME280: 7 стъпки (със снимки)
Видео: Arduino Nano, BME280 and SSD1306 OLED Weather Station 2024, Ноември
Anonim
Image
Image
ESP32 WiFi метеорологична станция със сензор BME280
ESP32 WiFi метеорологична станция със сензор BME280
ESP32 WiFi метеорологична станция със сензор BME280
ESP32 WiFi метеорологична станция със сензор BME280

Скъпи приятели, добре дошли в друг урок! В този урок ще изградим проект за метеорологична станция с активиран aWiFi! Ще използваме новия, впечатляващ чип ESP32 за първи път заедно с Nextion дисплей.

В това видео ще направим това. Това е поредният проект за метеорологична станция, който познавам, но този път използваме новия чип ESP32! Използваме и новия сензор BME280, който измерва температурата, влажността и барометричното налягане. Когато включим проекта, той се свързва с WiFi мрежата и той ще извлече прогнозата за времето за моето местоположение от уебсайта на openweathermap. Тогава той ще покаже прогнозата на този 3.2”Nextion Touch дисплей заедно с показанията от сензора! Показанията се актуализират на всеки две секунди, а прогнозата за времето на всеки час! Както можете да видите, в този проект ние използваме най -новите технологии, достъпни за производителя днес! Ако сте ветеран „Направи си сам“, можете да изградите този проект за пет минути.

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

Да започваме!

Стъпка 1: Вземете всички части

Вземете всички части
Вземете всички части

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

  • ESP32 дъска ▶
  • BME280 I2C сензор ▶
  • 3.2 -инчов Nextion дисплей ▶
  • Малка дъска ▶
  • Някои проводници ▶

Цената на проекта е около 30 $.

Вместо ESP32 бихме могли да използваме по -евтиния чип ESP8266, но реших да използвам ESP32, за да натрупам известен опит с него и да видя какво работи и кое не.

Стъпка 2: ESP32

Image
Image
ESP32
ESP32

Това е първият проект, който някога съм изграждал с новия чип ESP32.

Ако не сте запознати с него, чипът ESP32 е наследник на популярния чип ESP8266, който сме използвали много пъти в миналото. ESP32 е звяр! Той предлага две 32 процесорни ядра, които работят на 160MHz, огромно количество памет, WiFi, Bluetooth и много други функции на цена от около 7 $! Невероятни неща!

Моля, вижте подробния преглед, който подготвих за тази дъска. Прикачих видеоклипа към тази инструкция. Това ще помогне да се разбере защо този чип ще промени начина, по който правим нещата завинаги!

Стъпка 3: Дисплеят Nextion

Image
Image
Сензор BME280
Сензор BME280

Също така, това е първият проект, който изграждам с сензорен дисплей Nextion.

Дисплеите Nextion са нов вид дисплеи. Те имат собствен ARM процесор отзад, който отговаря за задвижването на дисплея и създаването на графичен потребителски интерфейс. Така че можем да ги използваме с всеки микроконтролер и да постигнем впечатляващи резултати.

Подготвил съм подробен Instructable за този дисплей Nextion, който обяснява в дълбочина как работят, как да ги използваме и техните недостатъци. Можете да го прочетете, като кликнете тук:

Стъпка 4: Сензор BME280

Сензор BME280
Сензор BME280

BME280 в нов страхотен сензор от Bosch.

Досега използвах сензора BMP180, който може да измерва температурата и барометричното налягане. Сензорът BME280 може да измерва температура, влажност и барометрично налягане! Колко готино е това! Нуждаем се само от един сензор, за да изградим цялостна метеорологична станция!

В допълнение към това, сензорът е с много малки размери и много лесен за използване. Модулът, който ще използваме днес, използва интерфейса I2C, така че прави комуникацията с Arduino много лесна. Трябва само да свържем захранването и още два проводника, за да работи.

За този сензор вече са разработени много библиотеки, така че можем да го използваме много лесно в нашите проекти! Цената на сензора е около 5 $. Можете да го получите тук ▶

ЗАБЕЛЕЖКА: Имаме нужда от сензора BME280. Има и сензор BMP280, който не предлага измерване на влажността. Бъдете внимателни, за да поръчате необходимия сензор.

Стъпка 5: Свързване на частите

Свързване на частите
Свързване на частите
Свързване на частите
Свързване на частите
Свързване на частите
Свързване на частите

Свързването на частите е лесно, както можете да видите от схематичната диаграма.

Тъй като сензорът BME280 използва интерфейса I2C, трябва само да свържем два проводника, за да комуникираме с ESP32. Прикрепил съм сензора към пинове 26 и 27. На теория всеки цифров щифт на платката ESP32 може да се използва с периферни устройства I2C. На практика обаче открих, че някои щифтове не работят, защото са запазени за други приложения. Щифтове 26 и 27 функционират чудесно!

За да изпращаме данни към дисплея, трябва само да свържем един проводник към TX0 пина на ESP32. Трябваше да огъна щифта по този начин, за да свържа женския проводник на дисплея, тъй като платката ESP32 е твърде голяма за тази платка.

След като свържем частите, трябва да заредим кода в ESP32 и трябва да заредим GUI на дисплея Nextion. Ако имате проблеми с качването на програмата на платката ESP32, задръжте бутона BOOT, след като натиснете бутона за качване на Arduino IDE.

За да заредите графичния интерфейс на дисплея Nextion, копирайте файла WeatherStation.tft, който ще споделя с вас, на празна SD карта. Поставете SD картата в слота за SD карта в задната част на дисплея. След това включете дисплея и графичният интерфейс ще бъде зареден. След това извадете SD картата и свържете отново захранването.

След успешно зареждане на кода проектът ще се свърже с WiFi мрежата, той ще получи прогнозата за времето от уебсайта openweathermap.org и ще покаже показанията от сензора. Нека сега да видим софтуерната страна на проекта.

Стъпка 6: Кодът на проекта

Кодът на проекта
Кодът на проекта
Кодът на проекта
Кодът на проекта
Кодът на проекта
Кодът на проекта

За да анализираме метеорологичните данни, се нуждаем от отличната библиотека Arduino JSON. Нуждаем се и от библиотека за сензора.

? ESP32 BME280: https://github.com/Takatsuki0204/BME280-I2C-ESP32? Arduino JSON:

Да видим кода сега.

Първо трябва да зададем SSID и паролата за нашата WiFi мрежа. След това трябва да влезем в безплатния APIKEY от уебсайта operweathermap.org. За да създадете свой собствен API ключ, трябва да се регистрирате на уебсайта. Получаването на актуални метеорологични данни и прогнози е безплатно, но уебсайтът предлага повече възможности, ако сте готови да платите малко пари. След това трябва да намерим идентификатора на нашето местоположение. Намерете вашето местоположение и копирайте идентификационния номер, който може да бъде намерен на URL адреса на вашето местоположение.

След това въведете идентификатора на вашия град в променливата CityID. Също така въведете надморската височина на вашия град в тази променлива. Тази стойност е необходима за точни показания на барометричното налягане от сензора.

const char* ssid = "yourSSID"; const char* password = "yourPassword"; Низ CityID = "253394"; // Спарта, Гърция Низ APIKEY = "yourAPIkey"; #define ALTITUDE 216.0 // Надморска височина в Спарта, Гърция

Сега сме готови да продължим.

Първоначално инициализираме сензора и се свързваме с WiFi мрежата. След това искаме метеорологични данни от сървъра.

Получаваме отговор с метеорологичните данни във формат JSON. Преди да изпратя данните в библиотеката на JSON, ръчно изтривам някои символи, които ми създаваха проблеми. Тогава библиотеката JSON поема и лесно можем да запазим необходимите ни данни в променливи. След като сме запазили данните в променливи, всичко, което трябва да направим, е да ги покажем на екрана и да изчакаме час, преди да поискаме нови данни от сървъра. Единствената информация, която представям, е прогнозата за времето, но можете да покажете повече информация, ако желаете. Тук всичко е запазено в променливи. След това отчитаме температурата, влажността и барометричното налягане от сензора и изпращаме данните на дисплея Nextion.

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

void showConnectingIcon () {Serial.println (); String command = "weatherIcon.pic = 3"; Serial.print (команда); endNextionCommand (); }

GUI на Nextion се състои от фон, някои текстови полета и картина, която се променя в зависимост от прогнозата за времето. Моля, гледайте урока за показване на Nextion за повече информация. Можете бързо да проектирате свой собствен графичен интерфейс, ако желаете, и да покажете повече неща върху него.

Както винаги можете да намерите кода на проекта, приложен към тази инструкция

Стъпка 7: Последни мисли и подобрения

Заключителни мисли и подобрения
Заключителни мисли и подобрения

Както можете да видите, опитен производител днес може да изгради вълнуващи проекти само за няколко часа с няколко реда код и само три части! Подобен проект би било невъзможно да се направи дори преди две години!

Разбира се, това е само началото на проекта. Бих искал да добавя много функции към него, като графики, сензорна функционалност, която сега липсва, може би по -голям дисплей и разбира се красиво изглеждащ корпус с 3D печат. Ще проектирам и по -добре изглеждащ графичен интерфейс и икони. Имам някои много свежи идеи за изпълнение!

Ще се радвам да чуя вашето мнение за днешния проект. Какви функции искате да добавя към проекта? Харесва ли ви как изглежда? Как искате да го развиете? Моля, публикувайте идеите си в секцията за коментари по -долу; Обичам да чета мислите ти!

Безжично състезание
Безжично състезание
Безжично състезание
Безжично състезание

Вицешампион в конкурса за безжична връзка

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