Cov txheej txheem:

Tus Thawj Saib Xyuas Haujlwm - Tsev Haujlwm Ua Haujlwm Hauv Tsev: 5 Kauj Ruam (nrog Duab)
Tus Thawj Saib Xyuas Haujlwm - Tsev Haujlwm Ua Haujlwm Hauv Tsev: 5 Kauj Ruam (nrog Duab)

Video: Tus Thawj Saib Xyuas Haujlwm - Tsev Haujlwm Ua Haujlwm Hauv Tsev: 5 Kauj Ruam (nrog Duab)

Video: Tus Thawj Saib Xyuas Haujlwm - Tsev Haujlwm Ua Haujlwm Hauv Tsev: 5 Kauj Ruam (nrog Duab)
Video: Saib Mis paub Poj niam (hluas nkauj) tus yam ntxwv lub siab 2024, Hlis ntuj nqeg
Anonim
Tus Thawj Saib Xyuas Haujlwm - Tsev Haujlwm Ua Haujlwm Hauv Tsev
Tus Thawj Saib Xyuas Haujlwm - Tsev Haujlwm Ua Haujlwm Hauv Tsev
Tus Thawj Saib Xyuas Haujlwm - Tsev Haujlwm Ua Haujlwm Hauv Tsev
Tus Thawj Saib Xyuas Haujlwm - Tsev Haujlwm Ua Haujlwm Hauv Tsev

Kuv xav sim daws qhov teeb meem tiag tiag uas tau ntsib hauv peb tsev neeg (thiab, kuv xav tias, ntawm ntau lwm tus neeg nyeem), uas yog yuav faib li cas, txhawb siab, thiab muab nqi zog rau kuv cov menyuam rau kev pab ua haujlwm hauv tsev.

Txog tam sim no, peb tau khaws daim ntawv laminated ntawm A4 ntawv kaw rau sab ntawm lub tub yees. Nws muaj kab sib chaws ntawm cov haujlwm luam tawm ntawm nws, nrog cov nyiaj hauv hnab tshos uas tuaj yeem khwv tau los ua kom tiav txoj haujlwm ntawd. Lub tswv yim yog tias txhua lub sijhawm peb cov menyuam pab nrog ua haujlwm hnyav, lawv tau zuam hauv lub thawv ntawd thiab, thaum kawg ntawm txhua lub lim tiam, peb ntxiv cov nyiaj tau los, so lub rooj tsavxwm thiab pib dua. Txawm li cas los xij, cov npe ntawm cov haujlwm dhau los thiab hloov pauv nyuaj, peb qee zaum tsis nco qab los so lub rooj tsavxwm kom huv txhua lub lim tiam, thiab qee qhov haujlwm yuav tsum tau ua nrog ntau zaus-qee qhov yuav ua tiav txhua hnub, txawm li cas los xij lwm tus tsuas yog ib hlis ib zaug. Yog li, kuv teeb tsa txog kev tsim Arduino -based device los daws cov teeb meem no - kuv lub hom phiaj yog tsim qee yam uas tso cai rau yooj yim ntxiv/tshem tawm/hloov kho cov haujlwm, cov txheej txheem yooj yim rau kev kaw thaum ua haujlwm tau ua tiav thiab faib credit rau tus neeg tsim nyog, thiab txoj hauv kev txhawm rau taug qab cov sijhawm sib txawv thiab zaus uas cov haujlwm sib txawv yuav tsum tau ua, thiab hais txog cov haujlwm dhau sijhawm. Thiab cov lus qhia no yuav qhia pom qhov tshwm sim "Tus Thawj Saib Xyuas Haujlwm" ntaus ntawv tawm li cas.

Kauj ruam 1: Kho vajtse

Kho vajtse
Kho vajtse
Kho vajtse
Kho vajtse

Txoj haujlwm ua rau siv ntau qhov siv tau zoo thiab sau tseg cov khoom siv kho vajtse:

  • Arduino UNO/Nano - qhov no yog "lub hlwb" ntawm qhov system. Onboard EEPROM lub cim xeeb yuav raug siv los cawm lub xeev ntawm kev ua haujlwm txawm tias thaum lub kaw lus raug kaw. Txhawm rau kom yooj yim ntawm txoj hlua, Kuv tau teeb tsa Nano ntawm lub hau ntswj, tab sis koj tuaj yeem txuas lossis siv qhov txuas txuas rau GPIO pins hloov yog tias koj xav tau.
  • Lub Sijhawm Tiag Tiag (RTC) module - siv los sau lub sijhawm sijhawm uas cov haujlwm tau ua, thiab, los ntawm kev sib piv lub sijhawm kawg rau lub sijhawm tam sim no, txiav txim siab tias cov haujlwm dhau sijhawm lawm. Nco ntsoov tias chav tsev uas kuv tau txais tau tsim los siv nrog lub roj teeb LiPo uas tuaj yeem rov siv tau (LIR2032). Txawm li cas los xij, Kuv tab tom siv lub roj teeb CR2032 uas tsis tau them rov qab, yog li kuv yuav tsum tau hloov kho qee qhov kom tsis txhob them lub roj teeb (koj tsis xav sim rov roj teeb uas tsis tuaj yeem rov ua dua, lossis koj yuav ntsib qhov tawg …). Tshwj xeeb, Kuv tshem tawm cov resistors R4, R5, thiab R6, thiab cov diode cim D1. Tom qab ntawd kuv tsim tus choj txuas kom luv hla qhov uas R6 tau ua. Cov kev hloov pauv no tau piav qhia hauv daim duab hauv qab no.
  • ISO14443 RFID nyeem ntawv + ib cim rau ib tus neeg siv- raws li txoj hauv kev "gamifying" lub kaw lus, txhua tus ntawm kuv cov menyuam muaj lawv tus kheej cim cim npe RFID. Xaiv ib txoj haujlwm thiab tom qab swiping lawv daim ntawv hla tus nyeem ntawv yuav yog cov txheej txheem siv los khij ib txoj haujlwm ua tiav
  • 16x2 LCD zaub - siv los muab cov neeg siv cuam tshuam rau hauv kab ke. Los ntawm kev siv lub rooj tsavxwm uas muaj qhov tseem ceeb PCF8574A lub hnab ev ntawv, lub rooj tsavxwm tuaj yeem txuas nrog ntawm I2C interface rau Arduino, uas yooj yim rau kev thaiv qhov tseem ceeb.
  • Rotary Encoder - yuav yog lub pob qhov tseem ceeb tswj hwm uas cov neeg siv yuav tig los xaiv cov haujlwm sib txawv
  • Wago cov khoom sib txuas - cov txuas txuas txuas no yog txoj hauv kev yooj yim rau cov hlau txuas ua ke lossis tsim cov tsheb npav yooj yim rau ntau qhov qauv uas txhua tus xav tau hauv av lossis 5V cov khoom siv.

Kauj ruam 2: Kev thaiv kab

Thaiv
Thaiv

16x2 LCD zaub thiab DS1307 RTC ob qho tib si siv I2C interface, uas yooj yim raws li nws ua rau cov xov yooj yim dua, xav tau tsuas yog ib khub ntawm cov xov hlau mus rau A4 (SDA) thiab A5 (SCL) tus pin ntawm Arduino

MFRC-522 RFID nyeem ntawv siv tus SPI interface, uas siv cov khoos phis tawj ruaj khov 11 (MOSI), 12 (MISO), thiab 13 (SCK). Nws kuj tseem xav tau qhev xaiv thiab rov pib ua kab, uas kuv tau muab rau tus pin 10 thiab 9 feem

Cov teb encoder xav tau ib khub pins. Rau qhov ua tau zoo tshaj plaws, nws zoo tshaj yog cov pins no tuaj yeem cuam tshuam cuam tshuam sab nraud, yog li kuv siv cov koob digital 2 thiab 3. Koj tseem tuaj yeem nyem lub encoder raws li kev hloov pauv, thiab kuv tau txuas qhov no rau tus pin 4. Txawm tias nws tsis yog tam sim no siv hauv cov cai, koj yuav pom nws muaj txiaj ntsig rau ntxiv cov yam ntxwv ntxiv

Kom yooj yim, Kuv tab tom siv WAGO 222-series txuas txuas. Cov no yog qhov txuas txuas txuas uas muab qhov muaj zog, txoj hauv kev yooj yim ntawm kev sib txuas nyob txhua qhov ntawm 2 thiab 8 xov hlau ua ke, thiab yooj yim heev rau Arduino cov haujlwm uas xav tau ob peb lub qauv los qhia hauv av lossis 5V kab, lossis qhov twg koj muaj ntau yam khoom siv ntawm tib lub tsheb npav I2C lossis SPI, hais

Daim duab qhia txog yuav ua li cas txhua yam yog xaim ua ke.

Kauj Ruam 3: Kev tsim kho

Kuv tsim cov ntaub ntawv luam tawm 3D yooj yim heev rau tsev siv cov khoom siv hluav taws xob. Kuv tso qee cov hlau nplaum nyob tom qab kom lub tsev tuaj yeem ruaj ntseg mus rau sab ntawm lub tub yees, ib yam li cov npe teev tseg yav dhau los. Kuv kuj tau tso lub qhov ntsaws USB tso tawm, vim qhov no yuav siv yog tias cov haujlwm tshiab xav tau ntxiv rau hauv kab ke, lossis txhawm rau nkag mus thiab rub tawm cov ntaub ntawv qhia ua haujlwm tiav thiab lwm yam.

Kuv tsis tau khaws cov ntaub ntawv STL tom qab luam ntawv, tab sis muaj ntau qhov zoo sib xws (thiab, tej zaum zoo dua!) Rooj plaub muaj nyob ntawm thingiverse.com. Xwb, koj tuaj yeem tsim lub thawv ntoo zoo, lossis tsuas yog siv lub thawv ntawv thawv qub lossis lub thawv ntim khoom rau lub tsev siv hluav taws xob.

Kauj ruam 4: Code

Code
Code

Txoj cai-tau hais qhia tag nrho yog txuas raws li rub tawm hauv qab no. Nov yog qee qhov ntsiab lus tseem ceeb ntxiv kom nco ntsoov:

Kuv tau tsim cov txheej txheem kev cai, "ua haujlwm", uas yog ib pawg ntawm cov ntaub ntawv uas suav tag nrho cov khoom ntawm cov haujlwm ntawm ib txoj haujlwm. Kev ua haujlwm suav nrog lub npe, uas yuav zoo li cas lawv tshwm sim hauv LCD zaub (thiab yog li txwv rau 16 tus yam ntxwv), zaus uas lawv yuav tsum tau ua, thiab thaum twg thiab los ntawm leej twg lawv tau ua tiav zaum kawg

struct ua hauj lwm {

char npeName [16]; // Qhov luv, "tus phooj ywg" lub npe rau txoj haujlwm no raws li yuav tshwm ntawm cov zaub int repeatEachXDays; // Tsis tu ncua, nyob rau hauv hnub, uas cov haujlwm no tau rov ua dua. 1 = Txhua hnub, 7 = Txhua lub limtiam thiab lwm yam tsis tau kos npe ntev kawgCompletedTime; // Timestamp uas qhov haujlwm no tau ua tiav kawg kawgCompletedBy; // ID ntawm tus neeg uas ua tiav txoj haujlwm no kawg};

Cov ntaub ntawv tseem ceeb hu ua "taskList", uas yog ib qho yooj yim ntawm cov haujlwm sib cais. Koj tuaj yeem txheeb xyuas seb yam haujlwm twg koj xav tau ntawm no, uas tau pib ua ntej nrog tus nqi 0 rau lub sijhawm uas lawv tau ua tiav zaum kawg, thiab -1 rau tus ID ntawm tus neeg siv uas ua tiav lawv

task taskList [numTasks] = {

Hauv ntu ntu nyob rau sab saum toj ntawm cov cai, muaj ib tus lej byte hu ua "eepromSignature". Tus nqi no yog siv los txiav txim seb cov ntaub ntawv khaws tseg ntawm EEPROM siv tau. Yog tias koj hloov pauv tus qauv ntawm cov haujlwm cov khoom npe, los ntawm kev ntxiv lossis tshem tawm cov haujlwm, lossis ntxiv cov haujlwm ntxiv, hais, koj yuav tsum nce tus nqi no. Koj tuaj yeem xav txog nws zoo li lub hauv paus txheej txheem lej lej rau cov ntaub ntawv

const byte eepromSignature = 1;

Thaum pib, qhov kev zov me nyuam tsuas yog sim thauj cov ntaub ntawv khaws cia hauv EEPROM yog tias nws phim qhov kos npe ntawm cov ntaub ntawv tau teev tseg hauv txoj cai.

void restoreFromEEPROM () {

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

Cov zaub LCD thiab RTC module siv I2C interface los sib tham nrog Arduino. Qhov no xav tau txhua lub cuab yeej kom muaj qhov tshwj xeeb I2C chaw nyob. Kuv tau sim ob peb qhov sib txawv 16x2 cov laug cam, thiab qee qhov zoo li siv qhov chaw nyob 0x27, thaum lwm qhov zoo li cov laug cam zoo ib yam siv 0x3f. Yog tias koj pom koj cov duab tsuas yog qhia ua ntu ntawm plaub fab thiab tsis muaj ntawv nyeem, sim hloov tus nqi chaw nyob uas tau hais tseg hauv cov cai ntawm no:

LiquidCrystal_PCF8574 lcd (0x27);

Thaum pom daim npav RFID, tus lej nyeem tus cim 4-byte, thiab siv nws los sim saib cov neeg siv sib xws los ntawm lub rooj ntawm cov neeg siv paub. Yog tias daim ntawv tsis raug lees paub, tus lej cim 4 byte yuav raug xa mus rau tus saib xyuas lub luag haujlwm:

int GetUserFromRFIDTag (byte RFID ) {

rau (int i = 0; i <numusers; i ++) = "" {<numUsers; i ++) {if (memcmp (userList .rfidUID, RFID, sizeof userList .rfidUID) == 0) {return userList .userID; }} Serial.print (F ("Tsis paub daim npav RFID kuaj pom:")); rau (byte i = 0; i <4; i ++) {Serial.print (RFID <0x10? "0": ""); Serial.print (RFID , HEX); } rov qab -1; }

Txhawm rau muab cov ntawv cim rau tus neeg siv, koj yuav tsum luam daim ID tso tawm thiab ntxig tus lej 4-byte rau hauv cov neeg siv khoom nyob rau sab saum toj ntawm cov cai, ib sab ntawm cov neeg siv sib xws:

const user 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}},};

Kauj ruam 5: Siv

Pab
Pab
Pab
Pab

Yog tias koj tau ua tiav qhov no, kev siv cov txheej txheem yuav tsum muaj kev cuam tshuam ncaj ncees los ntawm cov cai; txhua lub sijhawm, cov neeg siv tuaj yeem tig lub pob qhov rooj tig los ntawm cov npe ntawm cov haujlwm uas muaj. Cov haujlwm uas dhau sijhawm lawm tau cim nrog lub hnub qub tom qab lawv lub npe.

Thaum tau xaiv txoj haujlwm kom ua tiav, cov neeg siv tuaj yeem tshawb xyuas lawv tus kheej qhov tshwj xeeb RFID fob hla tus nyeem ntawv txhawm rau kos txoj haujlwm ua tiav. Lawv daim ID thiab lub sijhawm tam sim no yuav raug kaw thiab khaws cia rau EEPROM ntawm Arduino.

Txhawm rau xub teeb tsa cov cim cim RFID kom raug, koj yuav tsum khiav cov duab nrog Arduino cov saib txuas nrog. Luam theej duab txhua daim thiab sau tseg ntawm 4-byte hex UID tus nqi tso tawm ntawm tus saib xyuas. Tom qab ntawd hloov kho cov npe neeg siv tshaj tawm nyob rau sab saum toj ntawm txoj cai txhawm rau muab daim npav ID no rau cov neeg siv tsim nyog.

Kuv txiav txim siab ntxiv kev ua haujlwm los luam tawm tsab ntawv tshaj tawm qhia tag nrho cov haujlwm tiav, los ntawm cov neeg siv, nyob rau lub lim tiam dhau los txhawm rau faib cov khoom tsim nyog tau txais txiaj ntsig txhua lub lim tiam. Txawm li cas los xij, raws li nws tshwm sim, kuv cov menyuam zoo li tau txaus siab los ntawm qhov tshiab ntawm kev siv lub system kom tsis nco qab txog qhov khoom plig txais nyiaj tag! Qhov no yuav yog qhov yooj yim sib ntxiv txawm li cas los xij, thiab tau tso tseg raws li kev tawm dag zog rau tus nyeem ntawv:)

Pom zoo: