Съдържание:
- Стъпка 1: Планът
- Стъпка 2: OLED дисплей
- Стъпка 3: SD карта и адаптер
- Стъпка 4: Направете клавиатурата
- Стъпка 5: Съберете всичко заедно
- Стъпка 6: Настройване на клавиатурата
- Стъпка 7: Нека кодираме
- Стъпка 8: Изграждане на случая
- Стъпка 9: Забавлявайте се
Видео: Табло за крикет с помощта на NodeMCU: 9 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:54
Здравейте! Наскоро бях представен в света на IoT (Интернет на нещата), когато попаднах на най -популярното устройство в тази област, ESP8266. Бях изумен от крайния брой възможности, които се отвориха от това малко и евтино устройство. Тъй като в момента съм нов в това, реших да направя проект, използвайки го и да уча по пътя. И така, започнах да търся в интернет проекти и идеи.
Попаднах на невероятен проект, наречен Arduino Cricket Score Ticker на W. A. Smith. В този проект Arduino заедно с Ethernet Shield и SD картата се използват за показване на резултати от крикет на живо от Cricbuzz. Този проект ме накара да се замисля.
Аз съм от Индия и първото нещо, което ми идва наум, след като чуя Индия, е крикетът. Тук крикетът е религия. Понякога става трудно да седнеш пред телевизор, за да следиш целия мач. Така че, защо не направите нещо, което прави гледането на резултата лесно, безжично и преносимо. Специално миниатюрно устройство, което показва достатъчно информация, за да ви държи в течение само с един поглед към него.
Не сте фен на крикет? Няма проблем! Кодът съдържа XML анализатора, който може да се използва за получаване на данни от всеки XML файл. Просто използвайте правилните функции, за да получите данните.
Стъпка 1: Планът
Планът е да използвате борда за развитие на NodeMCU (с модул ESP-12E) за достъп до интернет и да поискате XML кода от Cricbuzz, който съдържа цялата информация за текущите/предстоящите мачове. Този код се записва на SD картата като.xml файл. След това файлът се чете от SD картата, за да анализира необходимите данни от XML кода. Ще използвам кода на W. A. Smith, за да анализирам информацията. Благодарение на неговите усилия. Вижте неговия проект, ако искате да направите същото с помощта на Arduino и Ethernet Shield.
Идеята ми е да го направя възможно най -малък, да създам персонализирана печатна платка и кутия за нея. Засега нека направим прототип. Но първо, нека се запознаем с компонентите, използвани в този проект.
Да започваме
Стъпка 2: OLED дисплей
Реших да отида с OLED дисплей поради малкия му размер и те се предлагат евтино. Използвам 0,96 -инчов дисплей, който ще бъде достатъчен за показване на информацията за съвпадението. Можете да използвате произволен размер на дисплея.
Дисплеят, който използвам, е монохромен с драйвер SSD1306 и I2C (2-жичен) интерфейс. Предлагат се и SPI версии на дисплея. Управлението им е лесна задача. Изтеглете библиотеките SSD1306 и GFX, необходими за стартиране на дисплеите. Благодаря на Adafruit за написването на тези библиотеки.
Връзките са много прости.
- GND към GND
- VCC до 3.3V
- SCL към D1
- SDA към D2.
Стъпка 3: SD карта и адаптер
SD картата съхранява XML файла от Cricbuzz, докато цялата информация не бъде анализирана. След като се покаже необходимата информация, файлът се изтрива. Използването на SD карта за съхранение на 10 - 20 kB XML файл е малко пресилено, но прави анализирането много по -лесно и лесно за разбиране.
Може да се използва всяка карта с памет. Избрах micro SD карта за малкия й форм -фактор. Можете директно да запоявате проводници към SD картата, но използването на пробивна платка улеснява работата. Трябва да се отбележи, че всички SD карти са предназначени да работят на 3.3V. Това означава, че не само той трябва да се захранва с 3.3V, но и комуникацията между микроконтролера и SD картата трябва да бъде 3.3V логическо ниво. Напрежението над 3.3V ще го УБИЕ! Няма да се притесняваме за това, що се отнася до NodeMCU, защото самият NodeMCU работи на 3.3V, което е добре. Ако планирате да използвате друг микроконтролер с 5V логическо ниво, уверете се, че вашата пробивна платка има вграден превключвател за ниво (Както е показано на снимката). Той основно преобразува или „премества“5V от микроконтролера в 3.3V, удобен за SD карта. Използването на превключвател на нива заедно с 3.3V (както направих аз) не влияе на работата му.
SD картата използва SPI интерфейс за комуникация. CS или Chip Select пин може да бъде свързан към всеки от GPIO пиновете. Избрах GPIO15 (D8). Просто направете необходимите промени в кода, ако сте използвали пин, различен от GPIO15
- SCK към D5
- MISO към D6
- MOSI към D7
- CS до D8
- VCC до 3.3V
- GND към GND
Форматирайте вашата SD карта
Библиотеката, която ще използваме, поддържа файлови системи FAT16 или FAT32. Уверете се, че сте форматирали SD картата в правилния формат.
Стъпка 4: Направете клавиатурата
Искам да запазя проекта възможно най -малък. Затова реших да направя отделна платка за клавиатурата и да я монтирам над основната платка по -късно. Това ще спести малко място.
Готова матрица за ключове може да бъде закупена, но имах бутони, които лежаха наоколо. Също така исках да го направя възможно най -малък. Типично подреждане на свързващи редове и колони ще се нуждае от общо 6 GPIO пина за 3 x 3 матрица. Това е доста, като се има предвид, че OLED дисплеят и SD картата също ще бъдат свързани.
Когато се съмнявате, изпробвайте го! Това направих и намерих начин, който ще се нуждае само от 1 пин за управление на цялата матрица. Това става възможно с помощта на матрица на делителя на напрежение. Резисторите са свързани между всеки ред и колона. Когато се натисне клавиш, определена комбинация от резистори се свързва последователно, което създава делител на напрежение. Вижте електрическата схема. Променливото напрежение ще бъде отчетено от микроконтролера. Всеки ключ ще произвежда различно напрежение и по този начин може лесно да се установи кой клавиш е натиснат, като се прочете изходното напрежение на матрицата. Тъй като искаме да четем различни нива на напрежение и сега само високи и ниски, ще ни трябва аналогов щифт. За щастие има един аналогов щифт, означен като A0 на NodeMCU. Проблема решен!
Ако искате да закупите матрица, проверете вътрешните връзки, показани на диаграмата. Може да се използва матрица с всякакви размери. Уверете се, че използвате резистор 2.2kΩ между редовете и 680Ω резистор между колоните.
Свързване на бутони
Изводи 1 и 2 са вътрешно свързани. Същото е с щифтове 3 и 4. Когато бутонът е натиснат, всички щифтове са свързани заедно. Вижте снимката, за да добиете представа за свързването на превключвателите на перфорирана дъска.
Свързах 3-пинов мъжки хедър, за да може по-късно да се свърже с основната платка.
Стъпка 5: Съберете всичко заедно
Можете да планирате да поставите компонентите където пожелаете. Няма ограничения за него. Ще ви покажа как го направих, за да го направя компактен, тъй като исках нещо, което да се побере в дланта. Може да стане малко объркано, така че опитайте по моя начин, ако сте доволни от запояването. Реших да запълня двете страни на дъската, както би било двуслойна печатна платка. NodeMCU и SD карта за разбиване от едната страна и OLED и клавиатурата от другата страна.
Пробивът на SD картата просто се вписва между двете женски заглавки, които са за NodeMCU. Разпаявах ъгловите мъжки заглавки, с които се предлагаше пробивната дъска, завъртях я и отново запоявам така, че щифтовете да вървят перпендикулярно надолу, както е показано на снимката. Достъпът до слота за SD карта става по -лесен.
Огънах щифтовете на 4-пинов женски хедър под прав ъгъл и го запоявах от медната страна на перфорираната дъска, както е показано на снимката.
Покрийте спойките под клавиатурата, за да предотвратите късо съединение. Добавете тънко парче твърда пяна (с дебелина около 5 мм) между клавиатурата и дънната платка за допълнителна защита и твърдост. И накрая, запоявайте клавиатурата, която направихме по -рано. Наличието на поялник със заострен връх със сигурност ще улесни работата ви. Беше объркана работа, която го направи възможно най -компактен, но накрая успя да го свърши.
Проверете отново всичките си връзки за къси съединения, преди да включите устройството
Стъпка 6: Настройване на клавиатурата
След като проверите всички връзки, сте готови да включите устройството си за първи път. Стискам палци! Няма вълшебен дим? Поздравления!
Сега сме готови да настроим клавиатурата. Припомнете работата на клавиатурата. Всяко натискане на клавиш ще извежда различно напрежение, което се подава към аналоговия щифт на NodeMCU. ESP-12E има аналогово-цифров преобразувател (ADC) с 10-битова резолюция. 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) Задайте времето за опресняване на таблото. Например 15L за 15 секунди.
2) Въведете SSID и паролата на рутера, за да желаете да се свържете.
3) Направете необходимите промени, ако сте избрали да свържете CS щифт на SD карта към пин, различен от GPIO15.
4) Спомнете си стойностите, които записахме за всички клавиши? Трябва да зададем номер на ключ за всяка стойност. Бях ви разказал и за колебанията в четенето. Това се дължи на това, че контактите на превключвателя не са перфектни. В дългосрочен план тази стойност може да се отклони от текущата стойност поради стареенето на контактите, което добавя допълнително съпротивление във веригата, като по този начин променя напрежението. Можем да се погрижим за този проблем в кода.
Ще добавим горна граница и долна граница на стойността с марж 5. Например получих показание 617 за ключ 1.
- Извадете 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 (Супер лепило), за да съединя всички парчета заедно. Супер лепилото оставя бял остатък след втвърдяване. Така че, прилагайте го само между ставите. Трябва да сте бързи и точни, когато работите със супер лепило, тъй като то бързо се втвърдява. Акрилният цимент е най -подходящ за тази работа.
Направих малък отвор за достъп до USB порта с помощта на файл. Тя трябва да бъде достатъчно голяма, за да поставите USB кабела.
Създадена е 3x3 решетка на предния капак за бутоните. Това ще затрудни достъпа на бутоните. За да разреша този проблем, изрязах квадратни парчета за всеки клавиш, така че техните бутони сега са разширени до повърхността.
След толкова много шлайфане, рязане, фиксиране и регулиране най -накрая беше направено!
Стъпка 9: Забавлявайте се
Накрая цялата упорита работа е свършена. Включете мини таблото и бъдете в течение с играта.
След включване първо се свързва с точката за достъп. Инициализира SD картата. Той ще покаже грешка, ако SD картата не е инициализирана.
Ще се покаже списък с всички съвпадения заедно с номера на мача.
Изберете номера на съвпадението с клавиатурата.
Резултатите ще бъдат показани. Можете да персонализирате какво искате да виждате на дисплея. Не бих се задълбочил в обясняването на кода. Тук можете да намерите подробно обяснение как работи синтактичният анализ.
За да се върнете в менюто, задръжте бутона НАЗАД (клавиш 8), докато се покаже страницата "Извличане на резултати …".
Бъдещи планове
- Проектирайте персонализирана печатна платка с модула ESP8266 12-E.
- Добавете акумулаторна батерия.
- Подобрете кода с нови функции.
Надявам се изграждането да ви е харесало. Направете го сами и се забавлявайте! Винаги има място за подобрения и много за научаване. Измислете свои собствени идеи. Чувствайте се свободни да коментирате всякакви предложения относно изграждането. Благодаря ви, че останахте до края.
Препоръчано:
Направи си сам табло за дейности с кламери - ПРОИЗВОДИТЕЛ - STEM: 3 стъпки (със снимки)
Направи си сам табло за дейности с кламери | ПРОИЗВОДИТЕЛ | STEM: С този проект можете да промените пътя на електрическия ток, за да преминава през различни сензори. С този дизайн можете да превключвате между запалване на син светодиод или активиране на зумер. Освен това имате избор да използвате светлозависим резистор с
Табло за управление на COVID19 на картата на света (с помощта на Python): 16 стъпки
Табло за управление на COVID19 на картата на света (с помощта на Python): Знам, че почти всички ние знаем най-много информация за COVID19. И тази инструкция е за създаване на балон карта, за нанасяне на данни в реално време (на случаи) на картата на света. За повече удобство , добавих програмата към хранилището на Github: https: //github.co
Проследяване на живо Covid19 с помощта на ESP8266 и OLED - Табло за управление в реално време Covid19: 4 стъпки
Проследяващ Covid19 на живо с помощта на ESP8266 и OLED | Табло за управление в реално време Covid19: Посетете уебсайта на Techtronic Harsh: http: //techtronicharsh.com Навсякъде има огромно огнище на новия коронавирус (COVID19). Наложи се да се следи настоящият сценарий на COVID-19 в света. Така че, като бях у дома, това беше п
Как да направите уебсайт на табло за съобщения с помощта на PHP и MYSQL: 5 стъпки
Как да направите уебсайт на табло за съобщения, използвайки PHP и MYSQL: Тази инструкция ще ви покаже как да създадете уебсайт на табло за съобщения, използвайки php, mysql, html и css. Ако сте нов в уеб разработката, не се притеснявайте, ще има подробни обяснения и аналогии, за да може да разберете по -добре концепциите. Мат
Електронна игра за крикет: 24 стъпки (със снимки)
Електронна игра за крикет: Изградете своя собствена електронна, ръчна игра за крикет. Мачовете по тест за крикет са известни с това, че се играят над 5 дни, а понякога все още няма победител - 5 дни !!! Мисля, че трябва да сте възпитани да гледате мачове по крикет по телевизията и да играете га