Мазмуну:

BME280 сенсору менен ESP32 WiFi аба ырайы станциясы: 7 кадам (сүрөттөр менен)
BME280 сенсору менен ESP32 WiFi аба ырайы станциясы: 7 кадам (сүрөттөр менен)

Video: BME280 сенсору менен ESP32 WiFi аба ырайы станциясы: 7 кадам (сүрөттөр менен)

Video: BME280 сенсору менен ESP32 WiFi аба ырайы станциясы: 7 кадам (сүрөттөр менен)
Video: Arduino Nano, BME280 и SSD1306 OLED-метеостанция 2024, Ноябрь
Anonim
Image
Image
BME280 сенсору менен ESP32 WiFi аба ырайы станциясы
BME280 сенсору менен ESP32 WiFi аба ырайы станциясы
BME280 сенсору менен ESP32 WiFi аба ырайы станциясы
BME280 сенсору менен ESP32 WiFi аба ырайы станциясы

Урматтуу достор, дагы бир сабакка кош келиңиздер! Бул окуу куралында биз aWiFi иштетилген аба ырайы станциясынын долбоорун түзөбүз! Биз жаңы, таасирдүү ESP32 чипин биринчи жолу Nextion дисплейи менен бирге колдонобуз.

Бул видеодо биз муну жасайбыз. Бул мен билген дагы бир метеостанциянын долбоору, бирок бул жолу биз жаңы ESP32 чипин колдонобуз! Биз ошондой эле температураны, нымдуулукту жана барометрдик басымды өлчөгөн жаңы BME280 сенсорун колдонобуз. Долбоорду иштеткенибизде, ал WiFi тармагына туташат жана openweathermap веб -сайтынан менин жайгашкан жерим боюнча аба ырайын алып турат. Андан кийин ал 3.2”Nextion сенсорунун дисплейиндеги прогнозду көрсөтөт! Окуулар ар бир эки секундда жана аба ырайы саат сайын жаңыртылып турат! Көрүнүп тургандай, бул долбоордо биз бүгүнкү күндө жаратуучу үчүн эң акыркы технологияларды колдонобуз! Эгерде сиз DIY ветераны болсоңуз, бул долбоорду беш мүнөттө куруп аласыз.

Эгер сиз үйрөнчүк болсоңуз, анда бул долбоорду ишке ашыруудан мурун бир нече видеону көрүшүңүз керек. Бул видеого шилтемелерди ушул Нускамадан таба аласыз, кабатыр болбоңуз.

Баштайлы!

1 -кадам: Бардык бөлүктөрдү алыңыз

Бардык бөлүктөрдү алыңыз
Бардык бөлүктөрдү алыңыз

Бул долбоорду куруу үчүн бизге төмөнкү бөлүктөр керек:

  • An ESP32 Board ▶
  • BME280 I2C сенсор ▶
  • 3.2”Nextion дисплейи ▶
  • Чакан нан тактасы ▶
  • Кээ бир зымдар ▶

Долбоордун баасы 30 доллардын тегерегинде.

ESP32 ордуна, биз арзан ESP8266 чипин колдоно алмакпыз, бирок мен аны менен тажрыйба топтоо үчүн ESP32ди колдонууну чечтим жана эмнени иштетээрин жана эмнени көрбөшүн көрдүм.

2 -кадам: ESP32

Image
Image
ESP32
ESP32

Бул мен жаңы ESP32 чип менен курган биринчи долбоор.

Эгерде сиз аны жакшы билбесеңиз, ESP32 чипи - биз мурда көп жолу колдонгон популярдуу ESP8266 чиптин мураскери. ESP32 - бул жырткыч! Бул 160 МГцте иштеген 32 32 иштетүүчү өзөктү, эс тутумдун чоң көлөмүн, WiFi, Bluetooth жана баасы 7 доллардын тегерегиндеги көптөгөн башка функцияларды сунуштайт! Укмуш нерселер!

Сураныч, мен бул такта үчүн даярдаган деталдуу кароону көрүңүз. Мен бул Нускамага видеону тиркеп койдум. Бул чип эмне үчүн түбөлүккө нерселерди жасообузду өзгөртөөрүн түшүнүүгө жардам берет!

3 -кадам: Nextion Display

Image
Image
Сенсор BME280
Сенсор BME280

Ошондой эле, бул Nextion сенсордук дисплейи менен курган биринчи долбоорум.

Nextion дисплейлери дисплейдин жаңы түрү. Алардын артында дисплейди башкарууга жана колдонуучунун графикалык интерфейсин түзүүгө жооптуу болгон ARM процессору бар. Ошентип, биз аларды каалаган микроконтроллер менен колдонуп, укмуштуудай натыйжаларга жетише алабыз.

