INHOUDSOPGAWE:

Krieket -telbord met behulp van NodeMCU: 9 stappe (met prente)
Krieket -telbord met behulp van NodeMCU: 9 stappe (met prente)

Video: Krieket -telbord met behulp van NodeMCU: 9 stappe (met prente)

Video: Krieket -telbord met behulp van NodeMCU: 9 stappe (met prente)
Video: begini cara pasang pzem-017 yang benar 2024, Julie
Anonim
Image
Image
Die plan
Die plan

Hallo! Ek het onlangs kennis gemaak met die wêreld van IoT (Internet of Things), aangesien ek die gewildste toestel op hierdie gebied, ESP8266, teëgekom het. Ek was verbaas oor die aantal moontlikhede wat hierdie klein en goedkoop toestel oopgemaak het. Aangesien ek tans nuut hieroor is, het ek besluit om 'n projek daaroor te maak en onderweg te leer. Ek het dus op die internet begin soek na projekte en idees.

Ek het op 'n wonderlike projek afgekom, genaamd Arduino Cricket Score Ticker deur W. A. Smith. In hierdie projek word Arduino, saam met Ethernet Shield en SD -kaart gebruik om lewendige krieket tellings van Cricbuzz te vertoon. Hierdie projek het my laat dink.

Ek is van Indië en die eerste ding wat ek by my opkom nadat ek Indië gehoor het, is krieket. Hier is krieket godsdiens. Dit word soms moeilik om voor die TV te sit om die hele wedstryd te volg. Dus, waarom maak u nie iets wat die kykresultate maklik, draadloos en draagbaar maak nie. 'N Spesiale klein toestel wat voldoende inligting bevat om u op hoogte te hou met 'n blik daarop.

Nie 'n krieketliefhebber nie? Geen probleem! Die kode bevat die XML -ontleder wat gebruik kan word om data uit enige XML -lêer te kry. Gebruik net die korrekte funksies om die data te kry.

Stap 1: Die plan

Die plan
Die plan

Die plan is om die NodeMCU Development Board (met ESP-12E-module) te gebruik om toegang tot die internet te verkry en die XML-kode van Cricbuzz aan te vra, wat al die inligting bevat oor die aanstaande/komende wedstryde. Hierdie kode word op die SD -kaart gestoor as 'n.xml -lêer. Die lêer word dan vanaf die SD -kaart gelees om die vereiste data uit die XML -kode te ontleed. Ek sal die kode van W. A. Smith gebruik om die inligting te ontleed. Danksy sy pogings. Kyk na sy projek as u dieselfde wil maak met Arduino en Ethernet Shield.

My idee is om dit so klein moontlik te maak, 'n pasgemaakte PCB en 'n saak daarvoor te bou. Laat ons vir eers 'n prototipe maak. Maar eers, laat ons kennis maak met die komponente wat in hierdie projek gebruik word.

Laat ons begin

Stap 2: OLED -skerm

OLED -skerm
OLED -skerm
OLED -skerm
OLED -skerm

Ek het besluit om met 'n OLED -skerm te gaan vanweë die klein grootte, en dit is goedkoop beskikbaar. Ek gebruik 'n 0,96 skerm wat voldoende is om die wedstrydinligting te vertoon. U kan enige grootte van die skerm gebruik.

Die skerm wat ek gebruik, is monochroom met die SSD1306-bestuurder en I2C (2-draads) koppelvlak. SPI -weergawes van die skerm is ook beskikbaar. Dit is 'n maklike taak om hulle te bestuur. Laai die SSD1306- en GFX -biblioteke af wat nodig is om die skerms uit te voer. Dankie aan Adafruit vir die skryf van hierdie biblioteke.

Verbindings is baie eenvoudig.

  • GND tot GND
  • VCC tot 3.3V
  • SCL na D1
  • SDA tot D2.

Stap 3: SD -kaart en adapter

SD -kaart en adapter
SD -kaart en adapter

SD -kaart stoor die XML -lêer van Cricbuzz totdat al die inligting ontleed is. Nadat die nodige inligting vertoon is, word die lêer uitgevee. Die gebruik van 'n SD -kaart om 'n 10 - 20 kB XML -lêer te stoor is 'n bietjie te veel, maar dit maak die ontleding baie makliker en makliker om te verstaan.

Enige geheue kaart kan gebruik word. Ek het 'n mikro -SD -kaart gekies vir sy klein vormfaktor. U kan drade direk aan die SD -kaart soldeer, maar die gebruik van 'n uitbreekbord maak die taak maklik. Daar moet op gelet word dat alle SD -kaarte bedoel is om op 3.3V te werk. Dit beteken dat dit nie net aangedryf moet word met behulp van 3.3V nie, maar dat die kommunikasie tussen mikrobeheerder en SD -kaart 3.3V logies moet wees. Spanning bo 3.3V sal dit doodmaak! Wat NodeMCU betref, sal ons ons nie daaraan steur nie, want NodeMCU werk self op 3.3V, wat goed is. As u van plan is om 'n ander mikrobeheerder met 'n 5V logiese vlak te gebruik, moet u seker maak dat u uitbreekbord 'n vlakverskuiwing ingebou het (soos op die foto getoon). Dit skakel basies die 5V om van die mikrobeheerder na 'n SD -kaartvriendelike 3.3V. Die gebruik van vlakversneller saam met 3.3V (soos ek) het geen invloed op die werking daarvan nie.

SD -kaart gebruik SPI -koppelvlak vir kommunikasie. CS of Chip Select -pen kan aan enige van die GPIO -penne gekoppel word. Ek het GPIO15 (D8) gekies. Maak net die nodige veranderinge in die kode as u 'n ander pen as GPIO15 gebruik het

  • SCK na D5
  • MISO tot D6
  • MOSI tot D7
  • CS tot D8
  • VCC tot 3.3V
  • GND tot GND

Formateer u SD -kaart

Die biblioteek wat ons gaan gebruik, ondersteun FAT16- of FAT32 -lêerstelsels. Maak seker dat u die SD -kaart in die regte formaat formateer.

Stap 4: Maak die sleutelbord

Maak die sleutelbord
Maak die sleutelbord
Maak die sleutelbord
Maak die sleutelbord
Maak die sleutelbord
Maak die sleutelbord

Ek wil die projek so klein as moontlik hou. Daarom het ek besluit om 'n aparte bord vir die bedieningspaneel te maak en dit later bo die hoofbord te monteer. Dit sal ruimte bespaar.

U kan 'n klaargemaakte sleutelmatriks koop, maar ek het drukknoppies gehad. Ek wou dit ook so klein moontlik maak. 'N Tipiese rangskikking om rye en kolomme te verbind, benodig 'n totaal van 6 GPIO -penne vir 3 x 3 matriks. Dit is baie, aangesien die OLED -skerm en die SD -kaart ook gekoppel sal word.

As u twyfel, soek dit! Dit is wat ek gedoen het en 'n manier gevind wat slegs 1 speld nodig het om die hele matriks te beheer. Dit word moontlik gemaak met behulp van Voltage Divider Matrix. Weerstande is verbind tussen elke ry en kolom. As 'n sleutel ingedruk word, word 'n sekere kombinasie van weerstande in serie gekoppel wat 'n spanningsverdeler skep. Verwys na die kringdiagram. Die wisselende spanning sal deur die mikrobeheerder gelees word. Elke sleutel sal 'n ander spanning produseer, en sodoende kan maklik gevind word watter sleutel ingedruk is deur die uitgangsspanning van die matriks te lees. Aangesien ons verskillende spanningsvlakke wil lees en nou net hoog en laag is, benodig ons 'n analoog pen. Gelukkig is daar 'n analoog pen gemerk as A0 op NodeMCU. Probleem opgelos!

As u 'n matriks wil koop, kyk na die interne verbindings wat in die diagram getoon word. 'N Matriks van enige afmetings kan gebruik word. Maak seker dat u 'n weerstand van 2,2 kΩ tussen die rye en 'n weerstand van 680Ω tussen die kolomme gebruik.

Verbind drukknoppies

Spelde 1 en 2 is intern verbind. Dieselfde met penne 3 en 4. As die knoppie ingedruk word, word al die penne aan mekaar verbind. Verwys na die prentjie om 'n idee te kry van die koppeling van die skakelaars op 'n perfboard.

Ek het 'n 3-pins manlike kopkop gekoppel sodat dit later aan die hoofbord gekoppel kan word.

Stap 5: Alles saamvoeg

Alles aanmekaar sit
Alles aanmekaar sit
Alles aanmekaar sit
Alles aanmekaar sit
Alles aanmekaar sit
Alles aanmekaar sit

U kan die komponente beplan waar u wil. Geen beperkings daarop nie. Ek sal jou wys hoe ek dit gedoen het om dit kompak te maak, want ek wou iets hê wat in die palm pas. Dit kan 'n bietjie deurmekaar raak, so probeer my pad as u gemaklik is met soldeer. Ek het besluit om beide kante van die bord te vul, soos 'n tweelaagse PCB sou wees. NodeMCU en SD -kaart uitbreekbord aan die een kant en OLED en toetsbord aan die ander kant.

Die uitbreek van die SD -kaart pas net tussen die twee vroulike opskrifte wat vir die NodeMCU is. Ek het die hoekige manlike koppe waarmee die uitbreekbord gekom het, ontsoldeer, dit gedraai en weer gesoldeer sodat die penne loodreg na onder gaan soos in die prentjie getoon. Dit word makliker om toegang tot die SD -kaartgleuf te kry.

Ek het die penne van 'n 4-pins vroulike kopstuk in 'n regte hoek gebuig en aan die koperkant van die perfboard gesoldeer, soos op die prentjie getoon.

Bedek die soldeerverbindings onder die klavier om kortsluitings te voorkom. Voeg 'n dun stuk harde skuim (ongeveer 5 mm dik) tussen die bedieningspaneel en die hoofbord vir ekstra beskerming en styfheid. Soldeer uiteindelik die bedieningspaneel wat ons vroeër gemaak het. Om 'n soldeerbout met 'n puntige punt te hê, sal u werk beslis maklik maak. Dit was 'n morsige taak om dit so kompak as moontlik te maak, maar het dit uiteindelik reggekry.

Kontroleer al u verbindings op enige kortsluitings voordat u die toestel aanskakel

Stap 6: Die opstel van die sleutelbord

Die opstel van die sleutelbord
Die opstel van die sleutelbord

Nadat u al die verbindings nagegaan het, is u gereed om u toestel vir die eerste keer aan te skakel. Hou duim vas! Geen magiese rook nie? Geluk!

Nou is ons gereed om die bedieningspaneel op te stel. Onthou die werking van die klavier. Elke druk op die toets sal 'n ander spanning lewer wat na die analoog pen van NodeMCU gevoer word. ESP-12E het 'n analoog na digitale omskakelaar (ADC) met 'n resolusie van 10 bis. 2 verhoog tot 10, sal 1024 gee. Dit beteken dat ons 'n lesing sal kry tussen 0 en 1024 vir elke ingedrukte toets. Kom ons kyk watter lesings ons kry. Maar eers moet ons 'n klein program skryf om die waardes te kry. Maak Arduino IDE oop, kopieer plak die volgende kode en laai dit op na NodeMCU.

int sleutelbordPin = A0;

ongeldige opstelling () {Serial.begin (115200); } leemte lus () {int r = analogRead (sleutelbordPin); Serial.println (r); }

  • Maak die reeksmonitor oop. Stel die baud -tempo op 115200.
  • Druk nou op enige knoppie. U moet konstant op die seriële monitor lees. Klein skommelinge is goed. Dit word in die hoofkode versorg. Doen dieselfde vir elke sleutel.
  • Elke sleutel moet 'n ander lesing hê.
  • Skryf al die waardes neer. Ons sal hulle later nodig hê.

Stap 7: Kom ons kodeer

Kom ons kodeer
Kom ons kodeer
Kom ons kodeer
Kom ons kodeer
Kom ons kodeer
Kom ons kodeer

Laai die Scoreboard.ino -lêer hieronder op u rekenaar af en maak dit oop met die Arduino IDE.

Voordat jy oplaai

1) Stel die herlaai tyd vir die telbord in. Byvoorbeeld, 15L vir 15 sekondes.

2) Voer die SSID en wagwoord van die router in om aan te sluit.

3) Maak die nodige veranderinge as u besluit om die CS -pen van die SD -kaart aan te sluit op 'n ander pen as GPIO15.

4) Onthou u die waardes wat ons vir al die sleutels opgemerk het? Ons moet 'n sleutelnommer vir elke waarde toewys. Ek het u ook vertel van die skommelinge in die lesing. Dit is omdat die skakelaarkontakte nie perfek is nie. Op lang termyn kan hierdie waarde afwyk van die huidige waarde as gevolg van die veroudering van kontakte, wat ekstra weerstand in die stroombaan toevoeg en sodoende die spanning verander. Ons kan hierdie probleem in die kode hanteer.

Ons sal 'n boonste limiet en 'n onderste limiet van die waarde byvoeg met 'n marge van 5. Ek het byvoorbeeld 'n lesing van 617 vir sleutel 1 gekry.

  • Trek 5 daarvan af. 617 - 5 = 612. Dit is die onderste grens.
  • Voeg nou 5 by. 617 + 5 = 622. Dit is die boonste grens.
  • Blaai na die einde van die kode. Vul die spasie vir die twee waardes in die kode in, soos op die foto getoon.
  • Doen dit vir elke 9 waardes.

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

Wat beteken dit?

As die lesing (r) groter is as 612 EN minder as 622, dan word toets 1 ingedruk. Enige waarde tussen 612 en 622 word as sleutel beskou 1. Dit los die probleem van wisselende lees op.

Stap 8: Bou die saak

Bou die saak
Bou die saak
Bou die saak
Bou die saak
Bou die saak
Bou die saak
Bou die saak
Bou die saak

Dit is heeltemal opsioneel. Ek het gedink die projek sal netjies en volledig lyk, met 'n omhulsel daar rondom. Sonder die regte gereedskap vir hierdie taak, sou dit vir my 'n groot taak wees. Die kas is gemaak met akriel.

Berei die stukke voor om vas te plak deur die rande glad te maak met skuurpapier. Ek het Fevi Kwik (Super Glue) gebruik om die stukke saam te voeg. Supergom laat 'n wit residu agter nadat dit genees is. Pas dit dus slegs tussen die gewrigte toe. U moet vinnig en akkuraat wees as u met supergom werk, want dit word vinnig vas. Akriel sement is die beste geskik vir hierdie taak.

Maak 'n klein opening om toegang tot die USB -poort te kry met 'n lêer. Dit moet groot genoeg wees om die USB -koord in te steek.

'N 3x3 rooster op die voorblad gemaak vir die drukknoppies. Dit sal die toegangsknoppe moeilik maak. Om hierdie probleem op te los, sny ek vierkantige stukke vir elke sleutel sodat die knoppies nou tot op die oppervlak strek.

Na soveel skuur, sny, regmaak en verstel, was dit uiteindelik klaar!

Stap 9: Om pret te hê

Hê pret!
Hê pret!

Laastens word al die harde werk gedoen. Skakel u mini -telbord aan en bly op hoogte van die spel.

Nadat dit aangeskakel is, maak dit eers verbinding met die toegangspunt. Initialiseer die SD -kaart. Dit sal 'n fout toon as die SD -kaart nie geïnitialiseer word nie.

'N Lys met al die wedstryde word saam met die wedstrydnommer vertoon.

Kies die ooreenstemmingsnommer met die klavier.

Die tellings sal vertoon word. U kan alles aanpas wat u op die skerm wil sien. Ek sou nie te diep gaan om die kode te verduidelik nie. U kan hier 'n gedetailleerde verduideliking vind oor hoe die ontleding werk.

Om terug te keer na die spyskaart, hou die TERUG (sleutel 8) -knoppie ingedruk totdat die bladsy "Tellings haal …" verskyn.

Toekomsplanne

  • Ontwerp 'n pasgemaakte PCB met die ESP8266 12-E-module.
  • Voeg 'n herlaaibare battery by.
  • Verbeter die kode met nuwe funksies.

Hoop jy het die konstruksie geniet. Maak dit self en om pret te hê! Daar is altyd ruimte vir verbetering en baie om te leer. Kom met jou eie idees. Lewer gerus kommentaar oor enige voorstelle rakende die bou. Dankie dat u tot die einde vasbyt.

Aanbeveel: