Мазмұны:

NodeMCU көмегімен крикет кестесі: 9 қадам (суреттермен)
NodeMCU көмегімен крикет кестесі: 9 қадам (суреттермен)

Бейне: NodeMCU көмегімен крикет кестесі: 9 қадам (суреттермен)

Бейне: NodeMCU көмегімен крикет кестесі: 9 қадам (суреттермен)
Бейне: Введение в плату разработки NodeMCU ESP8266 WiFi с примером HTTP-клиента 2024, Шілде
Anonim
Image
Image
Жоспар
Жоспар

Сәлеметсіз бе! Мен жақында IoT (Интернет заттары) әлемімен таныстырылдым, себебі мен осы саладағы ең танымал ESP8266 құрылғысын кездестірдім. Мен осы кішкентай және арзан құрылғы арқылы ашылған мүмкіндіктердің санына таң қалдым. Мен жаңадан келгендіктен, мен оны қолдана отырып жоба жасап, оны үйренуді шештім. Сонымен, мен Интернеттен жобалар мен идеяларды іздей бастадым.

Мен В. А. Смиттің Arduino Cricket Score Ticker атты керемет жобасын кездестірдім. Бұл жобада Arduino Ethernet Shield және SD картасымен бірге Cricbuzz -тің крикет ұпайларын көрсету үшін қолданылады. Бұл жоба мені ойландырды.

Мен Үндістанмын және Үндістанды естігенде бірінші ойыма Крикет кіреді. Мұнда крикет - бұл дін. Кейде бүкіл матчты бақылау үшін теледидар алдында отыру қиынға соғады. Ендеше, қарап шығуды жеңіл, сымсыз және портативті ететін нәрсе жасамасқа. Кішкене құрылғы, ол сізді бір қарап тұру арқылы жаңартып отыру үшін жеткілікті ақпаратты көрсетеді.

Крикет фанаты емес пе? Проблема жоқ! Кодта кез келген XML файлынан деректерді алу үшін пайдалануға болатын XML талдағышы бар. Деректерді алу үшін дұрыс функцияларды қолданыңыз.

1 -қадам: Жоспар

Жоспар
Жоспар

Жоспар NodeMCU даму тақтасын (ESP-12E модулімен) Интернетке кіру үшін және Cricbuzz-тен ағымдағы/алдағы матчтар туралы барлық ақпаратты қамтитын XML кодын сұрау үшін пайдалану болып табылады. Бұл код SD картасында.xml файлы ретінде сақталады. Содан кейін файл XML кодынан қажетті деректерді талдау үшін SD картасынан оқылады. Мен ақпаратты талдау үшін В. А. Смиттің кодын қолданамын. Оның күш -жігерінің арқасында. Егер сіз Arduino мен Ethernet Shield көмегімен дәл осылай жасағыңыз келсе, оның жобасымен танысыңыз.

Менің ойым - оны мүмкіндігінше кішірейту, оған теңшелетін ПХД мен корпус жасау. Әзірге прототип жасайық. Бірақ алдымен осы жобада қолданылатын компоненттермен танысайық.

Бастайық

2 -қадам: OLED дисплейі

OLED дисплейі
OLED дисплейі
OLED дисплейі
OLED дисплейі

Мен OLED -дисплеймен жүруге шешім қабылдадым, себебі оның өлшемі кішкентай және олар арзан. Мен сәйкестік туралы ақпаратты көрсету үшін жеткілікті болатын 0,96 дюймді қолданамын. Дисплейдің кез келген өлшемін пайдалануға болады.

Мен қолданатын дисплей-бұл SSD1306 драйвері мен I2C (2 сымды) интерфейсі бар монохромды дисплей. Дисплейдің SPI нұсқалары да қол жетімді. Оларды басқару оңай жұмыс. Дисплейлерді іске қосу үшін қажет SSD1306 және GFX кітапханаларын жүктеңіз. Бұл кітапханаларды жазғаны үшін Адафрутқа рахмет.

Қосылымдар өте қарапайым.

  • GND - GND
  • 3.3 В кернеу кернеуі
  • SC1 - D1
  • SDA - D2.

3 -қадам: SD картасы мен адаптер

SD картасы мен адаптері
SD картасы мен адаптері

SD картасы XML файлын Cricbuzz -дан барлық ақпарат талданғанша сақтайды. Қажетті ақпарат көрсетілгеннен кейін файл жойылады. 10 - 20 кБ XML файлын сақтау үшін SD картасын пайдалану біршама асып түседі, бірақ бұл талдауды жеңілдетеді және түсінуді жеңілдетеді.

Кез келген жад картасын пайдалануға болады. Мен шағын формалық фактор үшін micro SD картасын таңдадым. Сіз сымды SD картасына тікелей дәнекерлей аласыз, бірақ сынғыш тақтаны пайдалану жұмысты жеңілдетеді. Айта кету керек, барлық SD карталары 3.3 В кернеуіне арналған. Бұл дегеніміз, ол тек 3.3В кернеуі арқылы ғана емес, сонымен қатар микроконтроллер мен SD картасы арасындағы байланыс логикалық деңгейде 3.3В болуы керек. 3.3В жоғары кернеу оны өлтіреді! Біз NodeMCU -ге қатысты алаңдамаймыз, себебі NodeMCU өзі 3.3V -те жұмыс істейді, бұл жақсы. Егер сіз 5В логикалық деңгейі бар кез келген басқа микроконтроллерді қолдануды жоспарласаңыз, сіздің тақтада деңгейлі ауыстырғыш орнатылғанына көз жеткізіңіз (суретте көрсетілгендей). Ол негізінен 5 вольтты микроконтроллерден SD картасына қолайлы 3.3В -қа түрлендіреді немесе «ауыстырады». 3.3V (мен сияқты) деңгейлік ауыстырғышты пайдалану оның жұмысына әсер етпейді.

SD картасы байланыс үшін SPI интерфейсін қолданады. CS немесе Chip Select түйреуішін GPIO түйреуіштерінің кез келгеніне қосуға болады. Мен GPIO15 (D8) таңдадым. Егер сіз GPIO15 -тен басқа түйреуіш қолдансаңыз, кодқа қажетті өзгертулер енгізіңіз

  • SC5 - D5
  • MISO - D6
  • MOSI - D7
  • CS - D8
  • 3.3 В кернеу кернеуі
  • GND - GND

SD картасын пішімдеңіз

Біз қолданатын кітапхана FAT16 немесе FAT32 файлдық жүйелерін қолдайды. SD картасын дұрыс пішімдеуге көз жеткізіңіз.

4 -қадам: пернетақтаны жасау

Пернетақтаны жасау
Пернетақтаны жасау
Пернетақтаны жасау
Пернетақтаны жасау
Пернетақтаны жасау
Пернетақтаны жасау

Мен жобаны мүмкіндігінше кіші етіп сақтағым келеді. Сондықтан мен пернетақта үшін бөлек тақта жасап, оны кейінірек негізгі тақтаның үстіне орнатуды шештім. Бұл біраз орынды үнемдеуге мүмкіндік береді.

Дайын кілт матрицасын сатып алуға болады, бірақ менде түймелер болды. Сонымен қатар, мен оны мүмкіндігінше кішірейткім келді. Жолдар мен бағандарды қосудың әдеттегі орналасуы 3 х 3 матрицасы үшін барлығы 6 GPIO түйреуішін қажет етеді. OLED дисплейі мен SD картасы қосылатынын ескерсек, бұл өте көп.

Күмәндансаңыз, Google шешіңіз! Мен мұны жасадым және бүкіл матрицаны басқару үшін тек 1 түйреуіш қажет болатын жолды таптым. Бұл кернеуді бөлу матрицасының көмегімен мүмкін болды. Резисторлар әр жол мен баған арасында қосылады. Пернені басқан кезде резисторлардың белгілі бір комбинациясы тізбектей қосылады, бұл кернеу бөлгішін жасайды. Электр схемасын қараңыз. Әр түрлі кернеуді микроконтроллер оқиды. Әр кілт әр түрлі кернеуді шығарады, сондықтан матрицаның шығыс кернеуін оқу арқылы қай перне басылғанын оңай табуға болады. Біз кернеудің әртүрлі деңгейлерін оқығымыз келетіндіктен, енді жоғары және төмен болғандықтан, бізге аналогтық түйреуіш қажет болады. Бақытымызға орай, NodeMCU -де A0 деп белгіленген бір аналогтық түйреуіш бар. Мәселе шешілді!

Егер сіз матрицаны сатып алғыңыз келсе, диаграммада көрсетілген ішкі байланыстарды тексеріңіз. Кез келген өлшемдегі матрицаны қолдануға болады. Жолдар арасында 2,2 кОм және бағандар арасында 680 Ом резисторды қолданғаныңызға көз жеткізіңіз.

Басу түймелерін қосу

1 және 2 түйреуіштер ішкі байланысты. 3 және 4 түйреуіштермен бірдей. Түйме басылған кезде, барлық түйреуіштер бір -біріне қосылады. Пернетақтадағы қосқыштарды қосу туралы түсінік алу үшін суретке қараңыз.

Мен кейінірек негізгі тақтаға қосылу үшін 3 істікшелі ерлердің үстіңгі тақтасын қостым.

5 -қадам: Барлығын біріктіру

Барлығын біріктіру
Барлығын біріктіру
Барлығын біріктіру
Барлығын біріктіру
Барлығын біріктіру
Барлығын біріктіру

Сіз компоненттерді қалаған жерге орналастыруды жоспарлай аласыз. Оған ешқандай шектеулер жоқ. Мен саған оны алақанға сыйғызатын нәрсені қалайтындықтан жинақы ету үшін қалай істегенімді көрсетемін. Бұл сәл шатасуы мүмкін, сондықтан егер сіз дәнекерлеуге ыңғайлы болсаңыз, менің жолымды сынап көріңіз. Мен тақтаның екі жағын екі қабатты ПХД болатындай толтыруды шештім. Бір жағында NodeMCU мен SD картасының ажырату тақтасы, екінші жағында OLED мен пернетақта.

SD картасының үзілуі NodeMCU үшін екі әйел тақырыбына сәйкес келеді. Мен бұрандалы тақтаймен бірге келген бұрандалы ерлердің бастарын алып тастадым, оны айналдырдым және түйреуіштер суретте көрсетілгендей перпендикуляр төмен қарай түсетін етіп қайта дәнекерледім. SD картасының ұясына кіру оңайырақ болады.

Мен 4 істікшелі аналық бастың түйреуіштерін тік бұрышта бүктеп, суретте көрсетілгендей перфордалық тақтаның мыс жағына дәнекерледім.

Қысқа тұйықталуды болдырмау үшін дәнекерленген қосылыстарды пернетақтаның астына жабыңыз. Қосымша қорғау мен қаттылық үшін пернетақта мен тақтаның арасына қатты көбіктің жұқа бөлігін (қалыңдығы шамамен 5 мм) қосыңыз. Ақырында, біз бұрын жасаған пернетақтаны дәнекерлеңіз. Ұшы бар дәнекерлеу үтікінің болуы сіздің жұмысты жеңілдететіні сөзсіз. Бұл жұмысты мүмкіндігінше ықшам етіп жасау, бірақ ақырында жасай алды.

Құрылғыны қоспас бұрын барлық қосылымдарды қысқа тұйықталуға тексеріңіз

6 -қадам: Пернетақтаны орнату

Пернетақтаны орнату
Пернетақтаны орнату

Барлық қосылымдарды тексергеннен кейін, сіз құрылғыны бірінші рет қосуға дайынсыз. Саусақтар қиылды! Сиқырлы түтін жоқ па? Құттықтаймын!

Енді біз пернетақтаны орнатуға дайынбыз. Пернетақтаның жұмысын еске түсіріңіз. Әр пернені басу NodeMCU аналогтық істігіне берілетін басқа кернеуді шығарады. ESP-12E 10-разрядты аналогты-сандық түрлендіргішке (ADC) ие. 2 -ге 10 көтерілсе, 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 PIN кодын 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 сымын салу үшін жеткілікті үлкен болуы керек.

Түймешіктер үшін алдыңғы қақпақта 3x3 тор жасалды. Бұл батырмаларға кіруді қиындатады. Бұл мәселені шешу үшін мен әр перненің төртбұрышты бөліктерін кесіп тастадым, сондықтан олардың түймелері енді бетіне дейін созылады.

Осыншама тегістеу, кесу, бекіту және баптаудан кейін ақыры жасалды!

9 -қадам: Көңілді болыңыз

Масайрау!
Масайрау!

Ақырында, барлық ауыр жұмыс орындалады. Шағын таблоны қосыңыз және ойыннан жаңарып отырыңыз.

Қосылғаннан кейін ол алдымен кіру нүктесіне қосылады. SD картасын инициализациялайды. Егер SD картасы инициализацияланбаса, ол қатені көрсетеді.

Барлық матчтардың тізімі матч нөмірімен бірге көрсетіледі.

Пернетақтаны пайдаланып сәйкестік нөмірін таңдаңыз.

Ұпайлар көрсетіледі. Сіз дисплейде көргіңіз келетін барлық нәрсені реттей аласыз. Мен кодты түсіндіруге тым терең кірмес едім. Бұл жерде талдаудың қалай жұмыс істейтіні туралы толық түсініктеме алуға болады.

Мәзірге оралу үшін «Ұпайларды алу …» беті шыққанша BACK (8 пернесі) түймесін басып тұрыңыз.

Болашақ жоспарлар

  • ESP8266 12-E модулімен теңшелетін ПХД құрастырыңыз.
  • Қайта зарядталатын батареяны қосыңыз.
  • Кодты жаңа мүмкіндіктермен жетілдіріңіз.

Сізге құрылыс ұнады деп үміттенемін. Оны өзіңіз жасаңыз және көңілді болыңыз! Әрқашан жақсартуға және үйренуге көп орын бар. Өз ойларыңызбен шығыңыз. Құрылысқа қатысты кез -келген ұсыныстарға түсініктеме беріңіз. Соңына дейін ұстағандарыңызға рахмет.

Ұсынылған: