Სარჩევი:
- მარაგები
- ნაბიჯი 1: ოლედის გამოყენება
- ნაბიჯი 2: მრავალჯერადი OLED
- ნაბიჯი 3: მბრუნავი მენიუს შექმნა მბრუნავი კოდირებით
- ნაბიჯი 4: წინა კოდის ტოგეთერის დაყენება
- ნაბიჯი 5: პერსონალური PCB ერთად Fritzing + სქემატური
- ნაბიჯი 6: დიზაინი + ლაზერული საჭრელი
- ნაბიჯი 7: შეკრება
- ნაბიჯი 8: ნუ გაჩერდები აქ
ვიდეო: Oled მაღვიძარა: 8 ნაბიჯი (სურათებით)
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:16
არსებობს ბევრი arduino/ESP32 საათი, მაგრამ იყენებენ ისინი ამ ლამაზ და მკაფიო OLED– ებს?
დიდი ხანია ექსპერიმენტებს ვატარებ arduinos– სა და ESP32– ზე, მაგრამ მზა პროდუქტად არასოდეს მიმიღია. მე გავაკეთე მაღვიძარა 4 1.3 ინჩიანი მონოქრომული OLED– ით. საათს ასევე აქვს ჩამქრალი საწოლის ნათურა და USB დამტენი პორტი (არავის აქვს სათადარიგო გასასვლელი მისი საწოლის გვერდით). OLED– ები ასევე დასაშვებია, ეს დაემატა ბოლო წუთს მას შემდეგ, რაც ჩემს პროექტს ჩემი შეყვარებული დაემუქრა. არ უნდა იყოს - შეყვარებულების ხმით - საკმარისად ჩამქრალი, მე ასევე შემიძლია მოვიყვანო კოდის ვერსია, სადაც 3 დისპლეი იკვებება გარკვეულ საათებს შორის. მიზანი იყო ადვილად გამოსაყენებელი საათის გაკეთება, პროტოტიპის მიღმა. საათის შექმნისას მე შევეჯახე გარკვეულ სირთულეებს, რომელთა მოგვარებაც მომიწია, რის გამოც მე ვფიქრობ, რომ ამ ინსტრუქციის გაზიარება ღირს. საათის დამზადება შესაძლებელია პატარა ინსტრუმენტებით, მე არ მომწონს "და მომდევნო ეტაპზე მე გამოვიყენე ჩემი 10.000 €/$ CNC წისქვილზე" გაკვეთილები.
ზოგიერთი რამ, რაც აიხსნება ამ სასწავლო ინსტრუქციაში (სტრუქტურირებადი მითითებით):
- როგორ გამოვიყენოთ/შევაერთოთ I2C OLED დისპლეი arduino/ESP32– ით
- როგორ გამოვიყენოთ მრავალი I2C ობიექტი ერთი arduino/ESP32– ით
- როგორ შევქმნათ მენიუ "გადახვევის უნარი" მბრუნავი კოდირების გამოყენებით (+ როგორ გამოვიყენოთ კოდირება ESP32/arduino– ით)
- როგორ შევქმნათ და შევუკვეთოთ პერსონალური PCB ფრიზინგის გამოყენებით.
- საათი ასევე იყენებს RTC (რეალურ დროში საათს), led მძღოლს, ძაბვის მოდულს… მე ნამდვილად არ შევეხები მათ, რადგან მართლაც ბევრი ინფორმაციაა ამ მოდულებისთვის ხელმისაწვდომი.
მინდა აღვნიშნო, რომ მე არ ვარ პროფესიონალი პროგრამისტი. ჩემი სასწავლო მიზნის ახსნაა ზემოთ ნახსენები პუნქტები. როგორ შევაჯამო ეს ყველაფერი ჩემი საბოლოო პროდუქტისთვის, შეიძლება არ იყოს ყველაზე სუფთა გზა. ეს არის გზა, რომელმაც მომცა საშუალება თვალყური ადევნო ამ ყველაფერს.
მარაგები
მარაგების ყიდვისას მე ყოველთვის ვცდილობ შევაფასო ხარისხის/დოკუმენტაციის მნიშვნელობა ფასის წინააღმდეგ. ჩემი მარაგი არის A- ბრენდების და იაფი ჩინური ნაწილების ნაზავი. Mouser არის დიდი მიმწოდებელი, თუ ხარისხი მნიშვნელოვანია, მე ვკვეთავ Banggood/Aliexpress– დან იაფი ნაწილებისთვის.
- ESP32 დაფა, მე გამოვიყენე Huzzah32 adafruit– დან, მაგრამ არსებობს უამრავი სხვა (იაფი) ვარიანტი. მე ავირჩიე Huzzah32, რადგან ის ძალიან კარგად არის დოკუმენტირებული.
- 4 1.3 დიუმიანი I2C OLED დისპლეი (128x64, SH1106 დრაივერთან ერთად), 0.96 დიუმიანი უფრო ხშირია, მაგრამ ამ პროექტისთვის მე მირჩევნია 1.3 დიუმიანი
- Sparkfun femtobuck– ის მძღოლი LED– ის მართვისთვის
- RTC საათი, მე ვიყენებ ლითიუმის უჯრედთან ერთად
- არდუინო ნანო
-ქალი USB 2.0 პორტი (მე გამოვიყენე: SS-52200-002 Stewart Connector– დან)
- ქალი DC ბუდე (მე გამოვიყენე: L722A Switchcraft– დან)
- 12V 3A DC ადაპტერი (GST36E12-P1J საშუალო ჭაბურღილიდან)
- პერსონალური PCB, სურვილისამებრ, მაგრამ ეს ხდის პროექტს ბევრად უფრო კომპაქტურ და ადვილად გამოსაყენებელს, თუ ნაწილი კვდება + მეტი საიმედოობა, რადგან ნაკლები მავთულია (jlcpcb.com)
- M3 ხრახნები და ჭანჭიკები
- M3 სპილენძის ჩანართები
- 12 ვოლტიდან 5 ვოლტამდე მოდული Pololu– დან (DF24V22F5)
- 3 ვატი იკვებება გამაცხელებელით
- ჯუმბერის მავთულები
- ბუზერი
- I2C მულტიპლექსერი (TCA9548A ადაფრუტიდან)
- 2 მბრუნავი კოდირება (მე შევეცადე ზოგიერთი, არა ყველა მუშაობს ჩემი კოდით. ის "DFrobot" - დან მუშაობს და ასევე მუშაობს ერთი მრგვალი PCB- დან "DIYmore" - დან. ჩემი კოდი არ მუშაობს ღილაკზე KY-040 ტიპის. ჩემი მაღვიძარა იყენებს ერთს DIYmore– დან, რადგან ისინი ძალიან ადვილია პანელის მთაზე (დამატებითი ხრახნები/ხვრელები არ არის საჭირო).
- ქალი თავების ასორტიმენტი (სურვილისამებრ)
- ხე ჩარჩოსთვის: 18 მმ x18 მმ x 2400 მმ
- მოკვლევის ქაღალდი
მე გამოვიყენე რამდენიმე ინსტრუმენტი (რკინა, მესამე ხელი, ხერხი …) ასევე, მაგრამ ეგზოტიკური არაფერი.
ნაბიჯი 1: ოლედის გამოყენება
OLED– ების გამოსაყენებლად თქვენ უნდა დააინსტალიროთ ბიბლიოთეკა. მე ვიყენებ U8G2lib– ს ოლი კრაუსისგან, ის ძალიან გასაგებია და აქვს საცნობარო სახელმძღვანელო ნათელი მაგალითებით.
თქვენი დაფის დასაკავშირებლად (ESP ან arduino) თქვენ უნდა იპოვოთ SDA და SCL ქინძისთავები. ეს ქინძისთავები არის I2C საკომუნიკაციო ქინძისთავები. Google თქვენი კონკრეტული დაფის "pinout" - ისთვის, თუ მათ ვერ იპოვით.
მე დავამატე რამდენიმე მაგალითი კოდი. კოდი მუშაობს როგორც arduino- სთვის, ასევე ESP32– ისთვის, მაგრამ ESP32– ს ნაკლები მეხსიერება აქვს. ყველა ოლედი, რაც აქამდე ვცადე, მუშაობს 3.3 ვ (ESP32) და 5 ვ.
ნაბიჯი 2: მრავალჯერადი OLED
ეს არის ის, სადაც ჩემი პროექტი იწყებს განსხვავებას სხვა მრავალი მაღვიძარადან. Arduinos/ESP– ების უმეტესობას აქვს მხოლოდ ერთი ან ორი I2C პინი. ეს ზღუდავს I2C ნაწილების გამოყენებას. რა მოხდება, თუ მაქვს 4 I2C სენსორი და მსურს მათი კითხვის ჩვენება I2C ეკრანზე? შეიყვანეთ მულტიპლექსერი. მულპლექსი საშუალებას გაძლევთ მიმართოთ 7 სხვადასხვა I2C ნაწილს. ეს საშუალებას აძლევს ჩემს ESP32– ს გამოიყენოს I2C რეალურ დროში და აჩვენოს დრო კვლავ I2C– ს გამოყენებით 4 ეკრანზე (ან მეტი, ნება არ მომეცით გაჩერება).
მე დავამატე რამდენიმე მაგალითი ESP32– ისთვის, აქედან არ ვარ დარწმუნებული, რომ arduino– ს შეუძლია გააგრძელოს. მაგალითი იყენებს მხოლოდ ჩვენებებს, ეს შეიძლება იყოს სხვა რამ, როგორიცაა I2C სენსორები და ა. პრინციპი ყოველთვის ერთია, თქვენ ეძახით სწორ არხს "tcaselect (#);" ფუნქცია, მაშინ თქვენ ასრულებთ ნებისმიერ კოდს, რომელიც გჭირდებათ თქვენთვის I2C ობიექტისთვის.
ნაბიჯი 3: მბრუნავი მენიუს შექმნა მბრუნავი კოდირებით
უპირველეს ყოვლისა, შეამოწმეთ თქვენი კოდირები. მე დავამატე რამდენიმე კოდი თქვენი კოდირების მოდულების შესამოწმებლად. როგორც მარაგებშია ნათქვამი: მე მხოლოდ წარმატებით გამოვცადე ჩემი კოდი DF რობოტის მბრუნავი კოდირების მოდულებით და DIYmore– დან მრგვალი PCB მოდულით. იხილეთ ზემოთ სურათები სწორი კოდირებისთვის.
ბიბლიოთეკა, რომელსაც ვიყენებ, არის ეს:
PDF, რომელიც მე დავამატე, იმედია ეხმარება მენიუს სტრუქტურაში, რომელიც მე გამოვიყენე ჩემი საათისათვის.
კოდის დამუშავება, ჩემთვის ყველაზე რთული ნაწილი იყო ამ პროექტში. არსებობს მრავალი განსხვავებული კოდირება და ბევრი განსხვავებული ბიბლიოთეკა, რომლებიც ყოველთვის არ არის თავსებადი ESP32– თან. მაგრამ მე ვფიქრობ, რომ (სამუშაო) მბრუნავი კოდირება არის ელეგანტური გადაწყვეტა, თუ გსურთ რაიმე შეიყვანოთ. მხოლოდ ღილაკები რომ გამომეყენებინა, დამჭირდებოდა 1 -ზე მეტი და დროის დაყენებას დასჭირდებოდა ბევრი დაჭერა.
ნაბიჯი 4: წინა კოდის ტოგეთერის დაყენება
სათაური აჯამებს იმას, რაც მე გავაკეთე. ნაწილ -ნაწილ ვცადე და შემდეგ ყველაფერი ერთად მოვათავსე. მაგრამ რადგანაც ადვილი არაფერია, მომიწია რაღაცეების შეცვლა. სერიული კომუნიკაცია ნელი პროცესია. ეს ხელს უშლის კოდირების სწორად კითხვას. ამის დასაძლევად მე დავამატე შეფერხებები კოდირების ქინძისთავებს. კოდირების წასაკითხად კოდი მაშინვე იძახება, თუ დააჭერთ ან გადაატრიალებთ კოდირს.
მას შემდეგ რაც გააცნობიერებთ როგორ არის აგებული მენიუ, აღმოაჩენთ რომ ძალიან ადვილია დაამატოთ ან წაშალოთ თქვენი სურვილისამებრ მახასიათებლები. ალბათ გსურთ ინტერნეტიდან ამოიღოთ მიმდინარე ამინდი ან დრო და აჩვენოთ იგი?
მე ბევრი ასეთი იდეა გამოვტოვე, რადგან უპირველეს ყოვლისა მინდოდა საიმედო დრო-მშვიდობა. ვინც ავტომატურად არაფერს აკეთებს. მე ძალიან უცნაურ საათებს ვმუშაობ დღისით დაზოგვის ზონაში. ყოველ ჯერზე, როცა საათს ცვლის, ნერვიულობას იწვევს ზედმეტი ძილი. ჩემი ტელეფონი ავტომატურად შეცვლის საათს? იქნება ჩემი საათი? ისე, ჩემი საათი არ იქნება, თუ მე თვითონ არ შევცვლი მას. მაგრამ იქნებ გსურთ სამზარეულოში ჩაიდოთ საათი? განსხვავებული სცენარი, დაამატეთ ფუნქციები მეხსიერების ამოწურვამდე!
ნაბიჯი 5: პერსონალური PCB ერთად Fritzing + სქემატური
ყურადღების წერტილი: ადაფრუტი აღნიშნავს, რომ სანამ თქვენ შეგიძლიათ huzzah32- ის ჩართვა USB პინის საშუალებით, თქვენ უნდა იყოთ ფრთხილად, რომ არ გამოიყენოთ ერთდროულად მიკრო USB დენის შესასვლელი. ჩემი PCB იკვებება ქვემოთ ჩამოთვლილი საფულის საშუალებით, რომელიც შემდეგ ხუზას აძლიერებს USB პინის საშუალებით. ასე რომ, ყოველთვის გამორთეთ გარე დენი/ამოიღეთ ჰუზა დაფიდან ატვირთვისას.
მე გადავწყვიტე შევაერთო ქალი სათაურები PCB– ზე, რადგან ეს აადვილებს ნაწილის გამოცვლას, ან დამატებას, მაგალითად, დამატებით I2C სენსორს. ეს ასევე მაძლევს საშუალებას ადვილად ამოვიღო ნანო ან ESP32 პროგრამების ჩატვირთვა.
მე დავამატე Frizting ფაილი, შემიძლია რომანი აქ დავწერო, მაგრამ მე ვფიქრობ, რომ მაგალითი საუკეთესოდ მეტყველებს. დავიწყე მთელი კონფიგურაციის სქემატური სქემით. მიუხედავად იმისა, რომ ფრინცინგს ბევრი ნაწილი აქვს მის ყუთებში, ყველაფერი იქ არ არის. ზოგჯერ შეგიძლიათ იპოვოთ Fritzing ნაწილი ინტერნეტში, ზოგჯერ კი არა. ნაწილები, რომლებიც მე ვერ ვიპოვე, უბრალოდ შევცვალე ქალის თავსაბურავის ნაწილი. თუ თქვენ დააწკაპუნებთ მასზე მარჯვენა ღილაკით, შეგიძლიათ შეცვალოთ სათაური თქვენთვის სასურველი ქინძისთავების რაოდენობის მიხედვით და მიანიჭოთ მას პინუტი. მე ამას ვაკეთებდი ყველა იმ ნაწილში, რასაც ვერ ვპოულობდი. რადგან თითქმის ყველა მოდული იყენებს ერთსა და იმავე სიმაღლეს 0.1 ინ (2.54 მმ), ეს მოგცემთ ნაწილის სწორ ინტერვალს.
შემდეგ თქვენ გადახვალთ მოციმციმე პროგრამის PCB ხედზე. PCB განთავსდება, თუ დააწკაპუნებთ, შეგიძლიათ მისი ზომა და აირჩიოთ ერთი ან ორმაგი ფენის PCB. ჩემი იყენებს 2 ფენას. გაყინვა შემოგვთავაზებს თქვენს კავშირებს სქემატურ ხედში. პროგრამას აქვს autoroute ვარიანტი, მაგრამ მე არასოდეს ვიყენებ მას. მე მიყვარს ჩემი კავშირების ხელით ორგანიზება. PCB ხედზე ყვითელი კავშირები ზედა ფენაშია, ნარინჯისფერი ქვედა ფენაში. ისევ თუ დააწკაპუნებთ კავშირზე, შეგიძლიათ აირჩიოთ მისი თვისებები.
ფაქტობრივი PCB- ის შესაქმნელად, თქვენ უნდა გაიტანოთ იგი გერბერის ფაილის სახით. სანამ ამას გააკეთებთ, ჩანართის ქვეშ "მარშრუტიზაცია" შეგიძლიათ შეამოწმოთ დიზაინის წესები. თუ ყველაფერი ამოწმებს შეგიძლიათ დააწკაპუნოთ "ექსპორტი PCB- სთვის". მწარმოებლების უმეტესობა ითხოვს გერბერის ფაილს, ასე რომ შეარჩიეთ ექსპორტი გერბერში.
მე შევუკვეთე ჩემი PCB JLCPCB– დან, მე მომწონს, რომ მათ დაუყოვნებლივ მოგაწოდეს ფასი. რა თქმა უნდა, ბევრი სხვა ვარიანტია.
სქემატურის შესახებ: გამოიყენება 2 ძაბვა. LED და femtobuck პირდაპირ იკვებება 12V წყაროსთან. დანარჩენი იკვებება 5 ვოლტიანი საფეხურით.
ნაბიჯი 6: დიზაინი + ლაზერული საჭრელი
ჩემი პირველი დიზაინისთვის შევეცადე მყარი მუხის გამოყენება (მე ვაკვირდები ხის დამუშავების კლასებს), მაგრამ სწრაფად გაირკვა, რომ ეს არ იყო იდეალური. ხე ძალიან სქელია, რაც ართულებს თქვენს ნაწილებს. 3 მმ არყის მულტიპლექსი იძლევა უფრო მარტივ გზებს კოდირებისა და ეკრანის დამაგრების მიზნით.
ვიპოვე ონლაინ ლაზერული სერვისი, snijlab.nl, რომელიც ხელმისაწვდომია როტერდამში განლაგებული მოყვარულთათვის (ისინი იგზავნებიან ბელგიაში, ნიდერლანდებსა და გერმანიაში). მათ ვებგვერდზე შეგიძლიათ ატვირთოთ თქვენი ნახატები და ისინი დაუყოვნებლივ ციტირებენ თქვენს ფასს. მე გამოვიყენე Autocad, რომელიც მაქვს სამსახურში, მაგრამ პროგრამულ უზრუნველყოფას ნამდვილად არ აქვს მნიშვნელობა. ის უბრალოდ უნდა იყოს ვექტორული ნახატი (Vectr, Illustrator, Inkscape…). მაღაზიების უმეტესობა იყენებს ფერებს, რათა დადგინდეს გსურთ ამოჭრა ან ამოკვეთა.
ზოგიერთი რამ უნდა გახსოვდეთ:
- მაქს. ლაზერული საჭრელის ზომები (მე დავხატე ჩარჩო ჩემი ნაწილების გარშემო)
- მინ. დაშორებებს შორის მანძილი
- დარწმუნდით, რომ თქვენ არ დახაზავთ ორმაგ ხაზებს, ლაზერი გააკეთებს დამატებით პასს, დაგიჯდებათ მეტი.
- PDF– ზე შედგენისას, დარწმუნდით, რომ ჩაწერეთ 1: 1. თქვენ არ გსურთ შემცირება ან ქაღალდზე მორგება.
ნაბიჯი 7: შეკრება
მე ავაშენე საათი ხის ჩარჩოს გარშემო, პანელები ინახება M3 ხრახნებითა და ჩანართებით ჩარჩოში. თუ მე ოდესმე ავაშენებ ვერსიას 2, მე გამოვიყენებ ალუმინის "L" პროფილებს პანელების დასამაგრებლად. ძალიან რთული იყო სპილენძის ჩანართებისთვის ხვრელების ზუსტად გაბურღვა. ძალიან დიდი დრო დამჭირდა, მისაღები შედეგისთვის. ეს ნიშნავს, რა თქმა უნდა, რომ ლაზერული ნახატის გადახედვაა საჭირო. მე ვფიქრობ, რომ ალუმინის პროფილებით და მხოლოდ თხილითა და ჭანჭიკით უკეთეს შედეგს მიიღებ.
სინათლის უკეთ გასავრცელებლად, მე პერფორაციების შიგნითა ნაწილზე მიმაგრებული მაქვს საჩვენებელი ქაღალდი. ეს აძლევს სინათლეს სასიამოვნო ბზინვარებას მას.
ნაბიჯი 8: ნუ გაჩერდები აქ
პროექტი ემყარება ESP32– ს, მე ძლივს გამოვიყენე იგი. ჩემი საძინებლის შუქები ამჟამად შეიძლება დისტანციურად კონტროლდებოდეს ბლინკის გამოყენებით. საათის კონტროლი მხოლოდ მცირე ნაბიჯია. ალბათ გსურთ რაიმე დამატებითი ეკრანი, რომელიც გაჩვენებთ თქვენს სახლის ტემპერატურას? ან ზოგიერთი ადგილობრივი სენსორი (ამ მულტიპლექსერზე ჯერ კიდევ არის სათადარიგო I2C კავშირი!). იქნებ დააყენოთ დრო/სიგნალიზაცია აპლიკაციისა და bluetooth- ის საშუალებით?
გამაგებინე რა შეიცვალე, რას შეცვლი, რა უნდა შეცვალო მე …
გირჩევთ:
Twin Bell მაღვიძარა სოდადან: 7 ნაბიჯი (სურათებით)
Twin Bell მაღვიძარა სოდადან: ეს ინსტრუქცია გიჩვენებთ თუ როგორ უნდა გააკეთოთ ორმაგი ზარი მაღვიძარა სოდადან. პროექტი იყენებს სოდა ქილებს, სადაც მელანი ამოიღეს (ბმული: მელნის მოცილება სოდადან). ამ მაღვიძარა სრულად ფუნქციონირებისათვის ინტეგრირებული იყო DIY კვარცის საათის მოდული
ბუშტის მაღვიძარა გაღვიძების სახალისოა (ish): 7 ნაბიჯი (სურათებით)
Bubble მაღვიძარა ხდის გაღვიძებას სახალისო (ish): გაღვიძება მაღვიძარა მაღვიძარა sucks. მე ერთ -ერთი ვარ იმ ადამიანებს, რომლებსაც არ უყვართ მზის ამოსვლამდე გაღვიძება (ან უკვე მრავალი საათია გასული). რა არის უკეთესი გზა გაიღვიძოს სახალისოდ, ვიდრე ბუშტუკების წვეულება საწოლში! არდუინოს და
Groundhog Day მაღვიძარა: 12 ნაბიჯი (სურათებით)
Groundhog Day მაღვიძარა: Groundhog Day მაღვიძარა შედგება Panasonic RC-6025 საათის საათისგან, რომელიც შეცვლილია ფილმის Groundhog Day- ის აუდიოს დასაკრავად, როდესაც მაღვიძარა ითიშება. მიზეზი, რის გამოც მე შევქმენი ეს მოწყობილობა არის ის, რომ Groundhog Day (ორივე დღე და ფილმი) ჩატარდა სპეციფიკა
ჭკვიანი მაღვიძარა: გონიანი მაღვიძარა დამზადებულია ჟოლოს პი: 10 ნაბიჯი (სურათებით)
ჭკვიანი მაღვიძარა: ჭკვიანი მაღვიძარა დამზადებულია ჟოლოს პი: ოდესმე გსურდათ ჭკვიანი საათი? თუ ასეა, ეს არის თქვენთვის გამოსავალი! მე გავაკეთე სმარტ მაღვიძარა, ეს არის საათი, რომლის საშუალებითაც შეგიძლიათ შეცვალოთ განგაშის დრო ვებგვერდის მიხედვით. როდესაც მაღვიძარა ითიშება, იქნება ხმა (ზუზუნი) და 2 შუქი
LED მზის ამოსვლის მაღვიძარა დააკონფიგურიროთ სიმღერის მაღვიძარა: 7 ნაბიჯი (სურათებით)
LED მზის ამოსვლის მაღვიძარა დასაკონფიგურირებელი სიმღერის სიგნალიზაციით: ჩემი მოტივაცია ამ ზამთარს ჩემს შეყვარებულს დილის გაღვიძებისთანავე ბევრი უბედურება ჰქონდა და თითქოს სნეულებას განიცდიდა (სეზონური აფექტური აშლილობა). მე კი ვამჩნევ, რამდენად რთულია ზამთარში გაღვიძება, რადგან მზე არ ამოდის