Мазмуну:
- 1 -кадам: Бардык бөлүктөрдү алыңыз
- 2 -кадам: ESP32
- 3 -кадам: Nextion Display
- 4 -кадам: BME280 сенсору
- 5 -кадам: Бөлүктөрдү туташтыруу
- 6 -кадам: Долбоордун коду
- 7 -кадам: Акыркы ойлор жана жакшыртуулар
Video: BME280 сенсору менен ESP32 WiFi аба ырайы станциясы: 7 кадам (сүрөттөр менен)
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:42
Урматтуу достор, дагы бир сабакка кош келиңиздер! Бул окуу куралында биз 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
Бул мен жаңы ESP32 чип менен курган биринчи долбоор.
Эгерде сиз аны жакшы билбесеңиз, ESP32 чипи - биз мурда көп жолу колдонгон популярдуу ESP8266 чиптин мураскери. ESP32 - бул жырткыч! Бул 160 МГцте иштеген 32 32 иштетүүчү өзөктү, эс тутумдун чоң көлөмүн, WiFi, Bluetooth жана баасы 7 доллардын тегерегиндеги көптөгөн башка функцияларды сунуштайт! Укмуш нерселер!
Сураныч, мен бул такта үчүн даярдаган деталдуу кароону көрүңүз. Мен бул Нускамага видеону тиркеп койдум. Бул чип эмне үчүн түбөлүккө нерселерди жасообузду өзгөртөөрүн түшүнүүгө жардам берет!
3 -кадам: Nextion Display
Ошондой эле, бул Nextion сенсордук дисплейи менен курган биринчи долбоорум.
Nextion дисплейлери дисплейдин жаңы түрү. Алардын артында дисплейди башкарууга жана колдонуучунун графикалык интерфейсин түзүүгө жооптуу болгон ARM процессору бар. Ошентип, биз аларды каалаган микроконтроллер менен колдонуп, укмуштуудай натыйжаларга жетише алабыз.
Мен бул Nextion дисплейи жөнүндө кеңири инструкцияны даярдадым, анда алар кантип иштээри, аларды кантип колдонуу керектиги жана кемчиликтери түшүндүрүлөт. Аны бул жерди басуу менен окуй аласыз:
4 -кадам: 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 жана сүрөтчөлөрдү иштеп чыгам. Менде ишке ашыруу үчүн абдан жаңы идеялар бар!
Бүгүнкү долбоор боюнча сиздин пикириңизди уккум келет. Долбоорго кандай өзгөчөлүктөрдү кошушумду каалайсыз? Анын көрүнүшү сизге жактыбы? Анын өнүгүшүн кантип көргүңүз келет? Сураныч, төмөндөгү комментарийлер бөлүмүнө өз оюңузду жазыңыз; Мен сиздин оюңузду окуганды жакшы көрөм!
Зымсыз таймашта экинчи орунду ээледи
Сунушталууда:
Кесиптик аба ырайы станциясы ESP8266 жана ESP32 DIY колдонуп: 9 кадам (сүрөттөр менен)
ESP8266 жана ESP32 DIY колдонгон профессионалдуу аба ырайы станциясы: LineaMeteoStazione - бул Sensirionдун профессионалдык сенсорлору, ошондой эле кээ бир Davis Instrument компоненттери (Rain Gauge, Anemometer) менен байланышта боло турган толук аба ырайы станциясы
Javaдагы BME280 менен Raspberry Pi колдонгон жеке аба ырайы станциясы: 6 кадам
Javaдагы BME280 менен Raspberry Pi колдонулган жеке аба ырайы станциясы: Жаман аба ырайы дайыма терезеден жаман көрүнөт. Биз ошондой эле жылытуу жана кондиционер системасын жакшыраак көзөмөлгө алууну кааладык. Жеке метеостанцияны куруу - бул
Pythonдогу BME280 менен Raspberry Pi колдонулган аба ырайы станциясы: 6 кадам
Аба ырайы станциясы Raspberry Pi менен BME280ди Pythonдо колдонсо болот: аба ырайы-бул глобалдык жылуулук жана климаттын өзгөрүшү менен бирге глобалдык аба ырайы биздин дүйнөдө туруксуз болуп баратат. табигый кырсыктар (кургакчылык, экстремалдык
Акыркы 1-2 күндүн ичинде трендди көрүү үчүн Arduino, BME280 жана дисплей менен аба ырайы станциясы: 3 кадам (сүрөттөр менен)
Акыркы 1-2 күндүн ичинде трендди көрүү үчүн Arduino, BME280 жана дисплей менен метеорологиялык станция: Саламатсызбы! Алар учурдагы абанын басымын, температурасын жана нымдуулугун көрсөтөт. Аларга акыркы 1-2 күндүн ичинде курстун презентациясы жетишпеди. Бул процесске ээ болмок
Аба ырайы шамы - Аба ырайы жана температура бир караганда: 8 кадам
Аба ырайы шамы - Аба ырайы жана Температура Бир Караганда: Бул сыйкырдуу шамды колдонуп, сиз учурдагы температураны жана шарттарды дароо сыртта айта аласыз