Агуулгын хүснэгт:
- Алхам 1: Техник хангамж
- Алхам 2: Програм хангамж
- Алхам 3: Програм хангамжийн тухай
- Алхам 4: "Удахгүй болох төсөл"
- Алхам 5: Дараагийн алхам: Steinhart-Hart залруулгатай ESP32 NTP температурын датчик аналог оролт
Видео: Товчлуурт зориулсан "Металл цооног залгуур" ашиглан ESP32 багтаамжтай мэдрэгчтэй оролт: 5 алхам (зурагтай)
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:03
Гурван товчлуур оруулах шаардлагатай удахгүй болох 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: "Удахгүй болох төсөл"
Удахгүй хийгдэх "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 температурын датчик аналог оролт
Алгебрийн номнуудынхаа тоосыг авахын тулд үүнд бэлэн байгаарай.
Зөвлөмж болгож буй:
Таны телевизортой холбогдсон оролт бүрт зориулсан Ambilight систем. WS2812B Arduino UNO Raspberry Pi HDMI (2019 оны 12 -р сард шинэчлэгдсэн): 12 алхам (зурагтай)
Таны телевизортой холбогдсон оролт бүрт зориулсан Ambilight систем. WS2812B Arduino UNO Raspberry Pi HDMI (2019 оны 12 -р сард шинэчлэгдсэн): Би телевиздээ ambilight оруулахыг үргэлж хүсдэг байсан. Энэ үнэхээр дажгүй харагдаж байна! Эцэст нь би тэгсэн ч сэтгэлээр унасангүй! Би танай ТВ -д зориулж Ambilight системийг бий болгох талаар олон видео бичлэг, олон зааварчилгаа үзсэн боловч яг нялх хүүхдэдээ зориулсан бүрэн гарын авлага олж байгаагүй
ESP32: 5 алхамыг ашиглан 30 доллараас бага багтаамжтай савны уншигч бүтээх (зурагтай)
ESP32 ашиглан 30 доллараас бага багтаамжтай савны уншигч бүтээгээрэй: Интернэт зүйлс нь олон гар урлалын шар айраг үйлдвэрлэгч, дарс үйлдвэрлэгчдийн гэрт урьд өмнө нарийн төвөгтэй байсан төхөөрөмжүүдийг авчирсан. Түвшин мэдрэгч бүхий програмыг томоохон боловсруулах үйлдвэр, ус цэвэрлэх байгууламж, химийн үйлдвэрүүдэд хэдэн арван жилийн турш ашиглаж ирсэн
Raspberry Pi RF алсын удирдлагатай сүлжээний залгуур (цахилгаан залгуур): 6 алхам
Raspberry Pi RF-ийн алсын удирдлагатай сүлжээний залгуур (цахилгаан залгуур): Raspberry Pi ашиглан 433 МГц-ийн хямд залгууруудыг (хананы залгуур) удирдах. Pi нь сокетуудын алсын удирдлагаас гаргадаг хяналтын кодыг сурч, програмын хяналтан дор бүх байшингийн алсын эсвэл бүх залгуурыг идэвхжүүлэх боломжтой
Arduino -тай 4x4 товчлуурт нэвтрэх: 5 алхам (зурагтай)
Arduino -тай 4x4 товчлуурт нэвтрэх: 4x4 товчлуур нь матриц шиг зохион байгуулагдсан 16 товчлуураас бүрдэнэ. Матриц сканнердах аргаар 4х4 хэмжээтэй товчлуурт нэвтрэхэд ашигладаг арга. 4х4 хэмжээтэй товчлуурт нэвтрэхийн тулд 8 голтой байх шаардлагатай, өөрөөр хэлбэл багананд 4 зүү, мөрөнд 4 голтой байх шаардлагатай. Хэрхэн скан хийж байна
Дижитал цооног бүхий камер бүтээх: 6 алхам (зурагтай)
Дижитал цоорхойтой камер бүтээгээрэй: Би үргэлж камерын нүхээр зураг хийхийг оролддог байсан, гэхдээ энэ бол миний хэзээ ч хийж байгаагүй зүйлсийн нэг юм. Одоо дижитал камертай болсноор танд сольж болох линз бүхий дижитал линзтэй рефлекс камер хэрэгтэй болно