Агуулгын хүснэгт:

BME280 мэдрэгч бүхий ESP32 WiFi цаг уурын станц: 7 алхам (зурагтай)
BME280 мэдрэгч бүхий ESP32 WiFi цаг уурын станц: 7 алхам (зурагтай)

Видео: BME280 мэдрэгч бүхий ESP32 WiFi цаг уурын станц: 7 алхам (зурагтай)

Видео: BME280 мэдрэгч бүхий ESP32 WiFi цаг уурын станц: 7 алхам (зурагтай)
Видео: Модуль температуры, влажности и давления 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 Touch Display дээрх урьдчилсан мэдээг мэдрэгчийн уншилтын хамт харуулах болно! Уншлага нь хоёр секунд тутамд, цаг агаарын урьдчилсан мэдээ цаг тутамд шинэчлэгддэг! Таны харж байгаагаар энэхүү төсөлд бид өнөөдөр үйлдвэрлэгчийн хамгийн сүүлийн үеийн технологийг ашиглаж байна. Хэрэв та DIY ахмад дайчин бол энэ төслийг таван минутын дотор барьж болно.

Хэрэв та эхлэгч бол энэ төслийг хэрэгжүүлэхийн өмнө хэд хэдэн видео үзэх хэрэгтэй. Та эдгээр зааврын дагуу эдгээр видеоны линкийг олох боломжтой, санаа зовох хэрэггүй.

Эхэлцгээе!

Алхам 1: Бүх эд ангиудыг авах

Бүх эд ангиудыг аваарай
Бүх эд ангиудыг аваарай

Энэхүү төслийг бүтээхийн тулд бидэнд дараах хэсгүүд хэрэгтэй болно.

  • ESP32 самбар ▶
  • BME280 I2C мэдрэгч ▶
  • 3.2”Nextion дэлгэц ▶
  • Жижиг талхны самбар ▶
  • Зарим утас ▶

Төслийн өртөг нь ойролцоогоор 30 доллар юм.

ESP32 -ийн оронд бид илүү хямд ESP8266 чипийг ашиглах боломжтой байсан ч би ESP32 -ийг ашиглан туршлага хуримтлуулахын тулд юу ажиллах, юу нь болохгүй байгааг харахаар шийдсэн.

Алхам 2: ESP32

Image
Image
ESP32
ESP32

Энэ бол миний шинэ ESP32 чипээр бүтээсэн анхны төсөл юм.

Хэрэв та энэ талаар сайн мэдэхгүй байгаа бол ESP32 чип нь бидний урьд өмнө олон удаа ашиглаж байсан алдартай ESP8266 чипийн залгамжлагч юм. ESP32 бол араатан юм! Энэ нь 160 МГц давтамжтай ажилладаг 32 процессорын цөм, асар их санах ой, WiFi, Bluetooth болон 7 долларын үнэтэй бусад олон боломжуудыг санал болгодог. Гайхамшигтай зүйлс!

Энэхүү самбар дээр миний бэлтгэсэн дэлгэрэнгүй тоймыг үзээрэй. Би энэ зааварчилгааны видеог хавсаргав. Энэ чип яагаад бидний үүрд хийх арга барилаа өөрчилдгийг ойлгоход тусална!

Алхам 3: Nextion дэлгэц

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 түлхүүрийг үүсгэхийн тулд та вэбсайтад бүртгүүлэх ёстой. Цаг агаарын урьдчилсан мэдээ, урьдчилсан мэдээг авах нь үнэ төлбөргүй боловч хэрэв та мөнгө төлөхөд бэлэн байгаа бол вэбсайт нь илүү олон сонголтыг санал болгодог. Дараа нь бид байршлынхаа ID -г олох ёстой. Байршлынхаа хаягийг олж, ID -г хуулж аваарай.

Дараа нь CityID хувьсагчдаа хотынхоо id -г оруулна уу. Мөн энэ хувьсагчаар хотынхоо өндрийг оруулна уу. Энэ утга нь мэдрэгчийн барометрийн даралтыг үнэн зөв уншихад шаардлагатай болно.

const char* ssid = "yourSSID"; const char* password = "yourPassword"; String CityID = "253394"; // Спарта, Грек String APIKEY = "yourAPIkey"; ALTITUDE 216.0 -ийг тодорхойлно уу // Грекийн Спарта дахь өндөр

Одоо бид цаашаа явахад бэлэн байна.

Эхлээд бид мэдрэгчийг эхлүүлж, WiFi сүлжээнд холбогддог. Дараа нь бид цаг агаарын мэдээллийг серверээс хүсдэг.

Бид цаг агаарын мэдээг JSON форматаар хүлээн авдаг. Өгөгдлийг JSON номын санд илгээхээс өмнө надад асуудал үүсгэж байсан зарим тэмдэгтүүдийг гараар устгадаг. Дараа нь JSON номын сан хариуцах бөгөөд бид шаардлагатай өгөгдлөө хувьсагч хэлбэрээр хялбархан хадгалах боломжтой болно. Өгөгдлийг хувьсагч хэлбэрээр хадгалсны дараа бид тэдгээрийг дэлгэцэн дээр гаргаж, серверээс шинэ өгөгдөл хүсэхээс нэг цагийн өмнө хүлээх л үлдлээ. Миний танилцуулж буй цорын ганц мэдээлэл бол цаг агаарын урьдчилсан мэдээ боловч хэрэв та хүсвэл илүү дэлгэрэнгүй мэдээллийг үзүүлэх боломжтой. Энд бүгдийг хувьсагч хэлбэрээр хадгалсан. Дараа нь бид температур, чийгшил, барометрийн даралтыг мэдрэгчээс уншиж, өгөгдлийг Nextion дэлгэц рүү илгээдэг.

Дэлгэцийг шинэчлэхийн тулд бид дараах командыг цуваа порт руу илгээдэг.

void showConnectingIcon () {Serial.println (); String тушаал = "weatherIcon.pic = 3"; Serial.print (тушаал); endNextionCommand (); }

Nextion GUI нь арын дэвсгэр, зарим текст хайрцаг, цаг агаарын урьдчилсан мэдээнээс хамааран өөрчлөгддөг зургаас бүрдэнэ. Дэлгэрэнгүй мэдээллийг Nextion дэлгэцийн хичээлээс үзнэ үү. Хэрэв та хүсвэл GUI -ийг хурдан зохион бүтээж, үүн дээр илүү олон зүйлийг үзүүлэх боломжтой.

Үргэлж энэ зааварт хавсаргасан төслийн кодыг олж болно

Алхам 7: Эцсийн бодол ба сайжруулалт

Эцсийн бодол ба сайжруулалт
Эцсийн бодол ба сайжруулалт

Таны харж байгаагаар өнөөдөр туршлагатай үйлдвэрлэгч хэдхэн цагийн дотор хэдэн мөр код, ердөө гурван хэсгээс бүрдсэн сонирхолтой төслүүдийг бүтээж чадна! Ийм төслийг хоёр жилийн өмнө хийх боломжгүй байсан!

Мэдээжийн хэрэг, энэ бол төслийн зөвхөн эхлэл юм. Би үүнд график, мэдрэгч функц байхгүй, магадгүй илүү том дэлгэц, мэдээж 3D хэвлэсэн үзэсгэлэнтэй хаалт гэх мэт олон онцлог шинж чанаруудыг нэмж өгөхийг хүсч байна. Би бас илүү сайн харагдах GUI болон дүрсүүдийг зохион бүтээх болно. Надад хэрэгжүүлэх маш шинэ санаанууд байна!

Өнөөдрийн төслийн талаар таны сэтгэгдлийг сонсох дуртай. Та төсөлд ямар онцлог шинж чанаруудыг нэмж өгөхийг хүсч байна вэ? Энэ нь хэрхэн харагдаж байгаа нь танд таалагдаж байна уу? Та үүнийг хэрхэн хөгжихийг харахыг хүсч байна вэ? Доорх сэтгэгдлүүдийн хэсэгт өөрийн санаагаа оруулна уу; Би чиний бодлыг унших дуртай!

Утасгүй тэмцээн
Утасгүй тэмцээн
Утасгүй тэмцээн
Утасгүй тэмцээн

Утасгүй холбооны тэмцээнд дэд байр эзэлсэн

Зөвлөмж болгож буй: