Სარჩევი:

სამუშაო მენეჯერი - საოჯახო საქმეების მართვის სისტემა: 5 ნაბიჯი (სურათებით)
სამუშაო მენეჯერი - საოჯახო საქმეების მართვის სისტემა: 5 ნაბიჯი (სურათებით)

ვიდეო: სამუშაო მენეჯერი - საოჯახო საქმეების მართვის სისტემა: 5 ნაბიჯი (სურათებით)

ვიდეო: სამუშაო მენეჯერი - საოჯახო საქმეების მართვის სისტემა: 5 ნაბიჯი (სურათებით)
ვიდეო: ჯენიფერ გეიზი - "უკიდურესი სიმაღლე" - აუდიო წიგნი 2024, ივლისი
Anonim
სამუშაო მენეჯერი - საყოფაცხოვრებო სამუშაოების მართვის სისტემა
სამუშაო მენეჯერი - საყოფაცხოვრებო სამუშაოების მართვის სისტემა
სამუშაო მენეჯერი - საყოფაცხოვრებო სამუშაოების მართვის სისტემა
სამუშაო მენეჯერი - საყოფაცხოვრებო სამუშაოების მართვის სისტემა

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

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

ნაბიჯი 1: აპარატურა

ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა

პროექტი იყენებს რამდენიმე კარგად გამოყენებულ და დოკუმენტირებულ აპარატურულ კომპონენტს:

  • Arduino UNO/Nano - ეს არის სისტემის "ტვინი". საბორტო EEPROM მეხსიერება გამოყენებული იქნება ამოცანების მდგომარეობის შესანახად მაშინაც კი, როდესაც სისტემა გამორთულია. გაყვანილობის გასაადვილებლად, მე დავამონტაჟე ნანო ხრახნიან მინაზე, მაგრამ თუ გირჩევნიათ, შეგიძლიათ შედუღოთ ან გამოიყენოთ დამჭკნარი კავშირები GPIO ქინძისთავებთან.
  • Real -Time Clock (RTC) მოდული - გამოიყენება ჩაწერეთ დროის ნიშნული, რომლის დროსაც შესრულდა ამოცანები და, ბოლო დროს ახლანდელთან შედარებით, დაადგინეთ რომელი ამოცანებია ვადაგადაცილებული. გაითვალისწინეთ, რომ ერთეული, რომელიც მე მივიღე, შექმნილია იმისთვის, რომ გამოყენებულ იქნას მრავალჯერადი დატენვის LiPo ბატარეით (LIR2032). თუმცა, მე ვიყენებ CR2032 ბატარეას, რის გამოც დამჭირდა რამოდენიმე მოდიფიკაცია დატენვის მიკროსქემის გამორთვისთვის (თქვენ არ გსურთ სცადოთ დატენვის ბატარეის დატენვა, თორემ შეიძლება აფეთქების წინაშე აღმოჩნდეთ …). კერძოდ, მე ამოვიღე რეზისტორები R4, R5 და R6 და დიოდი აღინიშნა D1. შემდეგ მე შევქმენი შედუღების ხიდი მოკლედ იქ, სადაც R6 იყო. ეს ცვლილებები ასახულია ქვემოთ მოცემულ ფოტოში.
  • ISO14443 RFID მკითხველი + ერთი ტეგი თითო მომხმარებელზე- როგორც სისტემის "გამიჯვნის" საშუალება, ჩემს თითოეულ შვილს აქვს საკუთარი უნიკალური RFID ტეგი. ამოცანის შერჩევა და შემდეგ მათი წარწერის მკითხველზე გადატანა იქნება მექანიზმი, რომელიც გამოიყენება დავალების დასრულების აღსანიშნავად
  • 16x2 LCD დისპლეი - გამოიყენება სისტემის ინტერფეისის უზრუნველსაყოფად. დაფის გამოყენებით, რომელსაც აქვს განუყოფელი PCF8574A ზურგჩანთა, დაფა შეიძლება დაუკავშიროთ Arduino– ს I2C ინტერფეისის საშუალებით, რაც მნიშვნელოვნად ამარტივებს გაყვანილობას.
  • Rotary Encoder - იქნება მთავარი საკონტროლო ღილაკი, რომელსაც მომხმარებლები მიმართავენ სხვადასხვა ხელმისაწვდომი ამოცანების შესარჩევად
  • Wago კონექტორები - ეს ჩამკეტი კონექტორები არის მოსახერხებელი გზა კომპონენტების ერთმანეთთან დასაკავშირებლად ან მარტივი ავტობუსების შესაქმნელად რამდენიმე მოდულისთვის, რომელთაგან თითოეული მოითხოვს საერთო მიწას ან 5 ვ.

ნაბიჯი 2: გაყვანილობა

გაყვანილობა
გაყვანილობა

16x2 LCD დისპლეი და DS1307 RTC ორივე იყენებენ I2C ინტერფეისს, რაც მოსახერხებელია, რადგან გაყვანილობას ამარტივებს, მოითხოვს მხოლოდ წყვილი მავთულს Arduino– ს A4 (SDA) და A5 (SCL) ქინძისთავებზე

MFRC-522 RFID მკითხველი იყენებს SPI ინტერფეისს, რომელიც იყენებს ფიქსირებულ აპარატურას 11 (MOSI), 12 (MISO) და 13 (SCK). ის ასევე მოითხოვს მონათა შერჩევისა და გადატვირთვის ხაზს, რომელსაც მე მივანიჭე 10 და 9 შესაბამისად

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

მოხერხებულობისთვის, მე ვიყენებ WAGO 222 სერიის კონექტორულ ბლოკებს. ეს არის მყისიერად დახურული კონექტორები, რომლებიც უზრუნველყოფენ მყარ, მარტივ გზას ერთმანეთთან დასაკავშირებლად 2 და 8 მავთულს შორის და ძალიან მოსახერხებელია Arduino პროექტებისთვის, რომლებიც საჭიროებენ რამდენიმე მოდულს მიწის ან 5 ვ ხაზის გასაზიარებლად, ან სადაც თქვენ გაქვთ რამდენიმე მოწყობილობა იგივე I2C ან SPI ავტობუსი, ვთქვათ

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

ნაბიჯი 3: მშენებლობა

მე შევქმენი ძალიან ძირითადი 3D ნაბეჭდი საქმე ელექტრონიკის შესანახად. მე დავდე რამდენიმე მაგნიტი უკანა მხარეს ისე, რომ მოწყობილობა შეიძლება იყოს მაცივრის მხარეს, ისევე როგორც წინა დაბეჭდილი სია. მე ასევე დავტოვე USB სოკეტი დაუცველი, რადგან ის გამოიყენებოდა, თუ სისტემაში ახალი ამოცანების დამატება იქნებოდა საჭირო, ან შესასვლელად და ჩამოტვირთული მონაცემების ნაკრებისთვის, რომელიც აჩვენებს დასრულებულ დავალებებს და ა.

დაბეჭდვის შემდეგ არ შევინახე STL ფაილები, მაგრამ საკმაოდ ბევრი მსგავსი (და, ალბათ უკეთესი!) შემთხვევაა, რაც ხელმისაწვდომია thingiverse.com– ზე. გარდა ამისა, თქვენ შეგიძლიათ ააწყოთ ლამაზი ხის ყუთი, ან უბრალოდ გამოიყენოთ ძველი მუყაოს ყუთი ან ჭურჭლის ჭურჭელი ელექტრონიკის შესანახად.

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

კოდი
კოდი

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

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

სტრუქტურირებული ამოცანა {

char taskName [16]; // ამ ამოცანის მოკლე, "მეგობრული" სახელი, რომელიც გამოჩნდება ეკრანზე int repeatEachXDays; // კანონზომიერება, დღეებში, რომლებითაც მეორდება ეს ამოცანა. 1 = ყოველდღიური, 7 = ყოველკვირეული და ა.შ. ხელმოუწერელი ხანგრძლივი lastCompletedTime; // დროის ნიშნული, რომლის დროსაც ეს ამოცანა ბოლოჯერ დასრულდა int lastCompletedBy; // იმ პირის პირადობის მოწმობა, ვინც ბოლოს დაასრულა ეს ამოცანა};

მონაცემთა ძირითად სტრუქტურას ეწოდება "taskList", რომელიც უბრალოდ ცალკეული ამოცანების მასივია. თქვენ შეგიძლიათ განსაზღვროთ რომელი ამოცანები გსურთ აქ, რომლებიც ინიციალიზებულია 0 მნიშვნელობით იმ დროისათვის, როდესაც ისინი ბოლომდე დასრულდა და -1 მომხმარებლის ID– სთვის, რომელმაც ბოლო დროს შეასრულა ისინი

task taskList [numTasks] = {

მუდმივობის განყოფილებაში კოდის ზედა ნაწილში არის ერთი ბაიტის მნიშვნელობა სახელწოდებით "eepromSignature". ეს მნიშვნელობა გამოიყენება იმის დასადგენად, არის თუ არა EEPROM- ში შენახული მონაცემები მართებული. თუ თქვენ შეცვლით taskList ერთეულის სტრუქტურას, დავალებების დამატებით ან წაშლით, ან დამატებითი ველების დამატებით, ვთქვათ, თქვენ უნდა გაზარდოთ ეს მნიშვნელობა. თქვენ შეგიძლიათ იფიქროთ, როგორც მონაცემთა ძირითადი ვერსიის ნუმერაციის სისტემაზე

const byte eepromSignature = 1;

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

void restoreFromEEPROM () {

int checkByte = EEPROM.read (0); if (checkByte == eepromSignature) {EEPROM.get (1, taskList); }}

LCD ეკრანი და RTC მოდული იყენებენ I2C ინტერფეისს Arduino– სთან კომუნიკაციისთვის. ეს მოითხოვს ყველა მოწყობილობას ჰქონდეს უნიკალური I2C მისამართი. მე შევეცადე რამდენიმე განსხვავებული 16x2 ჩვენების დაფა და ზოგი, როგორც ჩანს, იყენებს მისამართს 0x27, ხოლო სხვა ერთი შეხედვით იდენტური დაფები იყენებს 0x3f. თუ აღმოაჩენთ, რომ თქვენი ეკრანი მხოლოდ კვადრატების სერიას აჩვენებს და ტექსტს არ შეიცავს, სცადეთ შეცვალოთ აქ მითითებული კოდში მითითებული მისამართის მნიშვნელობა:

LiquidCrystal_PCF8574 LCD (0x27);

როდესაც RFID ტეგი გამოვლენილია, კოდი კითხულობს 4 ბაიტიან იდენტიფიკატორს და იყენებს მას, რათა შეეცადოს მოძებნოს შესაბამისი მომხმარებელი ცნობილი მომხმარებლების ცხრილიდან. თუ ტეგი არ არის აღიარებული, 4 ბაიტიანი იდენტიფიკატორი გაიგზავნება სერიული მონიტორის კონსოლზე:

int GetUserFromRFIDTag (ბაიტი RFID ) {

for (int i = 0; i <numusers; i ++) = "" {<numUsers; i ++) {if (memcmp (userList .rfidUID, RFID, sizeof userList .rfidUID) == 0) {return userList .userID; }} Serial.print (F ("აღმოჩენილია უცნობი RFID ბარათი:")); for (byte i = 0; i <4; i ++) {Serial.print (RFID <0x10? "0": ""); Serial.print (RFID , HEX); } დაბრუნება -1; }

იმისათვის, რომ მომხმარებელს მიანიჭოთ ტეგი, თქვენ უნდა დააკოპიროთ ნაჩვენები ID და ჩაწეროთ 4 ბაიტიანი მნიშვნელობა მომხმარებელთა მასივში კოდის ზედა ნაწილში, შესაბამისი მომხმარებლის გვერდით:

const userList [numUsers] = {{1, "ჯინი", {0x00, 0x00, 0x00, 0x00}}, {2, "ჰარი", {0x12, 0x34, 0x56, 0x78}}, {3, "რონი", {0xE8, 0x06, 0xC2, 0x49}}, {4, "Hermione", {0x12, 0x34, 0x56, 0x78}}, {5, "Alastair", {0x12, 0x34, 0x56, 0x78}},};

ნაბიჯი 5: გამოყენება

გამოყენება
გამოყენება
გამოყენება
გამოყენება

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

სამუშაოს შესასრულებლად შერჩევის შემდეგ, მომხმარებლებს შეუძლიათ დაასკანირონ საკუთარი უნიკალური RFID fob მკითხველში, რათა აღნიშნონ ამოცანა როგორც დასრულებული. მათი პირადობის მოწმობა და მიმდინარე დრო ჩაიწერება და შეინახება Arduino– ს EEPROM– ში.

იმისათვის, რომ პირველად შეიქმნას სწორი RFID ტეგები, თქვენ უნდა გაუშვათ ესკიზი თანდართული Arduino სერიული მონიტორით. თითოეული ტეგის სკანირება და გაითვალისწინეთ სერიულ მონიტორზე ნაჩვენები 4 ბაიტიანი ექვსკუთხა UID მნიშვნელობა. შემდეგ შეცვალეთ კოდის ზედა ნაწილში გამოცხადებული მომხმარებლის სია, რომ მიანიჭოთ ეს ტეგის ID შესაბამის მომხმარებელს.

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

გირჩევთ: