Სარჩევი:

დილის მეგობარი: 8 ნაბიჯი
დილის მეგობარი: 8 ნაბიჯი

ვიდეო: დილის მეგობარი: 8 ნაბიჯი

ვიდეო: დილის მეგობარი: 8 ნაბიჯი
ვიდეო: ზურა ყიფშიძე და ლელა წურწუმია 2024, ივლისი
Anonim
Image
Image

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

ნაბიჯი 1: იდეის გააზრება

ესკიზი და მასალები
ესკიზი და მასალები

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

ნაბიჯი 2: ესკიზი და მასალები

ესკიზი და მასალები
ესკიზი და მასალები

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

ნაბიჯი 3: გარე გარსაცმის შექმნა

გარე გარსაცმის შექმნა
გარე გარსაცმის შექმნა
გარე გარსაცმის შექმნა
გარე გარსაცმის შექმნა

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

ნაბიჯი 4: გარე გარსის ლაზერული ჭრა

ლაზერული გარეთა გარეთა გარსაცმები
ლაზერული გარეთა გარეთა გარსაცმები

მეორე პროტოტიპისთვის მინდოდა ზუსტი გაზომვები და უნდა შემექმნა pdf ლაზერულ საჭრელზე გასაგზავნად. ამის გასაკეთებლად მე გამოვიყენე ყუთების შემქმნელის აპლიკაციის ვებგვერდი, https://boxdesigner.connectionlab.org. ამ ვებგვერდზე მე შევიტანე ყუთის 3-განზომილება, ჩვენი მასალის სისქე, გაზომვის ერთეულები და რა ტიპის ფაილის შექმნა მინდოდა. ყუთების ზომები იყო 7.5 x 3 x 5 დიუმი და მე გამოვიყენე 1/8 სქელი აკრილის მასალა. თითის სახსრის ამონაკვეთების გაზომვები ავტომატურად კონფიგურირებული იყო 0.46875 ინჩზე. მე შევარჩიე pdf ვერსია, რადგან ეს არის ფაილის ტიპი, რომელსაც ლაზერული საჭრელი კითხულობს და მინდოდა შემეტანა ცვლილებები adobe ფაილში. ხაზის ფერები შევიცვალე წითლად, რათა ლაზერულმა საჭრელმა იცოდეს მათი ამოჭრა ნაცვლად ფორმის ამოტვიფრისა, და დავამატე მართკუთხედის ყუთი 3.92 ზომებით 1.56 -ით 1.56 -ში, რაც იქნება წინა ნაწილის ყუთი მე ასევე დავამატე მართკუთხედი, რომელიც ამოჭრილია 1 ინ -ით 0.5 ინ -ით მარჯვენა ბოლოში ქვედა ნაწილში, რომელიც ემსახურება მაღვიძარაზე დაკავშირებულ კაბელს. ბოლოს დავამატე სამი წრიული ხვრელი ზევით ორი ზუმერისა და ღილაკისთვის. ზუზუნის ღიობებს ჰქონდათ დიამეტრი 0.5 ინჩი და ღილაკის გახსნა 0.375 ინჩი.

ნაბიჯი 5: ერთად აწყობა

ერთად აყენებს მას
ერთად აყენებს მას

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

ნაბიჯი 6: კოდი

შესავალი:

ეს პროექტი დაშიფრულია ენის გამოყენებით c ++ Arduino IDE პროგრამულ უზრუნველყოფაზე. გამოყენებული მიკროკონტროლი იყო NodeMCU ESP8266– ით. ამ პროექტისთვის ჩვენ დაგვჭირდება გზა, რომ ზუსტად შევინარჩუნოთ დრო, ზარის ხმა, სიგნალიზაცია, რომელიც იწვევს სიგნალიზაციას და ეკრანი, რომელიც აჩვენებს დროს ყველა და განგაშის დროს. სრული კოდისთვის მიმართეთ ამ ბმულს

ბიბლიოთეკების იმპორტი

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

#მოიცავს "RTClib.h"

#მოიცავს "Wire.h" #მოიცავს #მოიცავს #მოიცავს #მოიცავს #მოიცავს

ცვლადების ინიცირება

შემდეგ ჩვენ გვჭირდება ცვლადების ინიცირება მოგვიანებით, მივანიჭოთ პინ -ის განლაგება ზუზერის ღილაკებისთვის, დავაყენოთ RTC და მოვათავსოთ LCD ეკრანის I2C მისამართი.

LiquidCrystal_I2C LCD (0x27, 20, 4);

const int buzzer1 = 12; const int buzzer2 = 0; const int ღილაკი = 2; RTC_DS3231 rtc; char daysOfTheWeek [7] [12] = {"კვირა", "ორშაბათი", "სამშაბათი", "ოთხშაბათი", "ხუთშაბათი", "პარასკევი", "შაბათი"} დაწყების დასაწყისში; int აქტიური დრო; int prevoustime = 0; char ahours1 [3]; char amins1 [3]; int საათი 1 = 0; int min1 = 0; char ahours2 [3]; char amins2 [3]; int საათი 2 = 0; int min2 = 0; char ahours3 [3]; char amins3 [3]; int საათი 3 = 0; int min3 = 0; int განგაში = 0; int ByteReceived; char მიღებული Char; const byte numChars = 32; char მიღებულიChars [numChars];

Აწყობა

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

void setup () {

#ifndef ESP8266 ხოლო (! სერიული); #endif if (! rtc.begin ()) {Serial.println ("RTC ვერ ვიპოვე"); ხოლო (1); } if (rtc.lostPower ()) {Serial.println ("RTC– მ დაკარგა ძალა, მოდით დავადგინოთ დრო!"); rtc.adjust (DateTime (F (_ DATE_), F (_ TIME_)))} lcd.init (); lcd. განათება (); // ხდის Baklight ON. lcd. წმინდა (); // ასუფთავებს LCD lcd.print ("00:00"); // ეკრანის ჩვენება კოდის ატვირთვის შემდეგ lcd.setCursor (10, 0); lcd.print ("00:00"); lcd.setCursor (0, 1); lcd.print ("დრო"); lcd.setCursor (10, 1); lcd.print ("სიგნალიზაცია 1"); lcd.setCursor (0, 3); lcd.print ("სიგნალიზაცია 2"); lcd.setCursor (0, 2); lcd.print ("00:00"); lcd.setCursor (10, 3); lcd.print ("სიგნალიზაცია 3"); lcd.setCursor (10, 2); lcd.print ("00:00"); rtc.begin (); pinMode (ღილაკი, INPUT); // დუმილის ღილაკის დაყენება pinMode (buzzer1, OUTPUT); // დააყენეთ პინი ზუზერის გამომავალი pinMode- სთვის (buzzer2, OUTPUT); // დააყენეთ ბუზერის გამომავალი Serial.begin (9600); Serial.println ("სიგნალიზაციის შეყვანის დრო HHMM ფორმატში, განგაშებს შორის სივრცის გარეშე"); დაწყების დრო = millis ()/1000; }

მონაცემების მიღება

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

void recvWithEndMarker () {

სტატიკური int ndx = 0; სიმებიანი დრო = Serial.readString (); for (ndx = 0; დრო [ndx]; ndx ++) {მიღებულიChars [ndx] = დრო [ndx]; } მიღებულიChars [ndx] = '\ 0'; Serial.print (მიღებულიChars); }

მაღვიძარაების დაყენება

შემდეგი ნაბიჯი არის სიგნალიზაციის დაყენება. აქ არის სიგნალიზაციის სიგნალი 1. სიგნალიზაციისთვის 2 და 3 იგივე პროცესი განმეორდა რამდენიმე რიცხვითი ცვლილებით.

/* სიგნალიზაცია 1*/

recvWithEndMarker (); int h, m; (h = 0; h <2; h ++) {ahours1 [h] = მიღებული Chars [h]; } for (m = 2; m <4; m ++) {amins1 [m-2] = მიღებული Chars [m]; } ahours1 [h] = '\ 0'; ამინები 1 [მ -2] = '\ 0'; Serial.print (ahours1); სერიული. ბეჭდვა (ამინები 1); საათი 1 = ატოი (საათები 1); მინ 1 = ატოი (ამინ 1); სერიული. ბეჭდვა (საათი 1); სერიული. ბეჭდვა (min1);

ბუზერი/ღილაკი

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

/ * დუმილის ღილაკი */

int დუმილი; int ბ; b = digitalRead (2); if (b == LOW) {დუმილი = 1; } else {დუმილი = 0; } / * სიგნალიზაციის დაწყება * / თუ (საათი == საათი 1 && წთ == წთ 1) {სიგნალიზაცია = 1; } else if (საათი == საათი 2 && წთ == წთ 2) {განგაში = 1; } else if (საათი == საათი 3 && წთ == წთ 3) {განგაში = 1; } else {alarm = 0; სიჩუმე = 0; } if (სიგნალიზაცია == 1 && დუმილი == 0) {ტონი (buzzer1, 4000, 1000); ტონი (buzzer2, 4000, 1000); დაგვიანება (1000); noTone (buzzer1); noTone (buzzer2); დაგვიანება (1000); }

ბეჭდვის დრო

დაბოლოს, ჩვენ უნდა დავბეჭდოთ განგაშის დრო და რეალური დრო LCD ეკრანზე.

თარიღი ახლა = rtc.now ();

int საათი = (ახლა. საათი ()); int mins = (ახლა. წუთი ()); / * სიგნალიზაციის დრო 00:00 ფორმატში */ lcd.setCursor (10, 0); lcd.print (ahours1); lcd.setCursor (13, 0); lcd.print (amins1); lcd.setCursor (0, 2); lcd.print (ahours2); lcd.setCursor (3, 2); lcd.print (amins2); lcd.setCursor (10, 2); lcd.print (ahours3); lcd.setCursor (13, 2); lcd.print (amins3); / * ჩვენების დრო RTC– დან */ lcd.setCursor (0, 0); lcd. ბეჭდვა (საათი); lcd.print (":"); lcd. ბეჭდვა (წთ);

ნაბიჯი 7: ელექტრონიკა

ელექტრონიკა
ელექტრონიკა
ელექტრონიკა
ელექტრონიკა
ელექტრონიკა
ელექტრონიკა

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

დასაწყებად მიამაგრეთ თქვენი NodeMCU თქვენი პურის დაფის შორს. ამის შემდეგ თქვენ უნდა დაუკავშიროთ თქვენი ყველა სხვა ელექტრონიკა NodeMCU და breadboard. დაიწყეთ თქვენი LCD ეკრანის დაკავშირებით SC1- ისთვის D1 და SDA- სთვის D2. LCD საშუალებას მისცემს მომხმარებელს დაინახოს მიმდინარე დრო და დაყენებული განგაშის დრო. ახლა მავთული დაუკავშირეთ თქვენს ზუზუნებს D3 და D6 ქინძისთავებთან. ზუზუნი საშუალებას მისცემს განგაში გააფრთხილოს მომხმარებელი, როდესაც მითითებული დრო დადგება. ახლა თქვენ უნდა დაურთოთ ღილაკი, რომ სიგნალიზაცია შეწყდეს. მიამაგრეთ ეს ღილაკი D4 პინზე. ახლა თქვენ მიამაგრებთ თქვენს რეალურ დროში საათს პურის დაფაზე. შეაერთეთ რეალურ დროში საათი, რათა ის გამოიყენოს იგივე SDA და SCL ქინძისთავები, რომლებიც გამოიყენება LCD ეკრანისთვის.

ნაბიჯი 8: საბოლოო

ფინალური
ფინალური

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

გირჩევთ: