Orodha ya maudhui:

Meneja wa Kazi - Mfumo wa Usimamizi wa Chore za Kaya: Hatua 5 (na Picha)
Meneja wa Kazi - Mfumo wa Usimamizi wa Chore za Kaya: Hatua 5 (na Picha)

Video: Meneja wa Kazi - Mfumo wa Usimamizi wa Chore za Kaya: Hatua 5 (na Picha)

Video: Meneja wa Kazi - Mfumo wa Usimamizi wa Chore za Kaya: Hatua 5 (na Picha)
Video: 🟡 POCO X5 PRO - САМЫЙ ДЕТАЛЬНЫЙ ОБЗОР и ТЕСТЫ 2024, Julai
Anonim
Meneja wa Kazi - Mfumo wa Usimamizi wa Chore za Kaya
Meneja wa Kazi - Mfumo wa Usimamizi wa Chore za Kaya
Meneja wa Kazi - Mfumo wa Usimamizi wa Chore za Kaya
Meneja wa Kazi - Mfumo wa Usimamizi wa Chore za Kaya

Nilitaka kujaribu kushughulikia shida halisi iliyokabiliwa na kaya yetu (na, nadhani, hiyo ya wasomaji wengine wengi), ambayo ni jinsi ya kutenga, kuhamasisha, na kuwazawadia watoto wangu kwa kusaidia kazi za nyumbani.

Hadi sasa, tumeweka karatasi ya A4 iliyowekwa laminated kando ya friji. Ina gridi ya kazi iliyochapishwa juu yake, na viwango vinavyohusiana vya pesa za mfukoni ambazo zinaweza kupatikana kwa kumaliza kazi hiyo. Wazo ni kwamba kila wakati mmoja wa watoto wetu anaposaidia kufanya kazi, wanapata alama kwenye sanduku hilo na, mwishoni mwa kila wiki, tunajumlisha pesa zilizopatikana, futa bodi na kuanza tena. Walakini, orodha ya kazi imepitwa na wakati na ni ngumu kuibadilisha, wakati mwingine hatukumbuki kuifuta bodi safi kila wiki, na kazi zingine zinahitajika kufanywa na masafa tofauti - zingine zinaweza kufanywa kila siku, wakati wengine wanaweza kuwa mara moja tu kwa mwezi. Kwa hivyo, nilianza kuunda kifaa kinachotegemea Arduino kushughulikia maswala haya - nia yangu ilikuwa kuunda kitu kinachoruhusu kuongeza / kuondoa / kusasisha kazi kwa urahisi, utaratibu uliorekebishwa wa kurekodi wakati kazi ilikuwa imefanywa na kupeana mkopo kwa mtu anayefaa, na njia ya kufuatilia ratiba tofauti na masafa ambayo kazi tofauti zinahitajika kufanywa, na onyesha kazi zilizocheleweshwa. Na hii inayoweza kufundishwa itaonyesha jinsi kifaa kilichosababisha "Meneja wa Task" kilitoka.

Hatua ya 1: Vifaa

Vifaa
Vifaa
Vifaa
Vifaa

Mradi hutumia vifaa kadhaa vya vifaa vilivyotumika na vilivyoandikwa:

  • Arduino UNO / Nano - hii ndio "akili" za mfumo. Kumbukumbu ya EEPROM ndani itatumika kuokoa hali ya majukumu hata wakati mfumo umezimwa. Kwa urahisi wa wiring, nimeweka Nano kwenye screwshield, lakini unaweza kuuza au kutumia unganisho lililopigwa kwa pini za GPIO badala yake ukipenda.
  • Moduli ya Saa ya Saa (RTC) - ilitumika kurekodi muhuri wa wakati ambao kazi zilifanywa, na, kwa kulinganisha wakati wa mwisho na wakati wa sasa, amua ni kazi zipi zimechelewa. Kumbuka kuwa kitengo nilichopokea kiliundwa kutumiwa na betri inayoweza kuchajiwa ya LiPo (LIR2032). Walakini, ninatumia betri ya CR2032 isiyoweza kuchajiwa, kwa hivyo nilihitaji kufanya marekebisho kadhaa kuzima mzunguko wa kuchaji (hautaki kujaribu kuchaji betri isiyoweza kuchajiwa, au unaweza kukumbana na mlipuko….). Hasa, niliondoa vipinga R4, R5, na R6, na diode iliashiria D1. Kisha nikaunda daraja la solder kwa kifupi kote ambapo R6 ilikuwa. Mabadiliko haya yameonyeshwa kwenye picha hapa chini.
  • Msomaji wa ISO14443 RFID + tag moja kwa kila mtumiaji- kama njia ya "kutengeneza" mfumo, kila mmoja wa watoto wangu ana lebo yao ya kipekee ya RFID. Kuchagua kazi na kuteremsha lebo yao kwa msomaji itakuwa utaratibu unaotumika kuashiria kazi imekamilika
  • Uonyesho wa 16x2 LCD - uliotumiwa kutoa kiolesura cha mtumiaji kwa mfumo. Kwa kutumia bodi ambayo ina mkoba muhimu wa PCF8574A, bodi inaweza kushikamana kupitia kiolesura cha I2C kwa Arduino, ambayo inarahisisha wiring kwa kiasi kikubwa.
  • Encoder ya Rotary - itakuwa kitovu kuu cha kudhibiti ambacho watumiaji watageukia kuchagua kazi tofauti zinazopatikana
  • Viunganishi vya Wago - viungio hivi vya kufunga-snap ni njia rahisi ya kuwekea vifaa vya waya pamoja au kuunda mabasi rahisi kwa moduli kadhaa ambazo kila zinahitaji ardhi ya kawaida au usambazaji wa 5V.

Hatua ya 2: Wiring

Wiring
Wiring

Onyesho la 16x2 LCD na DS1307 RTC zote zinatumia kiolesura cha I2C, ambayo ni rahisi kwani inafanya wiring iwe rahisi zaidi, inayohitaji waya tu zinazoenda kwenye pini za A4 (SDA) na A5 (SCL) za Arduino

Msomaji wa MFRC-522 RFID hutumia kiolesura cha SPI, ambacho hutumia pini za vifaa vya kudumu 11 (MOSI), 12 (MISO), na 13 (SCK). Inahitaji pia kuchagua mtumwa na kuweka upya laini, ambayo nimepewa pini 10 na 9 mtawaliwa

Usimbuaji wa rotary unahitaji jozi ya pini. Kwa utendaji mzuri, ni bora ikiwa pini hizi zinaweza kushughulikia usumbufu wa nje, kwa hivyo ninatumia pini za dijiti 2 na 3. Unaweza pia kubofya kisimbuzi kama swichi, na nimeunganisha hii kuwa pini 4. Ingawa sio inayotumiwa kwa sasa kwenye nambari, unaweza kuiona kuwa muhimu kwa kuongeza huduma zingine

Kwa urahisi, ninatumia vizuizi vya viunganishi vya mfululizo vya WAGO 222. Hizi ni viunganisho vya kufunga-haraka ambavyo vinatoa njia thabiti, rahisi ya kuunganisha mahali popote kati ya waya 2 na 8 pamoja, na ni rahisi sana kwa miradi ya Arduino ambayo inahitaji moduli kadhaa kushiriki ardhi au laini ya 5V, au mahali ambapo una vifaa vingi kwenye basi hiyo hiyo ya I2C au SPI, sema

Mchoro unaonyesha jinsi kila kitu kinaunganishwa pamoja.

Hatua ya 3: Ujenzi

Niliunda kesi ya msingi ya 3D iliyochapishwa ili kuweka vifaa vya elektroniki. Niliweka sumaku nyuma ili kitengo kiweze kupata upande wa jokofu, kama vile orodha ya hapo awali ilivyokuwa. Niliacha pia tundu la USB wazi, kwani hii ingetumika ikiwa kazi mpya zinahitajika kuongezwa kwenye mfumo, au kuingia na kupakua seti ya data inayoonyesha kazi zilizokamilishwa nk.

Sikuhifadhi faili za STL baada ya kuchapisha, lakini kuna kesi nyingi sawa (na, labda bora!) Zinapatikana kwenye thingiverse.com. Vinginevyo, unaweza kujenga sanduku nzuri la mbao, au tumia tu sanduku la zamani la kadibodi au chombo cha tupperware kuweka vifaa vya elektroniki.

Hatua ya 4: Kanuni

Kanuni
Kanuni

Nambari iliyo na maoni kamili imeambatishwa kama upakuaji hapa chini. Hapa kuna vidokezo muhimu zaidi vya kuzingatia:

Nimeunda muundo maalum, "task", ambayo ni kitengo cha data ambacho hujumuisha mali zote za kazi katika chombo kimoja. Kazi zinajumuisha jina, ambayo itakuwa jinsi zinavyoonekana kwenye onyesho la LCD (na kwa hivyo imepunguzwa kwa wahusika 16), masafa ambayo wanahitaji kutekelezwa, na ni lini na nani wamekamilishwa mwisho

