Სარჩევი:
- მარაგები
- ნაბიჯი 1: დააყენეთ თქვენი Arduino IDE ESP32– ის მხარდასაჭერად
- ნაბიჯი 2: შეაერთეთ LED მატრიცა ESP32– თან
- ნაბიჯი 3: ერთად აწყობა
- ნაბიჯი 4: Arduino IDE და INO ფაილი
- ნაბიჯი 5: კოდი
ვიდეო: ESP32 სენსორული WordClock LED მატრიცაზე: 5 ნაბიჯი (სურათებით)
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:16
ამ პროექტში ვქმნი გადახვევის WordClock– ს ESP32– ით, LED მატრიქსით და სიგარის ყუთით.
WordClock არის საათი, რომელიც აწერია დროს და არა მხოლოდ ეკრანზე დაბეჭდვას ან აქვს წაკითხული ხელები. ეს საათი გეტყვით, რომ ეს არის დღის 3 საათიდან 10 წუთი, ანუ შუადღე. მე კი დავპროგრამე, რომ გამოიყენოს Prevening (დიდი აფეთქების თეორიიდან) სახელი ორაზროვანი პერიოდის განმავლობაში შუადღესა და საღამოს შორის. იწყება 16:00 საათზე.
ESP32 გასაოცარია, ისინი იმდენად სახალისო და იაფია, თუ გიყვართ არდუინოს პროგრამირება ნამდვილად გაგიკვირდებათ რისი გაკეთება შეუძლია ESP32 10 დოლარამდე. ისინი იყენებენ Arduino IDE- ს და ადვილია პროგრამირება. მე ვაჩვენებ, თუ როგორ უნდა გავაკეთოთ ეს ინსტრუქციულად.
მარაგები
- ESP32 - დაახლოებით $ 10 ამაზონზე
- LED მატრიცა (max7219) (და მავთულები) - $ 9 ამაზონი
- Სიგარეტის კოლოფი
- USB დენის კაბელი
- სურვილისამებრ 3D პრინტერი esp32 სტენდისთვის
ნაბიჯი 1: დააყენეთ თქვენი Arduino IDE ESP32– ის მხარდასაჭერად
მიიღეთ Arduino IDE:
- ბრაუზერში გადადით
- დააწკაპუნეთ პროგრამულ უზრუნველყოფაზე და შემდეგ ჩამოტვირთეთ, რომ მიიღოთ ARDUINO 1.8.12
დაამატეთ ESP32 მხარდაჭერა თქვენს Arduino IDE– ს:
- დაიწყეთ Arduino IDE
- დააწკაპუნეთ ფაილის მენიუზე და შემდეგ პარამეტრებზე.
ერთხელ "პარამეტრებში" დაამატეთ მწარმოებლის მხარდაჭერა შემდეგი ხაზის დამატებით "დამატებითი დაფის მენეჯერს"
dl.espressif.com/dl/package_esp32_index.js
ეს მოგვცემს წვდომას, რომ დავამატოთ დაფა IDE- ში
გადადით ინსტრუმენტების მენიუში, შემდეგ დაფაზე და გადადით დაფის მენეჯერთან
შემდეგი მოძებნეთ "ESP" და დაამატეთ პაკეტი Expressif- ის მიერ.
დაბოლოს, ჩვენ გვინდა დავუბრუნდეთ "ინსტრუმენტების" მენიუს, შემდეგ ისევ "დაფას" და გადაახვიეთ ქვემოთ თქვენი ESP32 მოწყობილობის საპოვნელად.
ჩემი არის "ESP32 Wrover მოდული"
ნაბიჯი 2: შეაერთეთ LED მატრიცა ESP32– თან
LED მატრიცა შედგება LED- ების ოთხი 8x8 ბლოკისგან და იყენებს MAX7219 ჩიპს. ეს გვაძლევს 8x32 LED- ებს მატრიცაში ან 256 LED- ებს !!!.
Esp32 ზის სადგომზე, რომელიც მე შევქმენი TinkerCad– ში. ჩემს მფლობელს უჭირავს ქინძისთავები ზემოთ, ასე რომ თქვენ შეგიძლიათ მიამაგროთ მავთულები.
LED მატრიცა უკავშირდება ESP32– ს SPI– ს გამოყენებით (სერიული პერიფერიული ინტერფეისი).
გამოიყენეთ ქალი/ქალი მავთულები და დააკავშირეთ ქინძისთავები შემდეგნაირად:
- ESP32 - 5v to VCC მატრიცაზე
- ESP32 - GND to GND მატრიცაზე
- ESP32 - PIN5 (G5) to CS მატრიცაზე
- ESP32 - PIN23 (G23) დინამდე მატრიცაზე
- ESP32 - მიამაგრეთ 18 (G18) CLK მატრიცაზე
შესაძლებელია სხვა ქინძისთავების გამოყენება, ან თუ თქვენს ESP32- ს აქვს განსხვავებული პინუტი.
ნაბიჯი 3: ერთად აწყობა
შემდეგ სიგარეტის კოლოფი დავჭრა, რომ მომეცა ადგილი LED ეკრანის დასაყენებლად. ყუთი რბილია და მე შევძელი საპარსი დანა გამოვიყენო. შემდეგ გავხეხე, რომ გამესწორებინა.
დენის კაბელისთვისაც უკნიდან მთელი გავჭრა. მე მხოლოდ USB ენერგია გამოვიყენე. სიგარეტის ყუთში შემეძლო USB ტელეფონის დამტენის ბატარეის დამატებაც კი, თუ მინდოდა უკაბელო ყოფილიყო.
ნაბიჯი 4: Arduino IDE და INO ფაილი
საუკეთესო ნაწილი არის კოდი. მაგრამ პირველ რიგში ჩვენ უნდა დავამატოთ ბიბლიოთეკა, რათა პროგრამამ გამოიყენოს ჩვენება უფრო მარტივი გზით. დავამატე MD_MAX72xx ბიბლიოთეკა.
ბიბლიოთეკის დასამატებლად დააწკაპუნეთ "ესკიზის" მენიუზე, შემდეგ "ბიბლიოთეკის ჩართვაზე" და "ბიბლიოთეკების მართვაზე", ეს ჩაიტვირთება და საშუალებას მოგცემთ მოძებნოთ MD_MAX72xx ბიბლიოთეკა. უბრალოდ დააწკაპუნეთ ინსტალაციაზე და თქვენ გაქვთ.
შემდეგ მიიღეთ ჩემი Arduino INO ფაილი:
github.com/aapicella/wordClock/blob/master/Word_Clock_LED_NTP_final_.ino
ჩატვირთეთ ინო ფაილი თქვენს Arduino IDE- ში, შეაერთეთ USB ESP32– დან თქვენს კომპიუტერს.
დააწკაპუნეთ "ესკიზზე" და შემდეგ ატვირთეთ
ამ დროს საათი არ იმუშავებს, ESP32 არაფერს არ აჩვენებს. რატომ? ჩვენ უნდა დავამატოთ თქვენი WIFI კოდი, რადგან WordClock უერთდება ინტერნეტს დროის მისაღებად. მართალია … შემდეგი ნაბიჯი ->.
ნაბიჯი 5: კოდი
საბოლოოდ ჩვენ მივაღწიეთ ჩემს საყვარელ ნაწილს. Პროგრამა. მე დავფარავ მას ზემოდან ქვემოდან, თუ თქვენ დაინტერესებული ხართ, იმისათვის, რომ პროგრამამ იმუშაოს თქვენს სახლში ინტერნეტით, თქვენ უბრალოდ უნდა შეცვალოთ ეს ხაზები.
// დაამატეთ თქვენი ქსელის ინფორმაცია
const char *ssid = "xxxxxx";
const char *პაროლი = "xxxxxx";
პროგრამა არის საკმაოდ რთული, მაგრამ ძალიან სახალისო.
"Prevening" - ის გამორთვისთვის შეცვალეთ მნიშვნელობა false:
const boolean PREVENING = ჭეშმარიტი; //Დიდი აფეთქების თეორია.
გადახვევის შემდეგ ციფრული დროის ჩვენების გამორთვა შეცვალეთ ეს ყალბი.
const ლოგიკური DISPLAY_DIGITAL = ჭეშმარიტი; // ჩართეთ ციფრული დროის ჩვენება გადახვევის შემდეგ.
დროის გადახვევა:
მე ვიღებ დროს დროის სერვერზე ინტერნეტში NTP (ქსელის დროის პროტოკოლი) გამოყენებით. დრო იმართება ცვლადში, რომელსაც ეწოდება timeinfo და ჩვენ ვიღებთ საათსა და წუთს მისგან
int საათი = timeinfo.tm_hour; /// 0-23
int წუთი = timeinfo.tm_min; // 0-59
შემდეგი შეამოწმეთ AM ან PM
ეს არის AM თუ საათი <12
მე ვქმნი სტრიქონს სახელწოდებით "დრო" და ვიწყებ მას:
theTime = "ეს არის";
რიცხვის სიტყვებად მისაღებად შევქმენი სიტყვების მასივი 30 -მდე რიცხვისთვის
const char *რიცხვები = {
"0", "ერთი", "ორი", "სამი", "ოთხი", "ხუთი", "ექვსი", "შვიდი", "რვა", "ცხრა", "ათი", "თერთმეტი", "თორმეტი" "," ცამეტი "," თოთხმეტი "," მეოთხედი "," თექვსმეტი "," ჩვიდმეტი "," თვრამეტი "," ცხრამეტი "," ოცი "," ოცდაერთი "," ოცდაორი "," ოცდა სამი "," ოცდაოთხი "," ოცდახუთი "," ოცდაექვსმეტი "," ოცდაშვიდი "," ოცდამეხი "," ოცდაცხრა "," ნახევარი წარსული "};
ასე რომ, როდესაც მისი 12:05 ან თორმეტის ხუთი წუთი უკვე ნამდვილად არდუინოსთანაა
რიცხვები [5] წუთები ნომრებიდან [12]
იმის დასადგენად, არის თუ არა მისი "წუთები წარსული" თუ "წუთი წუთისათვის" ჩვენ უბრალოდ ვუყურებთ წუთებს. თუ წუთები <31-ია, ეს არის "წუთები გასული", თუ წუთები 31-ზე მეტია, ჩვენ ვიყენებთ "Minutes To" მაგრამ ვიყენებთ რიცხვებს [60-წუთი], ასე რომ 12:50 იქნება 60-50 წუთი ან რიცხვები [10] რაც მოგვცეს 10 წუთიდან 12 საათამდე.
რასაკვირველია, არსებობს სხვა წესები, როგორიცაა 15, 30, 45, ჩვენ არ ვიყენებთ წუთებს მისი ნახევარი ან მეოთხედი, და თუ წუთი არის 0 დრო არის მხოლოდ "ათი საათი" ან შუადღე.
ასე რომ, ერთად რომ ვთქვათ, მე ვამატებ ყველა ელემენტს String theTime– ს, შემდეგ ვაჩვენებ LED მატრიცაზე. მე ვიყენებ რამოდენიმე If განცხადებას. მე ალბათ უნდა გამომეყენებინა შემთხვევა, მაგრამ მათი დამატება უფრო ადვილი იყო.
ჩვენი მაგალითისთვის 12:05
theTime = "ეს არის"
თუ წუთი <31 გამოიყენეთ "წუთის გასული" წინააღმდეგ შემთხვევაში მისი "წუთი"
theTime + = რიცხვები [5] + "წუთი გასული" + ნომერი [12] + "O'Clock" // შენიშვნა: ნოტაცია + = დამატებულია.
შემდეგ ჩვენ საათს ვუყურებთ იმის დასადგენად, დილაა თუ შუადღე თუ საღამო.
theTime+= "საღამოს"
მატრიცაზე გადასვლის ბოლო სტრიქონი არის:
"საღამოს თორმეტ საათზე ხუთი წუთია"
ამ პროექტის წერა ძალიან სახალისო იყო. თუ მოგწონთ გთხოვთ დააწკაპუნეთ გულზე და ხმა მიეცით გთხოვთ.
გირჩევთ:
სენსორული ეკრანი Macintosh - კლასიკური Mac IPad Mini ეკრანზე: 5 ნაბიჯი (სურათებით)
სენსორული ეკრანი Macintosh | კლასიკური Mac IPad Mini ეკრანზე: ეს არის ჩემი განახლება და შესწორებული დიზაინი, თუ როგორ უნდა შეცვალოთ რთველი Macintosh– ის ეკრანი iPad mini– ით. ეს არის მეექვსე მათგანი, რაც მე გავაკეთე წლების განმავლობაში და მე საკმაოდ კმაყოფილი ვარ ამ ევოლუციითა და დიზაინით! ჯერ კიდევ 2013 წელს, როდესაც გავაკეთე
Lissajous ფიგურები 8X8 ლედ მატრიცაზე: 7 ნაბიჯი
Lissajous ფიგურები 8X8 Led მატრიცაზე: სინათლის წერტილი, რომელიც მოძრაობს 2 პერპენდიკულარულ ღერძში, ხატავს ნიმუშს სახელწოდებით " Lissajous Figure " (1857) ან " ბოუდიჩის მრუდი " (1815). შაბლონები მერყეობს მარტივიდან რთული, რაც დამოკიდებულია 2 ღერძის სიხშირის თანაფარდობასა და ფაზაზე. 1: 1
Solderdoodle Plus: შედუღების რკინა სენსორული კონტროლით, LED გამოხმაურება, 3D დაბეჭდილი ქეისი და USB დატენვის საშუალება: 5 ნაბიჯი (სურათებით)
Solderdoodle Plus: Soldering Iron Touch Control, LED Feedback, 3D Printed Case, and USB Rechargeable: გთხოვთ დააწკაპუნეთ ქვემოთ ეწვიეთ ჩვენს Kickstarter პროექტის გვერდს Solderdoodle Plus, უკაბელო USB მრავალჯერადი დატენვის ცხელი მრავალ ინსტრუმენტისთვის და წინასწარ შეუკვეთეთ წარმოების მოდელი! Https: //www.kickstarter.com/projects/249225636/solderdoodle-plus-cordless-usb- დატენვის საშუალება
48 X 8 სენსორული LED მატრიცის ჩვენება Arduino და Shift რეგისტრატორების გამოყენებით .: 6 ნაბიჯი (სურათებით)
48 X 8 სენსორული LED მატრიქსის ჩვენება Arduino და Shift რეგისტრების გამოყენებით .: გამარჯობა ყველას! ეს არის ჩემი პირველი ინსტრუქცია და ეს არის 48 x 8 პროგრამირებადი გადახვევის LED მატრიცის დამზადება Arduino Uno და 74HC595 ცვლის რეგისტრების გამოყენებით. ეს იყო ჩემი პირველი პროექტი Arduino– ს განვითარების დაფაზე. ეს იყო გამოწვევა მ
16x64 P10 სენსორული LED ჩვენება PIC16F877 მიკროკონტროლის გამოყენებით: 5 ნაბიჯი (სურათებით)
16x64 P10 სენსორული LED ჩვენება PIC16F877 მიკროკონტროლის გამოყენებით: ამ ინსტრუქციაში აღწერილია, თუ როგორ უნდა მოხდეს 16 x 64 (p10) LED მატრიცის ჩვენება PICI6F877A მიკროკონტროლერთან. მონაცემები აგზავნის მიკროკონტროლერს UART– ით, რომელიც ინახება EEPROM– ში და მონაცემები გამოჩნდება LED მატრიცის ეკრანზე. ის