Мен бул Nextion дисплейи жөнүндө кеңири инструкцияны даярдадым, анда алар кантип иштээри, аларды кантип колдонуу керектиги жана кемчиликтери түшүндүрүлөт. Аны бул жерди басуу менен окуй аласыз:

4 -кадам: BME280 сенсору

Сенсор BME280
Сенсор BME280

BME280 Boschтун жаңы улуу сенсорунда.

Буга чейин мен BMP180 сенсорун колдонуп жүрдүм, ал температураны жана барометрдик басымды өлчөй алат. BME280 сенсору температураны, нымдуулукту жана барометрдик басымды өлчөй алат! Бул кандай сонун! Бизге аба ырайынын толук станциясын куруу үчүн бир гана сенсор керек!

Мындан тышкары, сенсордун өлчөмү өтө кичине жана колдонууга абдан оңой. Бүгүн биз колдоно турган модуль I2C интерфейсин колдонот, ошондуктан Arduino менен байланышты оңой кылат. Биз аны иштетүү үчүн кубаттуулукту жана дагы эки зымды туташтырабыз.

Бул сенсор үчүн иштелип чыккан көптөгөн китепканалар бар, ошондуктан биз аны долбоорлорубузда оңой колдоно алабыз! Сенсордун баасы болжол менен 5 доллар. Бул жерден алсаңыз болот ▶

ЭСКЕРТҮҮ: Бизге BME280 сенсору керек. Ошондой эле нымдуулукту өлчөөнү сунуш кылбаган BMP280 сенсору бар. Сизге керек болгон сенсорго заказ кылууда этият болуңуз.

5 -кадам: Бөлүктөрдү туташтыруу

Бөлүктөрдү туташтыруу
Бөлүктөрдү туташтыруу
Бөлүктөрдү туташтыруу
Бөлүктөрдү туташтыруу
Бөлүктөрдү туташтыруу
Бөлүктөрдү туташтыруу

Бөлүктөрдүн байланышы схемадан көрүнүп тургандай, жөнөкөй.

BME280 сенсор I2C интерфейсин колдонгондуктан, биз ESP32 менен байланышуу үчүн эки зымды гана туташтыруубуз керек. Мен сенсорду 26 жана 27 -казыктарга туташтырдым. Теория боюнча, ESP32 тактасынын ар бир санариптик пини I2C перифериялык түзүлүштөрү менен колдонулушу мүмкүн. Иш жүзүндө, мен кээ бир казыктар башка максаттар үчүн сакталып калгандыктан иштебей калганын билдим. 26 жана 27 -пиндер сонун иштейт!

Дисплейге маалыматтарды жөнөтүү үчүн, биз бир зымды ESP32 TX0 пинине туташтыруубуз керек. ESP32 тактайы бул нан үчүн өтө чоң болгондуктан, дисплейдин ургаачы зымын туташтыруу үчүн пинди ийкем керек болчу.

Бөлүктөрдү туташтыргандан кийин, биз кодду ESP32ге жүктөшүбүз керек жана GUIди Nextion дисплейине жүктөшүбүз керек. Эгер программаны ESP32 тактасына жүктөөдө кыйынчылыктар болсо, Arduino IDEдеги жүктөө баскычын баскандан кийин BOOT баскычын басып туруңуз.

GUIди Nextion дисплейине жүктөө үчүн, мен сиз менен бөлүшө турган WeatherStation.tft файлын бош SD картка көчүрүңүз. SD картаны дисплейдин артындагы SD картанын уячасына салыңыз. Андан кийин дисплейди иштетип, GUI жүктөлөт. Андан кийин SD картаны чыгарып, кубатты кайра туташтырыңыз.

Код ийгиликтүү жүктөлгөндөн кийин, долбоор WiFi тармагына туташат, ал openweathermap.org веб -сайтынан аба ырайын алат жана сенсордон алынган көрсөткүчтөрдү көрсөтөт. Эми долбоордун программалык жагын карап көрөлү.

6 -кадам: Долбоордун коду

Долбоордун коду
Долбоордун коду
Долбоордун коду
Долбоордун коду
Долбоордун коду
Долбоордун коду

Аба ырайы маалыматын талдоо үчүн, бизге мыкты Arduino JSON китепканасы керек. Ошондой эле сенсор үчүн китепкана керек.

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

Эми кодду карап көрөлү.

Башында, SSIDди жана WiFi тармагынын сырсөзүн орнотушубуз керек. Андан кийин, биз operweathermap.org веб -сайтынан акысыз APIKEYге киришибиз керек. Өзүңүздүн API ачкычыңызды түзүү үчүн вебсайтка катталууңуз керек. Учурдагы аба ырайы маалыматын жана божомолун алуу бекер, бирок эгер сиз бир аз акча төлөөгө даяр болсоңуз, вебсайт көбүрөөк мүмкүнчүлүктөрдү сунуштайт. Андан кийин, биз жайгашкан жерибиздин идентификаторун табышыбыз керек. Жайгашкан жериңизди табыңыз жана жайгашкан жериңиздин URL дарегинен тапкан ID көчүрүңүз.

Андан кийин CityID өзгөрмөсүнө шаардын идентификаторун киргизиңиз. Ошондой эле, бул өзгөрмөгө шаарыңыздын бийиктигин киргизиңиз. Бул көрсөткүч сенсордон барометрдик басымдын так көрсөткүчтөрү үчүн керек.

const char* ssid = "yourSSID"; const char* password = "yourPassword"; String CityID = "253394"; // Спарта, Греция Сап APIKEY = "yourAPIkey"; #define ALTITUDE 216.0 // Спартадагы бийиктик, Греция

Эми биз алдыга жылууга даярбыз.

Башында сенсорду баштапкы абалга келтиребиз жана WiFi тармагына туташабыз. Андан кийин биз серверден аба ырайы маалыматын сурайбыз.

Биз JSON форматында аба ырайы маалыматтары менен жооп алабыз. JSON китепканасына маалыматтарды жөнөтүүдөн мурун, мен көйгөйлөрдү жараткан кээ бир тамгаларды кол менен жок кылам. Андан кийин JSON китепканасы жоопкерчиликти алат жана биз керектүү маалыматтарды өзгөрмөлөрдө оңой сактай алабыз. Биз маалыматтарды өзгөрмөлөрдө сактагандан кийин, аларды экранда көрсөтүү жана серверден жаңы маалыматтарды суроодон мурун бир саат күтүү гана жетиштүү. Мен сунуштаган бир гана маалымат - бул аба ырайы, бирок сиз кааласаңыз, көбүрөөк маалыматты көрсөтө аласыз. Мунун баары өзгөрмөлөрдө сакталган. Андан кийин сенсордун температурасын, нымдуулугун жана барометрдик басымын окуп, маалыматтарды Nextion дисплейине жөнөтөбүз.

Дисплейди жаңыртуу үчүн, биз жөн гана сериялык портко мындай буйруктарды жөнөтөбүз:

жараксыз showConnectingIcon () {Serial.println (); String буйругу = "weatherIcon.pic = 3"; Serial.print (буйрук); endNextionCommand (); }

Nextion GUI фондон, кээ бир текст кутуларынан жана аба ырайына жараша өзгөрүүчү сүрөттөн турат. Көбүрөөк маалымат алуу үчүн Nextion дисплей үйрөткүчүн караңыз. Эгерде сиз кааласаңыз жана өзүңүздүн GUIди тезирээк түзө аласыз жана анда көбүрөөк нерселерди көрсөтсөңүз болот.

Дайыма эле бул Нускамага тиркелген долбоордун кодун таба аласыз

7 -кадам: Акыркы ойлор жана жакшыртуулар

Акыркы ойлор жана жакшыртуулар
Акыркы ойлор жана жакшыртуулар

Көрүнүп тургандай, бүгүн тажрыйбалуу жаратуучу бир нече сааттын ичинде бир нече сап код жана үч гана бөлүк менен кызыктуу долбоорлорду кура алат! Мындай долбоорду эки жыл мурун жасоо мүмкүн эмес болчу!

Албетте, бул долбоордун башталышы гана. Мен ага көптөгөн мүмкүнчүлүктөрдү кошкум келет, мисалы, графиктер, сенсордук функциялар азыр жок, балким чоңураак дисплей жана албетте кооз 3D басылган корпус. Мен дагы жакшыраак көрүнүүчү GUI жана сүрөтчөлөрдү иштеп чыгам. Менде ишке ашыруу үчүн абдан жаңы идеялар бар!

Бүгүнкү долбоор боюнча сиздин пикириңизди уккум келет. Долбоорго кандай өзгөчөлүктөрдү кошушумду каалайсыз? Анын көрүнүшү сизге жактыбы? Анын өнүгүшүн кантип көргүңүз келет? Сураныч, төмөндөгү комментарийлер бөлүмүнө өз оюңузду жазыңыз; Мен сиздин оюңузду окуганды жакшы көрөм!

Зымсыз конкурс
Зымсыз конкурс
Зымсыз конкурс
Зымсыз конкурс

Зымсыз таймашта экинчи орунду ээледи

Сунушталууда: