Სარჩევი:

Cricket Scoreboard გამოყენებით NodeMCU: 9 ნაბიჯი (სურათებით)
Cricket Scoreboard გამოყენებით NodeMCU: 9 ნაბიჯი (სურათებით)

ვიდეო: Cricket Scoreboard გამოყენებით NodeMCU: 9 ნაბიჯი (სურათებით)

ვიდეო: Cricket Scoreboard გამოყენებით NodeMCU: 9 ნაბიჯი (სურათებით)
ვიდეო: Counter program in JavaScript ↕️【3 minutes】 2024, ივლისი
Anonim
Image
Image
Გეგმა
Გეგმა

გამარჯობა! მე ცოტა ხნის წინ გავაცანი IoT (ნივთების ინტერნეტი) სამყაროში, რადგან წავაწყდი ამ სფეროში ყველაზე პოპულარულ მოწყობილობას, ESP8266. მე გაოგნებული ვიყავი იმ რაოდენობის შესაძლებლობებით, რომლებიც ამ პატარა და იაფმა მოწყობილობამ გახსნა. ვინაიდან მე ჯერ ახალი ვარ, გადავწყვიტე შემექმნა პროექტი მისი გამოყენებით და ვისწავლო გზაზე. ასე რომ, დავიწყე ინტერნეტში პროექტების და იდეების ძებნა.

მე წავაწყდი საოცარ პროექტს სახელწოდებით Arduino Cricket Score Ticker W. W. Smith. ამ პროექტში Arduino Ethernet Shield– თან და SD ბარათთან ერთად გამოიყენება Cricbuzz– დან კრიკეტის ცოცხალი ქულების საჩვენებლად. ამ პროექტმა დამაფიქრა.

მე ვარ ინდოეთიდან და პირველი, რაც იბადება ინდოეთის მოსმენის შემდეგ, არის კრიკეტი. აქ კრიკეტი არის რელიგია. ხანდახან ძნელია ტელევიზორის წინ ჯდომა მთელი მატჩის დასათვალიერებლად. მაშ, რატომ არ უნდა გააკეთოთ ისეთი რამ, რაც ყურების ყურებას მარტივს, უკაბელო და პორტატულს ხდის. გამოყოფილი პაწაწინა მოწყობილობა, რომელიც აჩვენებს საკმარის ინფორმაციას იმისათვის, რომ განახლდეს მხოლოდ ერთი შეხედვით.

კრიკეტის ფანი არ ხარ? Არაა პრობლემა! კოდი შეიცავს XML ანალიზატორს, რომელიც შეიძლება გამოყენებულ იქნას ნებისმიერი XML ფაილიდან მონაცემების მისაღებად. უბრალოდ გამოიყენეთ სწორი ფუნქციები მონაცემების მისაღებად.

ნაბიჯი 1: გეგმა

Გეგმა
Გეგმა

გეგმაა გამოიყენოს NodeMCU განვითარების საბჭო (ESP-12E მოდულით) ინტერნეტში შესასვლელად და მოითხოვოს XML კოდი Cricbuzz– დან, რომელიც შეიცავს ყველა ინფორმაციას მიმდინარე/მომავალი მატჩების შესახებ. ეს კოდი ინახება SD ბარათზე.xml ფაილის სახით. ამის შემდეგ ფაილი იკითხება SD ბარათიდან XML კოდიდან საჭირო მონაცემების გასაანალიზებლად. მე გამოვიყენებ W. A. Smith ს კოდს ინფორმაციის გასაანალიზებლად. მისი ძალისხმევის წყალობით. გადახედეთ მის პროექტს, თუ გსურთ იგივე გააკეთოთ Arduino და Ethernet Shield– ის გამოყენებით.

ჩემი იდეა არის გავხადოთ ის რაც შეიძლება პატარა, შევქმნათ პერსონალური PCB და მოვათავსოთ საქმე. ჯერჯერობით, მოდით შევქმნათ პროტოტიპი. მაგრამ პირველ რიგში, მოდით გავეცნოთ ამ პროექტში გამოყენებულ კომპონენტებს.

Დავიწყოთ

ნაბიჯი 2: OLED ჩვენება

OLED ეკრანი
OLED ეკრანი
OLED ეკრანი
OLED ეკრანი

მე გადავწყვიტე OLED დისპლეით წასვლა მისი მცირე ზომის გამო და ისინი ხელმისაწვდომია იაფად. მე ვიყენებ 0.96 ეკრანს, რომელიც საკმარისი იქნება შესატყვისი ინფორმაციის ჩვენებისათვის. თქვენ შეგიძლიათ გამოიყენოთ ნებისმიერი ზომის ეკრანი.

ჩვენება, რომელსაც მე ვიყენებ, არის მონოქრომული, SSD1306 დრაივერით და I2C (2 მავთულის) ინტერფეისით. ასევე შესაძლებელია ეკრანის SPI ვერსიები. მათი გაშვება ადვილი საქმეა. ჩამოტვირთეთ SSD1306 და GFX ბიბლიოთეკები, რომლებიც საჭიროა ეკრანის გასაშვებად. მადლობა ადაფრუტს ამ ბიბლიოთეკების წერისთვის.

კავშირები ძალიან მარტივია.

  • GND to GND
  • VCC 3.3V– მდე
  • SCL– დან D1– მდე
  • SDA to D2.

ნაბიჯი 3: SD ბარათი და ადაპტერი

SD ბარათი და ადაპტერი
SD ბარათი და ადაპტერი

SD ბარათი ინახავს XML ფაილს Cricbuzz– დან, სანამ ყველა ინფორმაცია არ გაანალიზდება. მას შემდეგ რაც გამოჩნდება საჭირო ინფორმაცია, ფაილი წაიშლება. SD ბარათის გამოყენება 10 - 20 kB XML ფაილის შესანახად ცოტა გადაჭარბებულია, მაგრამ ეს ხდის ანალიზს ბევრად უფრო ადვილი და გასაგები.

ნებისმიერი მეხსიერების ბარათის გამოყენება შესაძლებელია. მე შევარჩიე მიკრო SD ბარათი მისი მცირე ფორმის ფაქტორისთვის. თქვენ შეგიძლიათ პირდაპირ შეაერთოთ მავთულები SD ბარათზე, მაგრამ გარღვევის დაფის გამოყენება ამარტივებს საქმეს. უნდა აღინიშნოს, რომ ყველა SD ბარათი განკუთვნილია 3.3 ვ -ზე მუშაობისთვის. ეს ნიშნავს, რომ არა მხოლოდ 3.3 ვ -ის გამოყენებით, არამედ მიკროკონტროლერსა და SD ბარათს შორის კომუნიკაცია უნდა იყოს 3.3 ვ ლოგიკური დონის. 3.3 ვ -ზე მაღალი ძაბვა კლავს მას! ჩვენ არ შეგაწუხებთ მას რაც შეეხება NodeMCU– ს, რადგან თავად NodeMCU მუშაობს 3.3 ვ – ზე რაც კარგია. თუ თქვენ გეგმავთ ნებისმიერი სხვა მიკროკონტროლერის გამოყენებას 5V ლოგიკური დონით, დარწმუნდით, რომ თქვენს გარღვევის დაფას აქვს ჩამონტაჟებული დონის გადამრთველი (როგორც ნაჩვენებია სურათზე). ის ძირითადად გარდაქმნის ან 'გადააქვს' 5V მიკროკონტროლიდან SD ბარათის მეგობრულ 3.3V- ზე. დონის შემცველის გამოყენება 3.3V– თან ერთად (როგორც მე გავაკეთე) არ იმოქმედებს მის მუშაობაზე.

SD ბარათი იყენებს SPI ინტერფეისს კომუნიკაციისთვის. CS ან Chip Select pin შეიძლება იყოს დაკავშირებული GPIO– ს ნებისმიერ პინთან. მე ავირჩიე GPIO15 (D8). უბრალოდ შეიტანეთ აუცილებელი ცვლილებები კოდში, თუ GPIO15– ის გარდა სხვა pin გამოიყენეთ

  • SCK- დან D5- მდე
  • MISO– დან D6– მდე
  • MOSI– დან D7– მდე
  • CS დან D8
  • VCC 3.3V– მდე
  • GND to GND

თქვენი SD ბარათის ფორმატირება

ბიბლიოთეკა, რომელსაც ჩვენ ვიყენებთ, მხარს უჭერს FAT16 ან FAT32 ფაილურ სისტემებს. დარწმუნდით, რომ თქვენ აფორმებთ SD ბარათს სწორ ფორმატში.

ნაბიჯი 4: კლავიატურის დამზადება

კლავიატურის დამზადება
კლავიატურის დამზადება
კლავიატურის დამზადება
კლავიატურის დამზადება
კლავიატურის დამზადება
კლავიატურის დამზადება

მინდა პროექტი მაქსიმალურად მცირე იყოს. ამრიგად, მე გადავწყვიტე ცალკე დაფა გამეკეთებინა კლავიატურისთვის და მოგვიანებით დავამატო იგი მთავარ დაფაზე. ეს ზოგავს სივრცეს.

მზა გასაღების მატრიცის შეძენა შესაძლებელია, მაგრამ მე მქონდა დაჭერილი ღილაკები. ასევე, მინდოდა რაც შეიძლება პატარა გამხდარიყო. რიგების და სვეტების დამაკავშირებელ ტიპურ მოწყობას დასჭირდება სულ 6 GPIO ქინძისთავი 3 x 3 მატრიცისთვის. ეს საკმაოდ ბევრია იმის გათვალისწინებით, რომ OLED ეკრანი და SD ბარათი ასევე იქნება დაკავშირებული.

როდესაც ეჭვი გეპარებათ, გამოაგზავნეთ Google! ეს არის ის, რაც მე გავაკეთე და ვიპოვე გზა, რომელსაც დასჭირდება მხოლოდ 1 პინი მთელი მატრიცის გასაკონტროლებლად. ეს შესაძლებელი გახდა ძაბვის გამყოფი მატრიცის გამოყენებით. რეზისტორები დაკავშირებულია ყველა მწკრივსა და სვეტს შორის. როდესაც კლავიშზეა დაჭერილი, რეზისტორების გარკვეული კომბინაცია უკავშირდება სერიას, რაც ქმნის ძაბვის გამყოფს. იხილეთ წრიული დიაგრამა. განსხვავებული ძაბვა იკითხება მიკროკონტროლის მიერ. თითოეული გასაღები გამოიმუშავებს განსხვავებულ ძაბვას და ამდენად ადვილად შეიძლება გაირკვეს რომელ კლავიშზეა დაჭერილი მატრიცის გამომავალი ძაბვის კითხვა. ვინაიდან ჩვენ გვსურს ძაბვის სხვადასხვა დონის წაკითხვა და ახლა მხოლოდ მაღალი და დაბალი, ჩვენ დაგვჭირდება ანალოგური პინი. საბედნიეროდ, NodeMCU– ზე არის ერთი ანალოგური პინი, სახელწოდებით A0. პრობლემა მოგვარებულია!

თუ გსურთ შეიძინოთ მატრიცა, გადახედეთ დიაგრამაზე ნაჩვენებ შიდა კავშირებს. ნებისმიერი განზომილების მატრიცა შეიძლება გამოყენებულ იქნას. დარწმუნდით, რომ გამოიყენეთ 2.2kΩ რეზისტორი მწკრივებს შორის და 680Ω რეზისტორი სვეტებს შორის.

Push ღილაკების დაკავშირება

ქინძისთავები 1 და 2 შინაგანად არის დაკავშირებული. იგივეა ქინძისთავები 3 და 4. როდესაც ღილაკზე დაჭერილია, ყველა ქინძისთავები ერთმანეთთან არის დაკავშირებული. იხილეთ სურათი, რათა მიიღოთ იდეა პერფოფორზე გადამრთველების შეერთების შესახებ.

მე დავუკავშირე 3-პინიანი მამრობითი სათაური, რათა შემდგომში მთავარ დაფაზე იყოს დაკავშირებული.

ნაბიჯი 5: ყველაფრის ერთად შედგენა

ყველაფრის ერთად აწყობა
ყველაფრის ერთად აწყობა
ყველაფრის ერთად აწყობა
ყველაფრის ერთად აწყობა
ყველაფრის ერთად აწყობა
ყველაფრის ერთად აწყობა

თქვენ შეგიძლიათ დაგეგმოთ კომპონენტების განთავსება იქ, სადაც გსურთ. არანაირი შეზღუდვა მასზე. მე გაჩვენებთ, თუ როგორ გავაკეთე ეს კომპაქტური, რადგან მინდოდა რაღაც, რაც ხელის გულზე მოერგო. ის შეიძლება ცოტა არეული იყოს, ასე რომ სცადეთ ჩემი გზა, თუკი კომფორტულად გრძნობთ შედუღებას. მე გადავწყვიტე დაფაროს დაფის ორივე მხარე, როგორც ორი ფენის PCB. NodeMCU და SD ბარათების გარღვევის დაფა ერთ მხარეს და OLED და კლავიატურა მეორე მხარეს.

SD ბარათის გარღვევა უბრალოდ ჯდება ორ მდედრ ჰედერს შორის, რომლებიც განკუთვნილია NodeMCU– სთვის. მე ჩამოვშალე კუთხისებრი მამრობითი სათაურები, რომლებითაც მოვიდა ბორბალთა დაფა, გადავაბრუნე და ისევ შევკარი ისე, რომ ქინძისთავები პერპენდიკულარულად ქვევით მიდიოდეს, როგორც სურათზეა ნაჩვენები. SD ბარათის სლოტზე წვდომა უფრო ადვილი ხდება.

4-პინიანი ქალის სათაურის ქინძისთავები დავხარე მარჯვენა კუთხით და გავამახვილე პერფორის დაფის სპილენძის მხარეს, როგორც ეს ნაჩვენებია სურათზე.

დაფარეთ გამაგრების სახსრები კლავიატურის ქვეშ, რათა არ მოხდეს მოკლე ჩართვა. დაამატეთ მყარი ქაფის თხელი ნაჭერი (დაახლოებით 5 მმ სისქის) კლავიატურასა და დედაპლატას შორის დამატებითი დაცვისა და სიმტკიცისათვის. დაბოლოს, შეაერთეთ კლავიატურა, რომელიც ადრე გავაკეთეთ. მბჟუტავი რკინის მქონე წვერი აუცილებლად გაგიადვილებთ საქმეს. ეს იყო ბინძური სამუშაო, რაც მას მაქსიმალურად კომპაქტურს ხდიდა, მაგრამ საბოლოოდ მოახერხა ამის გაკეთება.

მოწყობილობის ჩართვამდე ორმაგად შეამოწმეთ ყველა თქვენი კავშირი მოკლე ჩართვისთვის

ნაბიჯი 6: კლავიატურის დაყენება

კლავიატურის დაყენება
კლავიატურის დაყენება

მას შემდეგ რაც შეამოწმებთ ყველა კავშირს, თქვენ მზად ხართ პირველად ჩართოთ თქვენი მოწყობილობა. Გადაჯვარედინებული თითები! ჯადოსნური კვამლი არ არის? Გილოცავ!

ახლა ჩვენ მზად ვართ კლავიატურის დასაყენებლად. გაიხსენეთ კლავიატურის მუშაობა. თითოეული გასაღების დაჭერით გამოვა განსხვავებული ძაბვა, რომელიც იკვებება NodeMCU- ის ანალოგიურ პინზე. ESP-12E– ს აქვს ანალოგური ციფრული გადამყვანი (ADC) 10 ბიტიანი გარჩევადობით. 2, რომელიც გაიზარდა სიმძლავრე 10 – ს, მისცემს 1024 – ს. ეს ნიშნავს, რომ ჩვენ ვიღებთ კითხვას 0 – დან 1024 – მდე ყოველ დაჭერილ ღილაკზე. ვნახოთ რა კითხვებს ვიღებთ. მაგრამ პირველ რიგში, ჩვენ უნდა დავწეროთ პატარა პროგრამა ამ ღირებულებების მისაღებად. გახსენით Arduino IDE, დააკოპირეთ ჩასვით შემდეგი კოდი და ატვირთეთ იგი NodeMCU- ში.

int კლავიატურა = A0;

void setup () {Serial.begin (115200); } void loop () {int r = analogRead (keypadPin); სერიული. ბეჭდვა (r); }

  • გახსენით სერიული მონიტორი. დააყენეთ ბაუდის მაჩვენებელი 115200 -ზე.
  • ახლა დააჭირეთ ნებისმიერ ღილაკს. თქვენ უნდა მიიღოთ მუდმივი კითხვა სერიულ მონიტორზე. მცირე რყევები ნორმალურია. მათზე ზრუნვა მოხდება მთავარ კოდში. იგივე გააკეთე თითოეული გასაღებისთვის.
  • თითოეულ გასაღებს უნდა ჰქონდეს განსხვავებული კითხვა.
  • ჩაწერეთ ყველა მნიშვნელობა. ჩვენ მოგვიანებით დაგვჭირდება ისინი.

ნაბიჯი 7: მოდით კოდირება

მოდით კოდი
მოდით კოდი
მოდით კოდი
მოდით კოდი
მოდით კოდი
მოდით კოდი

ჩამოტვირთეთ Scoreboard.ino ფაილი ქვემოთ მოყვანილი თქვენს კომპიუტერში და გახსენით იგი Arduino IDE გამოყენებით.

სანამ ატვირთავ

1) დააწესეთ ცხრილის განახლების დრო. მაგალითად, 15 ლ 15 წამის განმავლობაში.

2) შეიყვანეთ როუტერის SSID და პაროლი, რომლითაც გსურთ დაკავშირება.

3) განახორციელეთ აუცილებელი ცვლილებები, თუ თქვენ აირჩევთ SD ბარათის CS პინის დაკავშირებას სხვა GPIO15– ის გარდა.

4) გახსოვთ მნიშვნელობები, რომლებიც ჩვენ აღვნიშნეთ ყველა გასაღებისთვის? ჩვენ უნდა მივცეთ საკვანძო ნომერი თითოეულ მნიშვნელობას. მე ასევე გითხარით კითხვის რყევების შესახებ. ეს არის იმის გამო, რომ შეცვლის კონტაქტები არ არის სრულყოფილი. გრძელვადიან პერსპექტივაში, ამ მნიშვნელობამ შეიძლება გადაუხვიოს ამჟამინდელ მნიშვნელობას კონტაქტების დაბერების გამო, რაც დამატებით წინააღმდეგობას უმატებს წრეში, რითაც ცვლის ძაბვას. ჩვენ შეგვიძლია ვიზრუნოთ ამ პრობლემაზე კოდში.

ჩვენ დავამატებთ ზედა ზღვარს და ღირებულების ქვედა ზღვარს ზღვარი 5 -ით. მაგალითად, მე მივიღე კითხვა 617 გასაღებისთვის 1.

  • გამოვაკლოთ 5 მისგან. 617 - 5 = 612. ეს არის ქვედა ზღვარი.
  • ახლა დაამატეთ 5. 617 + 5 = 622. ეს არის ზედა ზღვარი.
  • გადაახვიეთ კოდის ბოლომდე. შეავსეთ სივრცე, რომელიც მოცემულია ორი მნიშვნელობისათვის კოდში, როგორც ეს მოცემულია სურათზე.
  • გააკეთეთ ეს ყოველი 9 მნიშვნელობისთვის.

თუ (r> 612 && r <622) {გასაღები = 1; }

Რას ნიშნავს ეს?

თუ კითხვა (r) აღემატება 612 და ნაკლებია 622 -ზე, მაშინ დააჭირეთ ღილაკს 1. 612 -დან 622 -მდე ნებისმიერი მნიშვნელობა განიხილება როგორც გასაღები 1. ეს წყვეტს კითხვის მერყეობის პრობლემას.

ნაბიჯი 8: საქმის მშენებლობა

საქმის მშენებლობა
საქმის მშენებლობა
საქმის მშენებლობა
საქმის მშენებლობა
საქმის მშენებლობა
საქმის მშენებლობა
საქმის მშენებლობა
საქმის მშენებლობა

ეს არის სრულიად სურვილისამებრ. ვფიქრობდი, რომ პროექტი გამოიყურებოდა სისუფთავე და სრული, მის გარშემო არსებული საქმით. ამ სამუშაოს სათანადო ინსტრუმენტების გარეშე, ეს იქნებოდა ჩემთვის დიდი ამოცანა. კორპუსი აგებულია აკრილის გამოყენებით.

მოვამზადეთ ნაჭრები წებოსთვის, კიდეების გასწორებით სანდლის ქაღალდის გამოყენებით. მე გამოვიყენე ფევი კვიკი (სუპერ წებო) ყველა ნაწილის შესაერთებლად. სუპერ წებო მისი დატოვების შემდეგ ტოვებს თეთრ ნარჩენს. ასე რომ, გამოიყენეთ იგი მხოლოდ სახსრებს შორის. თქვენ უნდა იყოთ სწრაფი და ზუსტი სუპერ წებოსთან მუშაობისას, რადგან ის მყარდება სწრაფად. აკრილის ცემენტი საუკეთესოდ შეეფერება ამ სამუშაოს.

გააკეთა პატარა გახსნა USB პორტზე წვდომისათვის ფაილის გამოყენებით. ის საკმარისად დიდი უნდა იყოს USB კაბელის ჩასასმელად.

შეიქმნა 3x3 ბადე წინა საფარზე ღილაკებისთვის. ეს გაართულებს ღილაკებზე წვდომას. ამ პრობლემის გადასაჭრელად, მე ვჭრი კვადრატულ ნაჭრებს თითოეული გასაღებისთვის, ასე რომ მათი ღილაკები ახლა ზედაპირზეა გაშლილი.

ამდენი ქვიშის, მოჭრის, შეკეთების და მორგების შემდეგ, საბოლოოდ გაკეთდა!

ნაბიჯი 9: გაერთეთ

Გაერთე!
Გაერთე!

საბოლოოდ, ყველა მძიმე სამუშაო დასრულებულია. გააქტიურეთ თქვენი მინი დაფა და იყავით განახლებული თამაშთან ერთად.

გააქტიურების შემდეგ, ის პირველად უკავშირდება წვდომის წერტილს. ახდენს SD ბარათის ინიციალიზაციას. ის აჩვენებს შეცდომას, თუ SD ბარათი არ არის ინიციალიზებული.

ყველა მატჩის სია გამოჩნდება მატჩის ნომერთან ერთად.

აირჩიეთ შესატყვისი ნომერი კლავიატურის გამოყენებით.

ქულები გამოჩნდება. თქვენ შეგიძლიათ დააკონფიგურიროთ ის, რისი ნახვაც გსურთ ეკრანზე. მე არ ჩავუღრმავდები კოდის ახსნას. თქვენ შეგიძლიათ იპოვოთ დეტალური ახსნა იმის შესახებ, თუ როგორ მუშაობს ანალიზი.

მენიუში დასაბრუნებლად, დააჭირეთ ღილაკს BACK (გასაღები 8) სანამ არ გამოჩნდება "ქულების მიღება …" გვერდი.

Მომავლის გეგმები

  • შეიმუშავეთ პერსონალური PCB ESP8266 12-E მოდულით.
  • დაამატეთ მრავალჯერადი დატენვის ბატარეა.
  • გააუმჯობესეთ კოდი ახალი მახასიათებლებით.

იმედია მოგეწონათ მშენებლობა. თავად გააკეთე და გაერთე! ყოველთვის არის გაუმჯობესების ადგილი და ბევრი რამ არის სასწავლი. გამოდით საკუთარი იდეებით. მოგერიდებათ დაწეროთ ნებისმიერი წინადადება მშენებლობასთან დაკავშირებით. გმადლობთ, რომ იყავით ბოლომდე.

გირჩევთ: