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

Товчлуурт зориулсан "Металл цооног залгуур" ашиглан ESP32 багтаамжтай мэдрэгчтэй оролт: 5 алхам (зурагтай)
Товчлуурт зориулсан "Металл цооног залгуур" ашиглан ESP32 багтаамжтай мэдрэгчтэй оролт: 5 алхам (зурагтай)

Видео: Товчлуурт зориулсан "Металл цооног залгуур" ашиглан ESP32 багтаамжтай мэдрэгчтэй оролт: 5 алхам (зурагтай)

Видео: Товчлуурт зориулсан
Видео: Обшивка балкона пластиковыми панелями (Часть 1) 2024, Арваннэгдүгээр
Anonim
Image
Image
Техник хангамж
Техник хангамж

Гурван товчлуур оруулах шаардлагатай удахгүй болох ESP32 WiFi Kit 32 дээр суурилсан төслийн дизайны шийдвэрийг эцэслэн боловсруулж байх үед WiFi Kit 32 нь ганцхан механик товчлуургүй боловч оруулахад ганцхан гурван механик товчлууртай байсан нь анхаарал татаж байсан юм. Гэсэн хэдий ч, WiFi Kit 32 нь маш их багтаамжтай мэдрэгчтэй оролттой байдаг тул ESP32 багтаамжийн мэдрэгчтэй оролтын функц, 3/8 "металл цооног бүхий гурван залгуур" ашиглан тоног төхөөрөмж угсрах, програм хангамж бичих, гурван товчлууртай оролтын загварыг туршихад хэсэг хугацаа зарцуулсан. товчлуурууд.

ESP32 багтаамжтай мэдрэгчтэй оролтыг туршиж үзсэн хэн бүхний олж мэдсэнээр мэдрэгчтэй оролт нь шуугиан ихтэй бөгөөд оролтыг найдвартай илрүүлэхийн тулд шүүлтүүр шаарддаг. Удахгүй хийгдэх төслийн нийт хэсгүүдийн тоог багасгахын тулд гадны шүүлтүүрийн тоног төхөөрөмжийг нэмэхээс өөрөөр тасалдал үүсгэдэг дижитал шүүлтүүр (шүүлтүүр гэхээсээ илүү "задрах" боловч би ухарч байна) нь чимээ шуугиантай оролтыг намжааж чадна гэж би тодорхойлсон.. Туршилтын дараа ESP32 багтаамжийн оролт, 3/8 "металл цооног бүхий гурван залгуур, дижитал" шүүлтүүр "програм хангамж нь дизайны найдвартай гурван товчлууртай оролтыг өгөх нь тодорхой болов.

Тиймээс, хэрэв та ESP32 дээр дижитал шүүлтүүр ашиглан багтаамжийн оролтыг турших сонирхолтой байгаа бол "Buttons.ino" эх кодыг Arduino орчны форматад угсрах, програмчлах заавар, эх кодын товч тайлбарыг оруулсан болно. Миний олж мэдсэн зүйл бол гурван товчлууртай найдвартай оролт юм.

Ердийн байдлаар би нэг эсвэл хоёр файлыг мартсан байж магадгүй, эсвэл өөр юу мэддэг юм бол, хэрэв танд асуулт байвал асуухаас бүү эргэлзээрэй.

Эцсийн нэг тэмдэглэл бол би энэ загварт ашигласан бүрэлдэхүүн хэсгүүдийн үнэ төлбөргүй дээжийг оруулаад ямар ч хэлбэрээр нөхөн төлбөр авдаггүй.

Алхам 1: Техник хангамж

Техник хангамж
Техник хангамж
Техник хангамж
Техник хангамж
Техник хангамж
Техник хангамж

Дизайн нь дараахь тоног төхөөрөмжийг ашигладаг.

  • Нэг, WiFi хэрэгсэл 32.
  • Гурван, 3/8 инчийн металл цооног.
  • Гурван, 4 "урттай 28awg утас.

Тоног төхөөрөмжийг угсрахын тулд би дараах алхмуудыг хийсэн.

  • Зурагтын дагуу 4 инч урттай утас бүрийн үзүүрийг хуулж, лаазалсан.
  • ESP32 -ийн 13 -р зүү (TOUCH4, эсвэл "T4", оролт) -ын анхны утсыг гагнав.
  • ESP32 -ийн 12 -р зүү (TOUCH5 буюу "T5" оролт) -ын хоёр дахь утсыг гагнав.
  • ESP32 -ийн 14 -р зүү (TOUCH6 буюу "T6" оролт) -ын гурав дахь утсыг гагнав.
  • 3/8 инчийн гурван металл нүхний залгуур тус бүрийг гурван утасны уртын чөлөөт үзүүрт гагнав.

Алхам 2: Програм хангамж

Програм хангамж
Програм хангамж

"Buttons.ino" файл нь дизайны програм хангамжийг агуулсан Arduino орчны файл юм. Энэ файлаас гадна танд WiFi Kit32 OLED дэлгэцийн "U8g2lib" график номын сан хэрэгтэй болно (https://github.com/olikraus/u8g2/wiki -г энэ номын сангийн талаар дэлгэрэнгүй үзнэ үү).

U8g2lib график номын санг таны Arduino лавлах санд суулгаж, "Buttons.ino" -г Arduino орчинд ачаалж, програмыг ESP32 дээр эмхэтгэн татаж аваарай.

Татаж аваад ажиллуулсны дараа дэлгэцийн дээд мөрөнд "Buttons" гэж бичээд дэлгэцийн хоёрдахь мөрөнд "1 2 3" гэсэн товчлуурын заагч байх ёстой. 1, 2, 3 товчлуурын индикатор бүрийн доор шүүлтүүргүй унших утга, эдгээрийн доор товчлуур дарах үзүүлэлтүүд байна (дарагдсан бол "1", дарагдаагүй бол "0"). Видеоноос харж болно (мөн урт хугацааны туршилтаар баталгаажсан), програм хангамжийн шүүлтүүр нь хуурамч өдөөлтгүйгээр товчлуурын оролтыг найдвартай илрүүлэх боломжийг олгодог.

Алхам 3: Програм хангамжийн тухай

Програм хангамж нь кодын гурван үндсэн хэсгийг агуулдаг; Arduino нь "setup ()" ба "loop ()" хэсгүүд болон "Тасалдал" хэсгийг шаарддаг. Тохиргоо () хэсэг нь OLED -ийг эхлүүлэх, үйлчилгээг тасалдуулахад шаардлагатай кодыг агуулдаг. OLED тохиргооны функцуудыг дээрх холбоос дээр тайлбарласан болно. Тасалдлын үйлчилгээний тохиргооны функцууд дараах байдалтай байна.

  • "timerLoopSemaphore = xSemaphoreCreateBinary ()" нь "InterruptService ()" (тасалдлын үйлчилгээний горим) -д семафор үүсгэж, давталтын дамжуулалтыг гүйцэтгэх цаг болоход давталтыг мэдээлэх болно.
  • "timerInterruptService = timerBegin (0, 80, үнэн)" нь тоног төхөөрөмжийн таймер 0 -ийг ашиглан урьдчилсан үнэлгээтэй 80 -тай таймер үүсгэдэг.
  • "timerAttachInterrupt (timerInterruptService, & InterruptService, true)" нь InterruptService () -ийг таймерт хавсаргана.
  • "timerAlarmWrite (timerInterruptService, 1000, true)" нь тасалдлын үйлчилгээний хурдыг 1000Гц болгож тохируулдаг.
  • "timerAlarmEnable (timerInterruptService)" нь таймерын сэрүүлгийг эхлүүлж, улмаар үйлчилгээг тасалдуулдаг.

Тохиргоог хийж дууссаны дараа loop () оруулаад мөрөнд шууд зогсдог.

хэрэв (xSemaphoreTake (timerLoopSemaphore, portMAX_DELAY) == pdTRUE), давталт () нь энэ үед InterruptService () -ээс семафор ирэх хүртэл хүлээх болно. Семафор ирэхэд loop () код хэрэгжиж, OLED дэлгэцийг товчлуурын өгөгдлөөр шинэчилж, дараа нь дээд тал руу буцаж дараагийн семафорыг хүлээнэ. InterruptService () нь 1000hz дээр ажилладаг бөгөөд LOOP_DELAY -ийн утга 30 бол loop () нь 30ms тутамд эсвэл дэлгэцийн шинэчлэлтийн хурдаар 33.333hz -д гүйцэтгэгддэг. Энэ нь ихэнх ESP32 програмуудад шаардагдах хэмжээнээс өндөр дэлгэцийн шинэчлэлтийн хурд боловч би энэ тохиргоог ашиглан шүүлтүүрийн хариу өгөх чадварыг харуулсан. Би туршилт хийж, нэг давталт () дамжуулалтыг гүйцэтгэхэд шаардагдах хугацааг 20 ms гэж тодорхойлсон.

InterruptService () нь setup () дээр үүсгэсэн таймераар 1000Гц давтамжтайгаар дуудагддаг. Дуудахад nLoopDelay болон nButtonDelay гэсэн хоёр тоолуурыг шинэчилдэг. NLoopDelay -ийг тэг хүртэл тоолоход энэ нь давталт () -д ганц дамжуулалт хийхийг зөвшөөрдөг бөгөөд дараа нь nLoopDelay -ийг дахин тохируулдаг. NButtonDelay -ийг тэг хүртэл тоолоход үүнийг дахин тохируулсны дараа "шүүлтүүр" товчийг ажиллуулна.

Товчлуурын шүүлтүүр бүр өвөрмөц шүүлтүүр тоолууртай байдаг (жишээ нь nButton1Count, nButton2Count ба nButton3Count). Товчлуурт өгсөн мэдрэгчтэй оролтын утга нь тогтоосон босго утгаас (BUTTON_THRESHHOLD) их буюу тэнцүү байвал товчлуур болон товчлуурт оноосон шүүлтүүр тоолуур тэг хэвээр үлдэнэ. Хэрэв товчлуурт өгсөн мэдрэгчтэй оролтын утга нь тогтоосон босго хэмжээнээс бага байвал товчлуурт оноосон шүүлтүүр тоолуурыг 20 м тутамд нэгээр нэмэгдүүлдэг. Шүүлтүүрийн тоолуур нь товчлуурын шүүлтүүрийн утгыг (BUTTON_FILTER) давсан тохиолдолд товчлуурыг "дарагдсан" гэж үзнэ. Энэ аргын үр нөлөө нь товчлуурыг дарсан гэж үзэхийн тулд тодорхойлсон босго хэмжээнээс доогуур мэдрэгчтэй оролтын утгуудын 80ms (20ms nButtonDelay * 4ms nButtonCountN) шаардлагатай шүүлтүүрийг бий болгох явдал юм. 80 мс -ээс бага бол "алдаа" гэж тооцогддог бөгөөд шүүлтүүрээс татгалздаг.

Энэхүү товч тайлбарыг өгсөн тул танд асуух зүйл байвал асуугаарай, би тэдэнд хариулахын тулд чадах бүхнээ хийх болно.

Танд таалагдсан гэж найдаж байна!

Алхам 4: "Удахгүй болох төсөл"

The
The

Удахгүй хийгдэх "Intelligrill® Pro" төсөл нь тамхи татдаг хос температурын хяналтын төхөөрөмж бөгөөд дараахь зүйлийг агуулна.

  • Илүү нарийвчлалтай болгохын тулд Steinhart-Hart температурын датчикийг тооцоолох ("хайх" хүснэгтээс ялгаатай).
  • Steinhart-Hart-ийн тооцооллоос олж авсан нарийвчлалыг агуулсан 1-р шалгалтыг дуусгах урьдчилсан хугацаа.
  • Тамхичдын температурыг хянах хоёр дахь датчик, датчик 2 (32 -оос 399 градус хүртэл хязгаарлагддаг).
  • Мэдрэгчтэй оролтын багтаамжийн багтаамж (энэхүү зааврын дагуу).
  • WIFI -д суурилсан алсын хяналт (тогтмол IP хаягтай, интернет холболт байгаа газраас тамхи татдаг хүмүүсийн явцыг хянах боломжийг олгодог).
  • Өргөтгөсөн температурын хүрээ (дахин 32-399 градус).
  • Intelligrill® дамжуулагч дотор болон WiFi ашиглах боломжтой ихэнх хяналтын төхөөрөмжид дуут дуусгах дохио өгдөг.
  • Температурыг F эсвэл C градусын аль алинд нь харуулна.
  • Цагийн формат нь HH: MM: SS эсвэл HH: MM.
  • Батерейны дэлгэц нь вольт эсвэл % цэнэглэгдсэн байна.
  • Мөн удахгүй тамхи татдаг хүмүүст зориулсан PID гаралт болно.

"Intelligrill® Pro" нь миний зохион бүтээсэн HTML дээр суурилсан хамгийн үнэн зөв, онцлог шинж чанартай, найдвартай, найдвартай HTML програм болохын тулд туршиж байна.

Энэ нь туршилтанд хамрагдсан хэвээр байгаа боловч туршилтын явцад бэлтгэсэн хоолоор би хэдэн фунтаас илүү жин нэмсэн.

Дахин хэлэхэд танд таалагдана гэж найдаж байна!

Алхам 5: Дараагийн алхам: Steinhart-Hart залруулгатай ESP32 NTP температурын датчик аналог оролт

Алгебрийн номнуудынхаа тоосыг авахын тулд үүнд бэлэн байгаарай.

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