Obsah:

Cricket Scoreboard using NodeMCU: 9 Steps (with Pictures)
Cricket Scoreboard using NodeMCU: 9 Steps (with Pictures)

Video: Cricket Scoreboard using NodeMCU: 9 Steps (with Pictures)

Video: Cricket Scoreboard using NodeMCU: 9 Steps (with Pictures)
Video: NodeMCU based Live Cricket score board | ESP8266 projects | IoT Projects 2024, Listopad
Anonim
Image
Image
Plán
Plán

Ahoj! Nedávno jsem byl uveden do světa IoT (Internet of Things), protože jsem narazil na nejoblíbenější zařízení v této oblasti, ESP8266. Byl jsem ohromen konečným počtem možností, které toto malé a levné zařízení otevřelo. Jelikož jsem v této oblasti aktuálně nový, rozhodl jsem se vytvořit projekt s jeho využitím a učit se na této cestě. Začal jsem tedy hledat na internetu projekty a nápady.

Narazil jsem na úžasný projekt s názvem Arduino Cricket Score Ticker od W. A. Smitha. V tomto projektu se Arduino spolu s ethernetovým štítem a kartou SD používá k zobrazení živých kriketových skóre od Cricbuzz. Tento projekt mě přiměl přemýšlet.

Pocházím z Indie a první věc, která mě po vyslechnutí Indie napadne, je kriket. Tady je kriket náboženství. Někdy je obtížné sedět u televize a sledovat celý zápas. Proč tedy nevytvořit něco, díky čemu je sledování skóre snadné, bezdrátové a přenosné. Vyhrazené malé zařízení, které zobrazuje dostatečné informace, abyste byli informováni pouhým pohledem.

Nejste fanouškem kriketu? Žádný problém! Kód obsahuje analyzátor XML, který lze použít k získání dat z libovolného souboru XML. K získání dat stačí použít správné funkce.

Krok 1: Plán

Plán
Plán

V plánu je použít NodeMCU Development Board (s modulem ESP-12E) pro přístup na internet a vyžádat si od Cricbuzz kód XML, který obsahuje všechny informace o probíhajících/nadcházejících zápasech. Tento kód je uložen na SD kartu jako soubor.xml. Soubor se poté načte z karty SD a analyzuje požadovaná data z kódu XML. K analýze informací použiji kód W. A. Smithe. Díky jeho úsilí. Podívejte se na jeho projekt, pokud si přejete udělat totéž pomocí Arduino a Ethernet Shield.

Moje představa je zmenšit ji na co nejmenší, postavit pro ni vlastní desku plošných spojů a pouzdro. Prozatím vytvořme prototyp. Nejprve se však seznámíme s komponentami použitými v tomto projektu.

Začněme

Krok 2: OLED displej

OLED displej
OLED displej
OLED displej
OLED displej

Rozhodl jsem se jít s OLED displejem kvůli jeho malým rozměrům a jsou k dispozici levně. Používám 0,96 displej, který bude dostačující pro zobrazení informací o shodě. Můžete použít libovolnou velikost displeje.

Displej, který používám, je monochromatický s ovladačem SSD1306 a rozhraním I2C (2vodičové). K dispozici jsou také SPI verze displeje. Jejich spuštění je snadný úkol. Stáhněte si knihovny SSD1306 a GFX potřebné ke spuštění displejů. Děkujeme společnosti Adafruit za napsání těchto knihoven.

Připojení je velmi jednoduché.

  • GND až GND
  • VCC až 3,3V
  • SCL až D1
  • SDA až D2.

Krok 3: SD karta a adaptér

SD karta a adaptér
SD karta a adaptér

Karta SD ukládá soubor XML z Cricbuzz, dokud nebudou analyzovány všechny informace. Jakmile se zobrazí potřebné informace, soubor se odstraní. Použití karty SD k uložení souboru XML o velikosti 10 - 20 kB je trochu přehnané, ale analýzu je mnohem snazší a srozumitelnější.

Lze použít libovolnou paměťovou kartu. Vybral jsem kartu micro SD pro její malý formát. Můžete přímo pájet vodiče na kartu SD, ale použití odlamovací desky usnadňuje práci. Je třeba poznamenat, že všechny karty SD mají běžet na 3,3 V. To znamená, že by měl být napájen nejen 3,3 V, ale také komunikace mezi mikrokontrolérem a kartou SD musí být na úrovni 3,3 V. Napětí nad 3,3 V to zabije! Nebudeme se tím trápit, pokud jde o NodeMCU, protože samotný NodeMCU běží na 3,3 V, což je v pořádku. Pokud plánujete použít jakýkoli jiný mikrokontrolér s logickou úrovní 5V, ujistěte se, že má vaše breakout deska vestavěný řadič úrovně (Jak je znázorněno na obrázku). V zásadě převádí nebo „přesouvá“5V z mikrokontroléru na 3,3V přátelský k SD kartě. Použití řadiče úrovně spolu s 3,3 V (jak jsem to udělal) nemá vliv na jeho fungování.

Karta SD využívá ke komunikaci rozhraní SPI. Pin CS nebo Chip Select lze připojit k jakémukoli pinu GPIO. Vybral jsem GPIO15 (D8). Pokud jste použili jiný pin než GPIO15, proveďte nezbytné změny v kódu

  • SCK až D5
  • MISO až D6
  • MOSI až D7
  • CS až D8
  • VCC až 3,3V
  • GND až GND

Naformátujte kartu SD

Knihovna, kterou budeme používat, podporuje souborové systémy FAT16 nebo FAT32. Zkontrolujte, zda je karta SD naformátována na správný formát.

Krok 4: Výroba klávesnice

Výroba klávesnice
Výroba klávesnice
Výroba klávesnice
Výroba klávesnice
Výroba klávesnice
Výroba klávesnice

Chci, aby byl projekt co nejmenší. Rozhodl jsem se tedy vytvořit samostatnou desku pro klávesnici a později ji namontovat nad hlavní desku. Tím ušetříte místo.

Lze zakoupit hotovou matici klíčů, ale kolem mě ležely tlačítka. Také jsem to chtěl udělat co nejmenší. Typické uspořádání spojovacích řad a sloupců by vyžadovalo celkem 6 GPIO pinů pro matici 3 x 3. To je docela dost vzhledem k tomu, že bude připojen také OLED displej a SD karta.

Pokud máte pochybnosti, vygooglete to! To jsem udělal a našel způsob, který bude potřebovat pouze 1 pin k ovládání celé matice. To je možné pomocí Voltage Divider Matrix. Rezistory jsou připojeny mezi každý řádek a sloupec. Po stisknutí klávesy se určitá kombinace odporů zapojí do série, což vytvoří dělič napětí. Viz schéma zapojení. Různé napětí bude odečítáno mikrokontrolérem. Každá klávesa produkuje jiné napětí, a tak lze snadno zjistit, která klávesa byla stisknuta, čtením výstupního napětí matice. Protože chceme číst různé úrovně napětí a nyní jen vysoké a nízké, budeme potřebovat analogový pin. Naštěstí je na NodeMCU jeden analogový pin označený jako A0. Problém je vyřešen!

Pokud si přejete koupit matici, podívejte se na vnitřní zapojení uvedená na obrázku. Lze použít matici libovolných rozměrů. Ujistěte se, že mezi řádky použijete odpor 2,2 kΩ a mezi sloupci odpor 680 Ω.

Připojení tlačítek

Piny 1 a 2 jsou interně propojeny. Totéž s piny 3 a 4. Po stisknutí tlačítka jsou všechny piny spojeny dohromady. Viz obrázek, abyste získali představu o připojení přepínačů na perfboard.

Připojil jsem 3kolíkový konektor záhlaví, aby jej bylo možné později připojit k hlavní desce.

Krok 5: Dát vše dohromady

Dát všechno dohromady
Dát všechno dohromady
Dát všechno dohromady
Dát všechno dohromady
Dát všechno dohromady
Dát všechno dohromady

Můžete plánovat umístění komponent kamkoli chcete. Nejsou na to žádná omezení. Ukážu vám, jak jsem to udělal, aby to bylo kompaktní, protože jsem chtěl něco, co se vejde do dlaně. Může to být trochu špinavé, takže zkuste můj způsob, pokud vám vyhovuje pájení. Rozhodl jsem se osadit obě strany desky tak, jak by to mělo být dvouvrstvé PCB. Oddělovací deska NodeMCU a karty SD na jedné straně a OLED a klávesnice na druhé straně.

Prolomení karty SD se náhodou vejde mezi dvě ženské hlavičky, které jsou pro NodeMCU. Odpojil jsem úhlové hlavičky, s nimiž byla spojovací deska dodávána, otočil jsem je a znovu pájel tak, aby kolíky směřovaly kolmo dolů, jak je znázorněno na obrázku. Přístup ke slotu pro kartu SD je snazší.

Ohnul jsem kolíky 4pólové hlavičky v pravém úhlu a připájel ji na měděnou stranu perfboardu, jak je znázorněno na obrázku.

Abyste předešli zkratům, zakryjte pájecí spoje pod klávesnicí. Pro větší ochranu a tuhost přidejte mezi klávesnici a základní desku tenký kousek tvrdé pěny (asi 5 mm silný). Nakonec pájejte klávesnici, kterou jsme vyrobili dříve. Mít páječku se špičatou špičkou vám určitě usnadní práci. Byla to špinavá práce, dělat to co nejkompaktnější, ale nakonec se to podařilo.

Před napájením zařízení zkontrolujte všechna spojení, zda nejsou zkratována

Krok 6: Nastavení klávesnice

Nastavení klávesnice
Nastavení klávesnice

Jakmile zkontrolujete všechna připojení, jste připraveni poprvé napájet zařízení. Zkřížené prsty! Žádný kouzelný kouř? Gratuluji!

Nyní jsme připraveni nastavit klávesnici. Vzpomeňte si na fungování klávesnice. Každé stisknutí klávesy vydá jiné napětí, které je přivedeno na analogový pin NodeMCU. ESP-12E má analogový digitální převodník (ADC) s 10bitovým rozlišením. 2 zvýšený na výkon 10 dá 1024. To znamená, že pro každou stisknutou klávesu získáme hodnotu mezi 0 a 1024. Podívejme se, jaké hodnoty získáváme. Nejprve však musíme napsat malý program, abychom tyto hodnoty získali. Otevřete Arduino IDE, zkopírujte vložte následující kód a nahrajte jej na NodeMCU.

int keypadPin = A0;

neplatné nastavení () {Serial.begin (115200); } void loop () {int r = analogRead (keypadPin); Serial.println (r); }

  • Otevřete sériový monitor. Přenosovou rychlost nastavte na 115200.
  • Nyní stiskněte libovolné tlačítko. Měli byste dostávat konstantní hodnoty na sériovém monitoru. Malé výkyvy jsou v pořádku. O ty bude postaráno v hlavním kódu. Udělejte to samé pro každý klíč.
  • Každý klíč by měl mít jiné čtení.
  • Poznamenejte si všechny hodnoty. Budeme je potřebovat později.

Krok 7: Pojďme kódovat

Pojďme kódovat
Pojďme kódovat
Pojďme kódovat
Pojďme kódovat
Pojďme kódovat
Pojďme kódovat

Stáhněte si níže uvedený soubor Scoreboard.ino do počítače a otevřete jej pomocí Arduino IDE.

Než nahrajete

1) Nastavte čas obnovení výsledkové tabulky. Například 15 litrů na 15 sekund.

2) Zadejte SSID a heslo routeru, ke kterému se chcete připojit.

3) Proveďte nezbytné změny, pokud jste se rozhodli připojit CS pin SD karty k jinému pinu než GPIO15.

4) Pamatujete si hodnoty, které jsme si poznamenali pro všechny klíče? Ke každé hodnotě musíme přiřadit klíčové číslo. Také jsem vám řekl o výkyvech ve čtení. Důvodem je, že kontakty spínače nejsou dokonalé. V dlouhodobém horizontu se tato hodnota může odchylovat od aktuální hodnoty v důsledku stárnutí kontaktů, které přidává další odpor v obvodu, čímž se mění napětí. O tento problém se můžeme postarat v kódu.

Přidáme horní limit a dolní limit hodnoty s rozpětím 5. Například pro klíč 1 jsem získal hodnotu 617.

  • Odečtěte od něj 5. 617 - 5 = 612. Toto je spodní hranice.
  • Nyní k tomu přidejte 5. 617 + 5 = 622. Toto je horní hranice.
  • Přejděte na konec kódu. Vyplňte prostor vyhrazený pro dvě hodnoty v kódu, jak je znázorněno na obrázku.
  • Udělejte to pro každých 9 hodnot.

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

Co to znamená?

POKUD je údaj (r) větší než 612 A menší než 622, pak je stisknuto tlačítko 1. Jakákoli hodnota mezi 612 a 622 bude považována za klíč 1. Tím je vyřešen problém kolísavého čtení.

Krok 8: Sestavení pouzdra

Budování případu
Budování případu
Budování případu
Budování případu
Budování případu
Budování případu
Budování případu
Budování případu

To je zcela volitelné. Myslel jsem, že projekt bude vypadat úhledně a bude doplněn případem kolem něj. Bez vhodných nástrojů pro tuto práci to pro mě bude obrovský úkol. Pouzdro je vyrobeno z akrylátu.

Připravte kousky na lepení vyhlazením hran brusným papírem. Ke spojení všech kusů dohromady jsem použil Fevi Kwik (Super Glue). Super lepidlo zanechává po vytvrzení bílé zbytky. Aplikujte jej tedy pouze mezi klouby. Při práci se super lepidlem musíte být rychlí a přesní, protože rychle tuhne. Pro tuto práci se nejlépe hodí akrylový cement.

Vytvořil malý otvor pro přístup k portu USB pomocí souboru. Mělo by být dostatečně velké, aby bylo možné vložit USB kabel.

Na předním krytu pro tlačítka byla vytvořena mřížka 3x3. Díky tomu bude přístup k tlačítkům obtížný. Abych tento problém vyřešil, pro každou klávesu jsem nařezal hranaté kusy, takže jejich tlačítka jsou nyní rozšířena až na povrch.

Po tolika broušení, řezání, opravách a úpravách bylo konečně hotovo!

Krok 9: Bavte se

Bavte se!
Bavte se!

Nakonec je veškerá tvrdá práce hotová. Zapněte svůj mini scoreboard a zůstaňte s hrou v obraze.

Po zapnutí se nejprve připojí k přístupovému bodu. Inicializuje kartu SD. Pokud není karta SD inicializována, zobrazí se chyba.

Zobrazí se seznam všech zápasů spolu s číslem zápasu.

Pomocí klávesnice vyberte číslo shody.

Zobrazí se skóre. Můžete si přizpůsobit, co všechno chcete na displeji vidět. Nechtěl bych příliš hlouběji vysvětlovat kód. Zde najdete podrobné vysvětlení toho, jak analýza funguje.

Chcete -li se dostat zpět do nabídky, podržte tlačítko ZPĚT (klávesa 8), dokud se nezobrazí stránka „Načítání skóre …“.

Plány do budoucna

  • Navrhněte si vlastní desku plošných spojů s modulem ESP8266 12-E.
  • Přidejte dobíjecí baterii.
  • Vylepšete kód pomocí nových funkcí.

Doufám, že se vám stavba líbila. Vyrobte si to sami a bavte se! Vždy je prostor pro zlepšení a hodně se toho naučit. Přijďte s vlastními nápady. Neváhejte komentovat jakékoli návrhy týkající se stavby. Děkuji, že jste vydrželi až do konce.

Doporučuje: