Мазмуну:

LCD дисплейи жана Bluetooth колдонмосу менен Sunrise Ойготкуч саат: 8 кадам
LCD дисплейи жана Bluetooth колдонмосу менен Sunrise Ойготкуч саат: 8 кадам

Video: LCD дисплейи жана Bluetooth колдонмосу менен Sunrise Ойготкуч саат: 8 кадам

Video: LCD дисплейи жана Bluetooth колдонмосу менен Sunrise Ойготкуч саат: 8 кадам
Video: ? Что такое многополосный 6 атомный хронометраж ? То 2024, Июль
Anonim
LCD дисплейи жана Bluetooth колдонмосу менен Sunrise Ойготкуч саат
LCD дисплейи жана Bluetooth колдонмосу менен Sunrise Ойготкуч саат
LCD дисплейи жана Bluetooth колдонмосу менен Sunrise Ойготкуч саат
LCD дисплейи жана Bluetooth колдонмосу менен Sunrise Ойготкуч саат

Кыш кайгылуу болушу мүмкүн. Сиз ойгоносуз, караңгы жана сиз төшөктөн турушуңуз керек. Сиз уккусу келген акыркы нерсе - будильниктин тажатма үнү. Эгерде сизде, мага окшоп, эртең менен ойгонуу кыйын болсо, бул будильник сизге керектүү нерсе.

Бул үйрөткүчтө биз Күн чыгышынын Ойготкуч Саатын курабыз. Бул ойготкуңуз келген саатты жана мүнөтүңүздү коё турган башка ойготкуч саат, бирок жарыктын жардамы менен уктоочу бөлмөнү бир аз убакыттын ичинде күндүн чыгышы сыяктуу ойготуп, кыжырдантуунун ордуна ойготот. коңгуроо!

Телефонуңуз аркылуу ойготкучту саатка коё турган колдонмону түзүү үчүн биз Bluetooth модулун колдонобуз. ЖК дисплей убактысын, күнүн жана күнүн көрсөтөт. Sunrise лампалары рынокто бар, бирок алар кымбат болушу мүмкүн (Google'дан тез издөө 100 евролук товарларды кайтарат), морт жана клиникалык көрүнүшү. Ошол себептен мен Arduino мектебимдин долбоорун өз колум менен жасоону чечтим. Бардык бөлүктөр кийинки кадамда тизмеленет. Кодду Github репо күн чыгыш-ойготкуч сааттан жүктөп алсаңыз болот. Баштайлы:)

бардык кодду бул жерден тапса болот:

1 -кадам: Бөлүктөрдү чогултуу

Бөлүктөрдү чогултуу
Бөлүктөрдү чогултуу
Бөлүктөрдү чогултуу
Бөлүктөрдү чогултуу
Бөлүктөрдү чогултуу
Бөлүктөрдү чогултуу

Биз күндүн чыгышын симуляциялоо үчүн саатты өзүбүздүн киришибиз жана ультра жаркыраган LED катары колдонобуз.

Районду куруу үчүн бизге керек болот:

- Arduino Uno- RTC DS3231 саат модулу - жарыктын жарыгын контролдоо үчүн MOSFET - супер жаркыраган LED (мен 2, бир жылуу, бир суук сатып алдым) - 9В батареяны жарыктандыруу үчүн - нан панели - ЖК дисплей (16: 2)- Bluetooth адаптери hc-05, ошондуктан биз ойготкучту орнотуу үчүн колдонмону пайдалана алабыз.

Сизге керектүү нерсенин баарын www.martoparts.nl сайтынан сатып алсаңыз болот

2 -кадам: Районду чогултуу

Циркти чогултуу
Циркти чогултуу
Циркти чогултуу
Циркти чогултуу

Сиз менин схемамдын эскизине кайрылсаңыз болот, тилекке каршы, мен программада RTC DS3231ди таба алган жокмун, ошондуктан мен муну менен алектенгем. Байланыштар чындыгында бир аз башкача, бул жерде байланыштар. (bluetooth модулу эскизде жок, бирок мен анын кантип иштээрин түшүндүрөм, анткени бул өтө татаал)

RTC DS3231GND arduino боюнча GNDге барат

VCC 5v барат

SDA arduinoго барат

SCL arduinoго барат Биз SQW & 32KMOSFET колдонбойбуз

Дарбаза пини Arduino Uno ~ 9 пинге барат, анткени ал PWMDrain пин терс жагына барат LED булагы пин Ардуинодо GNDге баратLCD-DisplayGND arduinoдогу GNDге барат.

VCC 5VSDAга өтөт arduino боюнча A4кө баратSKL A5ке барат arduinoLED- mosfetке барат+ 5v9v батареясына барат Сиз каалаган дүкөндөн 9v батарейканы сатып алып, ардуинону туташтыргыч тилкеси менен туташтыра аласыз.

Bluetooth модулу hc-055V arduinoдон 5Vга өтөт

GND arduino боюнча GNDге барат

Азыр дагы 2 кириш бар, бирок бул жерде татаал бөлүгү келип чыкты, биз hc-05тен arduinoTXке карама-каршы келгендерди туташтырышыбыз керек arduinoRX боюнча RXке hc-05тен arduino боюнча TXке өтүшүбүз керек.

Маанилүү: Ардуиного код жүктөп жатканда TC & RXти HC-05тен ажыратканыңызды текшериңиз же компилятордо "кодду жүктөөдө ката кетти" деген ката кетет.

3 -кадам: ЖК дисплейин жана саатты орнотуу

LCD дисплейин жана саатты орнотуу
LCD дисплейин жана саатты орнотуу
LCD дисплейин жана саатты орнотуу
LCD дисплейин жана саатты орнотуу

ЖК дисплей үчүн колдонулган китепкана суюк кристалл болуп саналат жана аны төмөнкү жерден тапса болот: https://github.com/fdebrabander/Arduino-LiquidCrys… ZIP файлын жүктөп алып, аны сактап, Arduino/libraries папкаңызга салыңыз.

Мен саатты иштетүү үчүн колдонуп жаткан китепкананы Rinky-Dinky Electronicsтен тапса болот https://www.rinkydinkelectronics.com/library.php?id=73 жана DS3231 бетинде экениңизди текшериңиз. ZIP файлын жүктөп алыңыз, аны сактап, Arduino китепканалар папкасына коюңуз.

Убакыт

Ардуино кодуңузга DS3231 же DS1307 китепканасын кошуңуз

Убакытты белгилөө үчүн коддун 3 сабын комментарийлебеңиз:

// rtc.setDOW (ДҮЙШӨМБҮ); // Жуманын күнүн ЖЕКШЕМЕГЕ коюу // rtc.setTime (23, 57, 0); // Убакытты 12: 00гө коюу (24 саат форматы) // rtc.setDate (14, 1, 2019); // Күндү 2014 -жылдын 1 -январына коюңуз

LCD дисплей

Китепкана liqduicrystal_i2cти arduino кодуңузга кошуңуз

ЖК дисплейде басып чыгаруу үчүн колдонуңуз

lcd.setCursor (кол, катар) // тексттин абалы lcd.print (~) // текст басылган

4 -кадам: Коддоо

Coding
Coding

Кодду жүктөп алыңыз: github:

ЖК дисплейге саатты коюу үчүн бул 3 сапты комментарийлебеңиз:

// rtc.setDOW (ДҮЙШӨМБҮ); // Жуманын күнүн ЖЕКШЕМЕГЕ коюу // rtc.setTime (23, 57, 0); // Убакытты 12: 00гө коюу (24 саат форматы) // rtc.setDate (14, 1, 2019); // Күндү 2014 -жылдын 1 -январына коюңуз

Lcd.setCuros колдонуңуз (col, row); дисплейдеги тексттин ордун белгилөө үчүн

lcd.setCursor (0, 2);

жана дисплейде бир нерсени басып чыгаруу үчүн ()

lcd.print (rtc.getDateStr ());

Кааласаңыз, бул өзгөрмөлөрдү өзгөртүңүз

int fadeTime = 1; // Жарык канча убакытка чейин жоголот setHour = 02; // Ойготуу үчүн сааттарды коюңуз (аскердик убакыт) int setMin = 49; // int uled = 9 ойгонуу үчүн мүнөт коюңуз; // PWM менен pinout коюңуз

Bluetooth модулунун коду

String firstHalf = getValue (киргизүү, ':', 0); // ":" чейин биринчи киргизүүнү текшериңиз

Сап secondHalf = getValue (киргизүү, ':', 1); // ":" кийин экинчи киргизүүнү текшерүү

// эгер сиз Bluetooth модулун колдонбосоңуз, бул кодду колдонуңуз

// // if (t.hour == setHour && t.min == setMin) // Ойгонууга убакыт келгенин текшериңиз! // {// баштоо (); //}

// биринчи 2 цифралуу киргизүүнү текшериңиз, андан кийин киргизүүнүн экинчи 2 цифрасын текшериңиз

if (t.hour == firstHalf.toInt () && t.min == secondHalf.toInt ()) {start (); }}

// саптарды бөлүү үчүн логика

String getValue (String data, char separator, int index) {int found = 0; int strIndex = {0, -1}; int maxIndex = data.length () - 1;

for (int i = 0; i <= maxIndex && found <= index; i ++) {if (data.charAt (i) == separator || i == maxIndex) {found ++; strIndex [0] = strIndex [1] + 1; strIndex [1] = (i == maxIndex)? i+1: i; }} кайтып табылды> индекс? data.substring (strIndex [0], strIndex [1]): ""; }

5 -кадам: Тестирлөөнүн убактысы

Кодуңузду түзүңүз жана компоненттер иштээрин текшериңиз!

6-кадам: Bluetooth колдонмосун орнотуу

Bluetooth колдонмосун орнотуу
Bluetooth колдонмосун орнотуу
Bluetooth колдонмосун орнотуу
Bluetooth колдонмосун орнотуу
Bluetooth колдонмосун орнотуу
Bluetooth колдонмосун орнотуу

Мен ойготкучту койгум келген сайын кодду казып алууну тажаттым, анткени ойготкучту орното турган колдонмо жасагым келди, бул оңой.

Http: //ai2.appinventor.mit.edu дарегине өтүңүз, анда биз ойготкучту коюуга мүмкүндүк берген жөнөкөй колдонмону жасай алабыз, мен жөнөкөй дизайнды орнотууну киргиздим (муну кийинчерээк оңдоп койсоңуз болот) жана код үчүн колдонулат bluetooth байланышы. Сиз андан кийин колдонмоңузду жарыялай аласыз жана аны телефонуңузга QR кодун колдонуп же түздөн -түз компьютериңизге жүктөп алып, телефонуңузга кабель менен өткөрүп бере аласыз. (скриншот)

7 -кадам: Ишти куруу

Ишти куруу
Ишти куруу
Ишти куруу
Ишти куруу
Ишти куруу
Ишти куруу

Сиз ар дайым ардуино саатыңыздын айланасында башка корпус кура аласыз. Мен өзүмдүн ойготкуч саатымды жасоо үчүн жыгачтан жана күңүрт плексигласс колдончумун. Мен жалтырабаган плексиглассты тандадым, ошондуктан сиз корпустун ичиндеги жарыкты так көрө аласыз, бирок сааттын ичин көрө албайсыз.

8 -кадам: Бүттү

Бүттү!
Бүттү!
Бүттү!
Бүттү!
Бүттү!
Бүттү!

Эми сиз кодду arduinoго жүктөп, корпусту куруп, саатыңызды туура топтогонуңузду текшерип, bluetooth колдонмосуна ойготкуч коюп, табигый түрдө ойгоно баштай аласыз!:)

Сунушталууда: