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

NodeMCU ашиглан крикетийн онооны самбар: 9 алхам (зурагтай)
NodeMCU ашиглан крикетийн онооны самбар: 9 алхам (зурагтай)

Видео: NodeMCU ашиглан крикетийн онооны самбар: 9 алхам (зурагтай)

Видео: NodeMCU ашиглан крикетийн онооны самбар: 9 алхам (зурагтай)
Видео: #3 Таймеры FLProg | ESP32 NodeMCU | Визуальное программирование для Arduino 2024, Долдугаар сарын
Anonim
Image
Image
Төлөвлөгөө
Төлөвлөгөө

Сайн уу? Саяхан би энэ салбарын хамгийн алдартай ESP8266 төхөөрөмжийг олж харснаар IoT (Internet of Things) ертөнцтэй танилцсан юм. Энэхүү жижигхэн, хямд төхөөрөмжөөр нээгдсэн олон тооны боломжууд намайг гайхшруулав. Би одоогоор энэ талаар шинэхэн байгаа тул үүнийг ашиглан төсөл хийж, замдаа суралцахаар шийдлээ. Тиймээс би интернетээс төсөл, санаа хайж эхлэв.

W. A. Smith -ийн Arduino Cricket Score Ticker нэртэй гайхалтай төсөлтэй таарлаа. Энэхүү төсөлд Arduino -ийг Ethernet Shield болон SD картын хамт Cricbuzz -ийн крикетийн оноог шууд харуулахад ашигладаг. Энэ төсөл намайг бодоход хүргэсэн.

Би Энэтхэгээс ирсэн бөгөөд Энэтхэгийг сонссоны дараа хамгийн түрүүнд санаанд ордог зүйл бол Крикет юм. Энд крикет бол шашин юм. Тэмцээнийг бүхэлд нь үзэхийн тулд зурагтын өмнө суух нь заримдаа хэцүү болдог. Тиймээс үзэх оноог хялбар, утасгүй, зөөврийн болгодог зүйл хийж яагаад болохгүй гэж. Таныг нэг хараад л шинэчлэгдэх хангалттай мэдээллийг харуулсан зориулалтын жижиг төхөөрөмж.

Крикет сонирхогч биш үү? Асуудалгүй! Код нь XML задлагчийг агуулдаг бөгөөд үүнийг XML файлаас өгөгдөл авах боломжтой. Өгөгдлийг олж авахын тулд зөв функцийг ашиглана уу.

Алхам 1: Төлөвлөгөө

Төлөвлөгөө
Төлөвлөгөө

Энэхүү төлөвлөгөө нь NodeMCU Хөгжлийн Зөвлөлийг (ESP-12E модультай) ашиглан интернетэд холбогдож, Cricbuzz-аас XML кодыг авахыг хүсч байгаа бөгөөд одоо болж буй/удахгүй болох тоглолтуудын талаархи бүх мэдээллийг агуулсан болно. Энэ кодыг SD карт дээр.xml файл хэлбэрээр хадгална. Дараа нь файлыг SD картаас уншиж XML кодоос шаардлагатай өгөгдлийг задлан шинжилнэ. Би В. А. Смитийн кодыг ашиглан мэдээллийг задлан шинжлэх болно. Түүний хичээл зүтгэлийн ачаар. Хэрэв та Arduino болон Ethernet Shield ашиглан ижил зүйлийг хийхийг хүсч байвал түүний төслийг үзээрэй.

Миний санаа бол үүнийг аль болох жижиг болгож, захиалгат ПХБ, хайрцаг хийх явдал юм. Одоогоор прототип хийцгээе. Гэхдээ эхлээд энэ төсөлд ашигласан бүрэлдэхүүн хэсгүүдтэй танилцъя.

Эхэлцгээе

Алхам 2: OLED дэлгэц

OLED дэлгэц
OLED дэлгэц
OLED дэлгэц
OLED дэлгэц

Хэмжээ багатай тул хямд OLED дэлгэцтэй болохоор шийдсэн. Би 0.96 инчийн дэлгэц ашиглаж байгаа бөгөөд энэ нь тохирох мэдээллийг харуулахад хангалттай байх болно. Та дэлгэцийн дурын хэмжээг ашиглаж болно.

Миний ашиглаж буй дэлгэц нь SSD1306 драйвер, I2C (2 утастай) интерфэйстэй нэг өнгийн дэлгэц юм. Дэлгэцийн SPI хувилбарууд бас байдаг. Тэднийг ажиллуулах нь хялбар ажил юм. Дэлгэцийг ажиллуулахад шаардлагатай SSD1306 болон GFX номын санг татаж авах. Эдгээр номын санг бичсэн Адафрутад баярлалаа.

Холболтууд нь маш энгийн.

  • GND -ээс GND хүртэл
  • VCC 3.3V хүртэл
  • SC1 -ээс D1 хүртэл
  • SDA -аас D2 хүртэл.

Алхам 3: SD карт ба адаптер

SD карт ба адаптер
SD карт ба адаптер

SD карт нь XML файлыг Cricbuzz -аас бүх мэдээллийг задалж дуустал хадгалдаг. Шаардлагатай мэдээллийг харуулсны дараа файл устах болно. SD картыг ашиглан 10 - 20 кБ XML файлыг хадгалах нь арай хэтэрсэн боловч задлан шинжлэхэд илүү хялбар бөгөөд ойлгоход хялбар болгодог.

Аливаа санах ойн картыг ашиглах боломжтой. Би жижиг хэлбэрийн хүчин зүйлээр микро SD картыг сонгосон. Та утсыг SD карт руу шууд гагнах боломжтой боловч таслах самбар ашиглах нь ажлыг хөнгөвчилдөг. Бүх SD карт нь 3.3V хүчдэл дээр ажиллах боломжтой гэдгийг тэмдэглэх нь зүйтэй. Энэ нь зөвхөн 3.3V хүчдэлээр тэжээгддэг төдийгүй микроконтроллер ба SD карт хоорондын холбоо нь 3.3V логик түвшинд байх ёстой гэсэн үг юм. 3.3В -оос дээш хүчдэл нь түүнийг алах болно! NodeMCU нь 3.3V дээр ажилладаг тул NodeMCU -ийн хувьд бид энэ талаар санаа зовохгүй байх болно. Хэрэв та 5V логик түвшинтэй өөр ямар ч микроконтроллер ашиглахаар төлөвлөж байгаа бол таны таслах самбар дээр түвшний шилжүүлэгч суурилуулсан байгаа эсэхийг шалгаарай (Зураг дээр үзүүлсэн шиг). Энэ нь үндсэндээ 5V -ийг микроконтроллероос SD картанд ээлтэй 3.3V болгон хөрвүүлэх эсвэл "шилжүүлэх" болно. Түвшин шилжүүлэгчийг 3.3V (миний хийсэн шиг) хамт ашиглах нь түүний ажилд нөлөөлөхгүй.

SD карт нь SPI интерфэйсийг ашигладаг. CS эсвэл Chip Select зүүг ямар ч GPIO зүү рүү холбож болно. Би GPIO15 (D8) -ийг сонгосон. Хэрэв та GPIO15 -аас өөр зүү ашигласан бол кодоо өөрчлөх шаардлагатай

  • SC5 -ийг D5 болгоно
  • MISO -аас D6 хүртэл
  • MOSI -аас D7 хүртэл
  • CS -ээс D8 хүртэл
  • VCC 3.3V хүртэл
  • GND -ээс GND хүртэл

SD картаа форматлах

Бидний ашиглах номын сан нь FAT16 эсвэл FAT32 файлын системийг дэмждэг. Та SD картаа зөв форматаар форматлаж байгаа эсэхийг шалгаарай.

Алхам 4: Товчлуур хийх

Товчлуур хийх
Товчлуур хийх
Товчлуур хийх
Товчлуур хийх
Товчлуур хийх
Товчлуур хийх

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

Бэлэн түлхүүр матриц худалдаж авах боломжтой боловч надад товчлуурууд байсан. Үүнээс гадна би үүнийг аль болох жижиг болгохыг хүссэн. Мөр багануудыг холбох ердийн зохион байгуулалтанд 3 x 3 матрицад нийт 6 GPIO зүү хэрэгтэй болно. OLED дэлгэц болон SD картыг бас холбох болно гэж үзвэл энэ нь маш их зүйл юм.

Хэрэв эргэлзэж байвал Google -ээс гаргаарай! Энэ бол миний хийсэн зүйл бөгөөд матрицыг бүхэлд нь хянахын тулд ердөө 1 зүү хэрэгтэй болно. Үүнийг хүчдэл хуваагч матриц ашиглан хийх боломжтой болсон. Резисторууд нь мөр ба баганын хооронд холбогдсон байна. Түлхүүр дарахад резисторуудын тодорхой хослолыг цувралаар холбож хүчдэл хуваагч үүсгэдэг. Хэлхээний схемийг үзнэ үү. Янз бүрийн хүчдэлийг микроконтроллер унших болно. Түлхүүр бүр өөр хүчдэл гаргадаг тул матрицын гаралтын хүчдэлийг унших замаар аль товчлуур дарагдсан болохыг хялбархан олж мэдэх боломжтой. Бид янз бүрийн хүчдэлийн түвшинг уншихыг хүсч байгаа бөгөөд одоо зөвхөн өндөр, бага байгаа тул бидэнд аналог зүү хэрэгтэй болно. Аз болоход NodeMCU дээр A0 гэсэн шошготой нэг аналог зүү байдаг. Асуудал шийдэгдэж!

Хэрэв та матриц худалдаж авахыг хүсвэл диаграммд үзүүлсэн дотоод холболтыг шалгана уу. Ямар ч хэмжээтэй матрицыг ашиглаж болно. Мөр хоорондын 2.2 кОм баганын хооронд 680 Ом эсэргүүцэл ашиглахаа мартуузай.

Товчлууруудыг холбох

1 ба 2 -р зүү нь дотооддоо холбогдсон байна. 3 ба 4. тээглүүртэй адилхан. Товчлуурыг дарахад бүх тээглүүр хоорондоо холбогддог. Perfboard дээр унтраалгыг холбох талаар санаа авахын тулд зургийг үзнэ үү.

Би 3 зүүтэй эрэгтэй толгойг холбосон бөгөөд үүнийг дараа нь үндсэн самбартай холбох боломжтой болсон.

Алхам 5: Бүгдийг нэг дор нэгтгэх

Бүх зүйлийг хамтад нь хийх
Бүх зүйлийг хамтад нь хийх
Бүх зүйлийг хамтад нь хийх
Бүх зүйлийг хамтад нь хийх
Бүх зүйлийг хамтад нь хийх
Бүх зүйлийг хамтад нь хийх

Та бүрэлдэхүүн хэсгүүдийг хүссэн газартаа байрлуулахаар төлөвлөж болно. Үүнд хязгаарлалт байхгүй. Би алган дээрээ багтах зүйлийг хүсч байсан тул үүнийг авсаархан болгохын тулд яаж хийснээ танд үзүүлэх болно. Энэ нь жаахан эмх замбараагүй байж магадгүй тул хэрэв та гагнах ажилд тухтай байвал миний аргыг туршиж үзээрэй. Би самбарын хоёр талыг хоёр давхар ПХБ байхаар дүүргэхээр шийдсэн. Нэг талдаа NodeMCU ба SD картыг задлах самбар, нөгөө талд OLED болон товчлуур.

SD картны тасархай нь NodeMCU -ийн хоёр эмэгтэй толгойн хооронд таарч байна. Зураг дээр үзүүлсэн шиг тээглүүр доошоо доошоо буухын тулд би самбарын хамт ирдэг өнцөгт эрэгтэй толгойнуудыг салгаж, эргүүлээд дахин гагнав. SD картны үүрэнд нэвтрэх нь илүү хялбар болно.

Би 4 зүү бүхий эмэгтэй толгойн толгойн зүүг зөв өнцгөөр нугалж, зурган дээр үзүүлсэн шиг перфбордын зэс талд гагнав.

Богино холболтоос сэргийлэхийн тулд товчлуурын доор гагнуурын үеийг таглана. Нэмэлт хамгаалалт, хатуу байдлыг хангахын тулд товчлуур ба үндсэн хавтангийн хооронд нимгэн хатуу хөөс (ойролцоогоор 5 мм зузаан) нэмнэ. Эцэст нь бидний өмнө хийсэн товчлуурыг гагнах. Шовгор үзүүртэй гагнуурын төмртэй болсноор таны ажлыг хөнгөвчлөх нь дамжиггүй. Энэ бол аль болох авсаархан хийх эмх замбараагүй ажил байсан ч эцэст нь үүнийг хийж чадсан юм.

Төхөөрөмжийг асаахаасаа өмнө бүх холболтоо богино холболт байгаа эсэхийг дахин шалгаарай

Алхам 6: Товчлуурыг тохируулах

Товчлуурыг тохируулах
Товчлуурыг тохируулах

Бүх холболтыг шалгасны дараа та төхөөрөмжөө анх удаа асаахад бэлэн байна. Хуруунууд гатлав! Шидэт утаа байхгүй юу? Баяр хүргэе!

Одоо бид товчлуурыг тохируулахад бэлэн байна. Товчлуурын ажиллагааг санаарай. Товчлуур дарах бүр нь NodeMCU -ийн аналог зүүгээр тэжээгддэг өөр хүчдэлийг гаргадаг. ESP-12E нь аналоги тоон хөрвүүлэгчтэй (ADC) 10 битийн нягтралтай. Эрх мэдэлд шилжсэн 2 нь 1024 -ийг өгнө. Энэ нь бид дарагдсан товчлуур бүрийн хувьд 0 -ээс 1024 -ийн хооронд унших болно гэсэн үг юм. Бид ямар уншилт авдаг болохыг харцгаая. Гэхдээ эхлээд эдгээр утгыг олж авахын тулд бид жижиг програм бичих ёстой. Arduino IDE -ийг нээгээд дараах кодыг хуулж NodeMCU руу оруулна уу.

int keypadPin = A0;

void setup () {Serial.begin (115200); } void loop () {int r = analogRead (keypadPin); Serial.println (r); }

  • Цуваа дэлгэцийг нээнэ үү. Бодын хурдыг 115200 болгож тохируулна уу.
  • Одоо ямар ч товчлуурыг дарна уу. Та цуваа дэлгэц дээр тогтмол уншиж байх ёстой. Жижиг хэлбэлзэл зүгээр байна. Эдгээрийг үндсэн кодоор зохицуулах болно. Түлхүүр бүрт ижил зүйлийг хий.
  • Түлхүүр бүр өөр өөр уншилттай байх ёстой.
  • Бүх утгыг тэмдэглэ. Тэд дараа нь бидэнд хэрэгтэй болно.

Алхам 7: Код бичье

Код бичье
Код бичье
Код бичье
Код бичье
Код бичье
Код бичье

Доор үзүүлсэн Scoreboard.ino файлыг компьютер дээрээ татаж аваад Arduino IDE ашиглан нээнэ үү.

Та байршуулахаас өмнө

1) Онооны самбарыг шинэчлэх хугацааг тохируулна уу. Жишээлбэл, 15 сек 15 сек.

2) Холбогдохыг хүсч буй чиглүүлэгчийн SSID болон нууц үгийг оруулна уу.

3) Хэрэв та SD картын CS зүүг GPIO15 -аас өөр зүүтэй холбохоор шийдсэн бол шаардлагатай өөрчлөлтүүдийг хийнэ үү.

4) Бүх түлхүүрүүдийн хувьд бидний тэмдэглэсэн утгыг санаж байна уу? Бид утга тус бүрт түлхүүр дугаар өгөх ёстой. Би бас уншлагын хэлбэлзлийн талаар танд хэлсэн. Энэ нь шилжүүлэгчийн контактууд төгс биш байгаатай холбоотой юм. Урт хугацаанд энэ утга нь контактуудын хөгшрөлтөөс болж одоогийн утгаасаа хазайх боломжтой бөгөөд энэ нь хэлхээнд нэмэлт эсэргүүцэл нэмж хүчдэлийг өөрчилдөг. Бид энэ асуудлыг кодоор шийдвэрлэх боломжтой.

Бид дээд хязгаар, доод хязгаарыг 5 -ийн зөрүүгээр нэмэх болно. Жишээлбэл, би 1 түлхүүрийн хувьд 617 гэсэн заалттай болсон.

  • Үүнээс 5 -ыг хас. 617 - 5 = 612. Энэ бол доод хязгаар юм.
  • Одоо үүнд 5 -г нэмээрэй. 617 + 5 = 622. Энэ бол дээд хязгаар юм.
  • Кодын төгсгөл хүртэл гүйлгэнэ үү. Зураг дээр үзүүлсэн шиг кодын хоёр утгыг заасан зайг бөглөнө үү.
  • Үүнийг 9 утга тутамд хий.

if (r> 612 && r <622) {keyNumber = 1; }

Энэ юу гэсэн үг вэ?

Хэрэв унших (r) нь 612 -с их, 622 -оос бага байвал 1 товчлуур дарагдсан байна. 612 -аас 622 -ийн хоорондох аливаа утгыг түлхүүр 1 гэж үзэх болно. Энэ нь хэлбэлзэлтэй уншилтын асуудлыг шийддэг.

Алхам 8: Хэргийг бүрдүүлэх

Хэргийг бүрдүүлэх
Хэргийг бүрдүүлэх
Хэргийг бүрдүүлэх
Хэргийг бүрдүүлэх
Хэргийг бүрдүүлэх
Хэргийг бүрдүүлэх
Хэргийг бүрдүүлэх
Хэргийг бүрдүүлэх

Энэ нь бүрэн сонголт биш юм. Төсөл нь эргэн тойрныхоо хэргийг цэвэрхэн, бүрэн гүйцэд харагдуулна гэж би бодсон. Энэ ажилд тохирох багаж хэрэгсэл байхгүй бол энэ нь миний хувьд асар том ажил байх болно. Энэ хэргийг акрил ашиглан бүтээжээ.

Зүлгүүр ашиглан ирмэгийг нь тэгшлээд хэсгүүдийг наахад бэлтгэсэн. Би Fevi Kwik (Super Glue) ашиглан бүх хэсгүүдийг нэгтгэсэн. Супер цавуу эдгэрсний дараа цагаан үлдэгдэл үлдээдэг. Тиймээс үүнийг зөвхөн үений хооронд түрхээрэй. Супер цавуугаар ажиллахдаа хурдан, үнэн зөв байх ёстой. Нийлэг цемент нь энэ ажилд хамгийн тохиромжтой.

Файл ашиглан USB порт руу нэвтрэхийн тулд жижиг нээлт хийсэн. Энэ нь USB кабель оруулах хангалттай том хэмжээтэй байх ёстой.

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

Маш их зүлгэж, хайчилж, засаж, тохируулсны эцэст эцэст нь хийлээ!

Алхам 9: Хөгжилтэй байгаарай

Хөгжилтэй байгаарай!
Хөгжилтэй байгаарай!

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

Цахилгаан асаасны дараа эхлээд хандалтын цэг рүү холбогдоно. SD картыг эхлүүлнэ. Хэрэв SD картыг эхлүүлээгүй бол алдаа гарч ирнэ.

Бүх тоглолтын жагсаалтыг тоглолтын дугаарын хамт харуулна.

Товчлуур ашиглан тохирох дугаарыг сонгоно уу.

Оноог харуулах болно. Та дэлгэц дээр харахыг хүссэн бүх зүйлээ тохируулах боломжтой. Би кодыг тайлбарлахад хэтэрхий гүнзгий орохгүй. Та задлан шинжлэх хэрхэн ажилладаг талаар дэлгэрэнгүй тайлбарыг эндээс олж болно.

Цэс рүү буцахын тулд "Fetching Score …" хуудас гарч ирэх хүртэл BACK (Түлхүүр 8) товчийг дарна уу.

Ирээдүйн төлөвлөгөө

  • ESP8266 12-E модулийг ашиглан өөрчлөн тохируулсан ПХБ-ийг зохион бүтээ.
  • Цэнэглэдэг батерей нэмнэ үү.
  • Кодыг шинэ боломжуудаар сайжруулаарай.

Бүтээл танд таалагдсан гэж найдаж байна. Үүнийг өөрөө хийж, хөгжилтэй өнгөрүүлээрэй! Үргэлж сайжруулах орон зай, сурах зүйл их байдаг. Өөрсдийн санаагаа гаргаж ирээрэй. Бүтээн байгуулалтын талаар санал хүсэлтээ чөлөөтэй илэрхийлнэ үү. Эцсээ хүртэл хамт байсанд баярлалаа.

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