kazi ya muundo {

char taskName [16]; // Jina fupi, "la urafiki" la kazi hii kama itaonekana kwenye maonyesho int repeatEachXDays; // Usawa, kwa siku, ambayo kazi hii inarudiwa. 1 = Kila siku, 7 = Kila juma nk haijasainiwa muda mrefuLakamilishwaTime; // Timestamp ambayo kazi hii ilikamilishwa mwisho int lastCompletedBy; // Kitambulisho cha mtu aliyekamilisha kazi hii mwisho};

Muundo kuu wa data unaitwa "taskList", ambayo ni safu ya kazi tofauti. Unaweza kufafanua kazi zozote unazotaka hapa, ambazo zinaanzishwa na thamani ya 0 kwa wakati ambao zilikamilishwa mwisho, na -1 kwa kitambulisho cha mtumiaji aliyezifanya mwisho

Orodha ya kazi [numTasks] = {

Katika sehemu ya kudumu juu ya nambari, kuna thamani moja ya baiti iitwayo "eepromSignature". Thamani hii hutumiwa kuamua ikiwa data iliyohifadhiwa kwenye EEPROM ni halali. Ukibadilisha muundo wa kipengee cha orodha ya kazi, kwa kuongeza au kuondoa kazi, au kuongeza sehemu za ziada, sema, unapaswa kuongeza thamani hii. Unaweza kufikiria kama mfumo wa nambari ya msingi ya data

const byte eepromSignature = 1;

Wakati wa kuanza, programu itajaribu tu kupakia data iliyohifadhiwa kwenye EEPROM ikiwa inalingana na saini ya data iliyoainishwa kwenye nambari.

utupu rejeshiFromEEPROM () {

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

Uonyesho wa LCD na moduli ya RTC hutumia kiolesura cha I2C kuwasiliana na Arduino. Hii inahitaji kila kifaa kuwa na anwani ya kipekee ya I2C. Nimejaribu bodi kadhaa za kuonyesha 16x2, na zingine zinaonekana kutumia anwani 0x27, wakati bodi zingine zinazoonekana zinazofanana zinatumia 0x3f. Ikiwa unapata onyesho lako linaonyesha tu safu ya mraba na hakuna maandishi, jaribu kubadilisha thamani ya anwani iliyoelezwa kwenye nambari hapa:

LiquidCrystal_PCF8574 LCD (0x27);

Lebo ya RFID inapogunduliwa, nambari hiyo inasoma kitambulisho cha 4-byte, na hutumia kujaribu kumtafuta mtumiaji anayefaa kutoka kwenye meza ya watumiaji wanaojulikana. Ikiwa kitambulisho hakijatambuliwa, kitambulisho cha baiti 4 kitatumwa kwa dashibodi ya ufuatiliaji wa serial:

int GetUserFromRFIDTag (byte RFID ) {

kwa (int i = 0; i <numusers; i ++) = "" {<numUsers; i ++) {if (memcmp (userList .rfidUID, RFID, sizeof userList .rfidUID) == 0) {kurudi userList .userID; }} Serial.print (F ("Kadi ya RFID isiyojulikana imegunduliwa:")); kwa (byte i = 0; i <4; i ++) {Serial.print (RFID <0x10? "0": ""); Serial.print (RFID , HEX); } kurudi -1; }

Ili kupeana lebo kwa mtumiaji, unapaswa kunakili kitambulisho kilichoonyeshwa na ingiza thamani ya 4-byte kwenye safu ya watumiaji juu ya nambari, karibu na mtumiaji anayefaa:

mtumiaji userList [numUsers] = {{1, "Ginny", {0x00, 0x00, 0x00, 0x00}}, {2, "Harry", {0x12, 0x34, 0x56, 0x78}}, {3, "Ron", {0xE8, 0x06, 0xC2, 0x49}}, {4, "Hermione", {0x12, 0x34, 0x56, 0x78}}, {5, "Alastair", {0x12, 0x34, 0x56, 0x78}},};

Hatua ya 5: Matumizi

Matumizi
Matumizi
Matumizi
Matumizi

Ikiwa umeifanya iwe hivi sasa, matumizi ya mfumo inapaswa kuwa wazi kabisa kutoka kwa nambari; wakati wowote, watumiaji wanaweza kugeuza kitovu cha kuzunguka kupitia orodha ya kazi zinazopatikana. Kazi ambazo zimepitwa na wakati huwekwa alama na kinyota baada ya jina lao.

Baada ya kuchagua kazi ya kutekeleza, watumiaji wanaweza kuchambua fob yao ya kipekee ya RFID kwa msomaji ili kuashiria kazi imekamilika. Kitambulisho chao na wakati wa sasa zitarekodiwa na kuhifadhiwa kwa EEPROM ya Arduino.

Ili kuanzisha kwanza vitambulisho sahihi vya RFID, unapaswa kuendesha mchoro na mfuatiliaji wa mfululizo wa Arduino. Changanua kila lebo na uangalie thamani ya UID ya hex 4-ka iliyoonyeshwa kwenye mfuatiliaji wa serial. Kisha rekebisha orodha ya watumiaji iliyotangazwa juu ya nambari ili kupeana kitambulisho hiki kwa mtumiaji anayefaa.

Nilifikiria kuongeza utendaji ili kuchapisha ripoti inayoonyesha kazi zote zilizokamilishwa, na mtumiaji, wakati wa wiki iliyopita ili kutoa tuzo inayofaa ya pesa mfukoni kila wiki. Walakini, kama inavyotokea, watoto wangu wanaonekana kuridhika na riwaya ya kutumia mfumo kuwa wamesahau kabisa malipo ya pesa mfukoni! Hii itakuwa nyongeza rahisi lakini, na imesalia kama zoezi kwa msomaji:)

Ilipendekeza: