Израда вашег „уради сам“ Ардуино термометра је забаван и практичан начин да проширите своје вештине пецања, али одакле да почнете? Придружите нам се док улазимо у ожичење и кодирање које иде у претварање Ардуина, ДС18Б20 температурне сонде, и ОЛЕД екран у прецизан дигитални термометар који може добро да ради у собама, акваријумима, па чак на отвореном.
Шта вам је потребно да направите „уради сам“ Ардуино дигитални термометар?
Све ове компоненте се могу наћи на веб локацијама као што су еБаи и Амазон.
Ардуино плоча
За овај пројекат можете користити било који Ардуино са излазом од 5В. Користимо Ардуино Про Мицро тако да наш готов термометар буде компактан, али можете користити већу плочу као што је Ардуино Уно ако желите да избегнете лемљење за овај пројекат.
ДС18Б20 температурна сонда
Сензори температуре ДС18Б20 могу се наћи као мали самостални сензори, ПЦБ са причвршћеним сензорима или као водоотпорне сонде на дугим жицама. Изабрали смо ово друго, јер нам то омогућава да користимо наш термометар унутар акваријума, али можете изабрати било коју варијанту сензора температуре ДС18Б20. За разлику од других типова температурних сензора, ДС18Б20с пружају директан-дигитални сигнал вашем Ардуину, уместо аналогних сигнала који долазе из опција као што су ЛМ35 температурни сензори.
ОЛЕД/ЛЦД екран
Дисплеј који одаберете за свој термометар имаће велики утицај на готов производ. Изабрали смо 1,3-инчни И2Ц-компатибилан монохроматски бели ОЛЕД екран за наш термометар, али можете изабрати шта год желите све док подржава И2Ц.
Додатни мали делови
- 4.7К (килоом) отпорник
- 28 до 22 АВГ силиконско/ПВЦ изолована жица
- Матична плоча (опционо за оне који не желе да леме)
Ожичење вашег „уради сам“ термометра
Ожичење за овај пројекат је далеко једноставније него што можете замислити. Користећи горњи дијаграм струјног кола, можете да направите сопствени дигитални термометар „уради сам“ уз мало труда, али смо такође разбили дијаграм испод да бисмо га лакше пратили.
Ожичење температурне сонде ДС18Б20
Исправно повезивање сонде за температуру ДС18Б20 је од виталног значаја за овај пројекат и морате да будете сигурни да користите отпорник од 4,7К који смо раније споменули или ваша сонда неће исправно радити. Сонда долази са три жице: Гроунд (обично црна), ВЦЦ (обично црвена) и Дата.
- ВЦЦ се повезује на 5В пин на вашем Ардуину
- Уземљење се повезује на ГНД пин на вашем Ардуину
- Подаци се могу повезати на било који дигитални пин на вашем Ардуину (изабрали смо дигитални пин 15)
- Жице података и ВЦЦ такође морају бити повезане једна са другом помоћу отпорника од 4,7К
Ожичење И2Ц ОЛЕД екрана
Пошто користимо И2Ц везу између нашег ОЛЕД екрана и нашег Ардуина, морамо да повежемо само четири жице пре него што почнемо да користимо наш екран: ВЦЦ, Гроунд, СДА и СЦЛ. Скоро сваки модерни Ардуино има уграђене СДА и СЦЛ пинове, пружајући могућност повезивања до 128 јединствених И2Ц компоненти на једну плочу.
Наш Ардуино Про Мицро има СДА на дигиталном пину 2 и СЦЛ на дигиталном пину 3, али можда ћете морати да потражите пиноут дијаграм одређене плоче коју сте одабрали пре него што почнете.
- ВЦЦ се повезује на 5В пин на вашем Ардуину
- Уземљење се повезује на ГНД пин на вашем Ардуину
- СДА се повезује на СДА пин на вашем Ардуину
- СЦЛ се повезује на СЦЛ пин на вашем Ардуину
Тестирање вашег кола
Кључно је да тестирате коло које сте направили пре него што почнете да пишете коначни код за њега, али можете користити примере пројеката који долазе са библиотекама о којима се говори у наставку да бисте тестирали коло које имате направио.
Кодирање вашег температурног сензора и ОЛЕД екрана
Кодирање вашег „уради сам“ дигиталног термометра је теже од повезивања, али Ардуино ИДЕ се може користити за ово да би се олакшало.
Избор исправних библиотека
- Библиотека ОЛЕД екрана: Користимо библиотеку Адафруит_СХ1106.х за наш екран, јер је то библиотека са којом је дизајнирана да ради. Остали ОЛЕД екрани могу да користе сопствене библиотеке, као што је библиотека Адафруит_ССД1306.х, а обично можете да сазнате која вам је потребна на страници производа са које сте добили екран.
- ДС18Б20 температурна сонда: Потребне су нам две библиотеке за нашу температурну сонду. ДалласТемпературе.х се користи за прикупљање података о температури, а ОнеВире.х за омогућавање наше једножичне везе.
Када су ове библиотеке инсталиране и укључене у ваш пројекат, ваш код би требало да изгледа отприлике као исечак испод. Имајте на уму да смо такође укључили код за постављање пинова за наше компоненте.
#инцлуде //Прикажи библиотеку
#инцлуде
#инцлуде //Библиотека темп сонде
#дефине ОЛЕД_РЕСЕТ -1
Адафруит_СХ1106 дисплеј (ОЛЕД_РЕСЕТ);
#дефине ОНЕ_ВИРЕ_БУС 15 //Пин жице за податке сонде температуре
ОнеВире онеВире (ОНЕ_ВИРЕ_БУС); //Реците ОнеВире-у који пин користимо
Сензори температуре Даллас(&онеВире); //ОнеВире референца на температуру у Даласу
Изградња функција
- празнина подешавања: Користимо стандард поставити функција за иницијализацију и нашег екрана и наше температурне сонде.
- празнина петља: Наш стандард петља функција ће се користити само за позивање нашег Приказ функција.
- воид Дисплаи: Додали смо а Приказ функција која позива нашу Темп функционише и пружа информације нашем дисплеју.
- инт Темп: Оур Темп функција се користи за добијање очитавања температуре за наше Приказ функција.
Када се заврши, ово би требало да изгледа као исечак испод.
воид сетуп() {
}
воид лооп() {
}
воид Дисплаи() {
}
инт Темп() {
}
Кодирање ОЛЕД екрана
Пре него што можемо да додамо код у нашу Приказ функцију, морамо да се уверимо да је ОЛЕД панел иницијализован у нашој празнина подешавања функција. Прво, користимо а приказ.почети команду за покретање приказа, а затим а дисплаи.цлеарДисплаи команду да бисте били сигурни да је екран јасан.
воид сетуп() {
дисплаи.бегин (СХ1106_СВИТЦХЦАПВЦЦ, 0к3Ц); //Промени на основу ваше библиотеке приказа
дисплаи.цлеарДисплаи();
}
Одавде можемо додати код у наше Приказ функција. Ово почиње другим дисплаи.цлеарДисплаи команду, пре него што декларишемо нову целобројну променљиву са вредношћу која позива тхе Темп функцију (о томе ћемо касније). Затим смо у могућности да користимо ову променљиву да прикажемо температуру на дисплеју користећи следећи код.
воид Дисплаи() {
дисплаи.цлеарДисплаи();
инт интТемп = Темп(); //Позива нашу Темп функцију
дисплаи.сетТектСизе (3); //Подешава нашу величину текста
дисплаи.сетТектЦолор (ВХИТЕ); //Подешава боју нашег текста
дисплаи.сетЦурсор (5, 5); //Подешава позицију нашег текста на екрану
дисплаи.принт (интТемп); //Штампа вредност коју даје функција Темп
дисплаи.дравЦирцле (44, 7, 3, ВХИТЕ); //Нацртава симбол степена
дисплаи.сетЦурсор (50, 5);
дисплаи.принт("Ц"); //Додаје Ц да назначи да је наша температура у Целзијусима
}
Кодирање температурне сонде ДС18Б20
Као и наш екран, нашој температурној сонди је такође потребан код за подешавање да би иницијализовала компоненту.
воид сетуп() {
дисплаи.бегин (СХ1106_СВИТЦХЦАПВЦЦ, 0к3Ц);
дисплаи.цлеарДисплаи();
сензори.бегин();
}
Затим, време је да програмирамо саму сонду и морамо да додамо код у нашу Темп функција. Прво ћемо затражити температуру од наше сонде, након чега ћемо снимити резултат као променљиву са плутањем и претворити га у цео број. Ако је овај процес успешан, температура се враћа на Приказ функција.
инт Темп() {
сензори.рекуестТемпературес(); // Пошаљите команду за добијање температуре
флоат темпЦ = сенсорс.гетТемпЦБиИндек (0); //Ово захтева температуру у Целзијусима и додељује је флоат-у
инт интТемп = (инт) темпЦ; //Ово конвертује флоат у цео број
иф (темпЦ != ДЕВИЦЕ_ДИСЦОННЕЦТЕД_Ц) //Провери да ли је наше читање успело
{
ретурн интТемп; //Вратимо нашу вредност температуре у функцију Дисплаи
}
}
Заврсавам
На крају, само треба да кажемо наше главно петља функцију да позовемо нашу Приказ функционише са сваким циклусом кода, остављајући нам пројекат који изгледа овако.
#инцлуде //Прикажи библиотеку
#инцлуде
#инцлуде //Библиотека темп сонде
#дефине ОЛЕД_РЕСЕТ -1
Адафруит_СХ1106 дисплеј (ОЛЕД_РЕСЕТ);
#дефине ОНЕ_ВИРЕ_БУС 15 //Пин жице за податке сонде температуре
ОнеВире онеВире (ОНЕ_ВИРЕ_БУС); //Реците ОнеВире-у који пин користимо
Сензори температуре Даллас(&онеВире); //ОнеВире референца на температуру у Даласу
воид сетуп() {
дисплаи.бегин (СХ1106_СВИТЦХЦАПВЦЦ, 0к3Ц);
дисплаи.цлеарДисплаи();
сензори.бегин();
}
воид лооп() {
Приказ(); //Позива нашу функцију приказа
}
воид Дисплаи() {
дисплаи.цлеарДисплаи();
инт интТемп = Темп(); //Позива нашу Темп функцију
дисплаи.сетТектСизе (3); //Подешава нашу величину текста
дисплаи.сетТектЦолор (ВХИТЕ); //Подешава боју нашег текста
дисплаи.сетЦурсор (5, 5); //Подешава позицију нашег текста на екрану
дисплаи.принт (интТемп); //Штампа вредност коју даје функција Темп
дисплаи.дравЦирцле (44, 7, 3, ВХИТЕ); //Нацртава симбол степена
дисплаи.сетЦурсор (50, 5);
дисплаи.принт("Ц"); //Додаје Ц да назначи да је наша температура у Целзијусима
}
инт Темп() {
сензори.рекуестТемпературес(); // Пошаљите команду за добијање температуре
флоат темпЦ = сенсорс.гетТемпЦБиИндек (0); //Ово захтева температуру у Целзијусима и додељује је флоат-у
инт интТемп = (инт) темпЦ; //Ово конвертује флоат у цео број
иф (темпЦ != ДЕВИЦЕ_ДИСЦОННЕЦТЕД_Ц) //Провери да ли је наше читање успело
{
ретурн интТемп; //Вратимо нашу вредност температуре у функцију Дисплаи
}
}
Прављење дигиталног термометра „уради сам“.
Овај пројекат треба да буде забаван и информативан, а истовремено вам даје прилику да направите практичан предмет. Дизајнирали смо овај код да буде што једноставнији, али га можете користити као основу за компликованији пројекат док учите.
Заинтересовани сте за Ардуино пројекте, али нисте сигурни одакле да почнете? Ови почетнички пројекти ће вас научити како да почнете.
Реад Нект
- ДИИ
- Ардуино
- Електроника
Семјуел је писац технологије са седиштем у Великој Британији са страшћу за све ствари „уради сам“. Након што је започео послове у области веб развоја и 3Д штампања, уз дугогодишњи рад као писац, Самуел нуди јединствен увид у свет технологије. Фокусирајући се углавном на „уради сам“ техничке пројекте, он не воли ништа више од дељења забавних и узбудљивих идеја које можете испробати код куће. Изван посла, Семјуела се обично може наћи како вози бицикл, игра видео игрице на рачунару или очајнички покушава да комуницира са својим кућним љубимцем раком.
Претплатите се на наш билтен
Придружите се нашем билтену за техничке савете, рецензије, бесплатне е-књиге и ексклузивне понуде!
Кликните овде да бисте се претплатили