Мазмұны:
- 1 -қадам: Кейбір компоненттерді қосыңыз
- 2 -қадам: Breadboards туралы ескерту
- 3 -қадам: екі сенсорды қосыңыз
- 4 -қадам: фотосезімтал сенсор
- 5 -қадам: Кодты бастаңыз
- 6 -қадам: модельдеу
- 7 -қадам: Температура сенсорын қосыңыз
- 8 -қадам: тестілеу және тексеру
Бейне: Arduino Datalogger: 8 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Бұл оқулықта біз Arduino көмегімен қарапайым деректерді тіркеуші жасаймыз. Мәселе - ақпаратты алу және терминалға басып шығару үшін Arduino қолданудың негізін үйрену. Біз осы негізгі қондырғыны көптеген тапсырмаларды орындау үшін пайдалана аламыз.
Бастау үшін:
Сізге Tinkercad (www.tinkercad.com) есептік жазбасы қажет болады. Келіңіз және электрондық пошта немесе әлеуметтік медиа есептік жазбаңызбен тіркеліңіз.
Кіру сізді Tinkercad бақылау тақтасына апарады. Сол жақтағы «Схемалар» түймесін басып, «Жаңа схема құру» таңдаңыз. Бастайық!
Сіз толық файлды TInkercad схемаларынан таба аласыз - оны тексергеніңізге рахмет!
1 -қадам: Кейбір компоненттерді қосыңыз
Сізге бірнеше негізгі компоненттер қажет. Оларға мыналар жатады:
- Arduino тақтасы
- Нан тақтасы
Оларды іздеп, оларды ортаңғы аймаққа апару арқылы қосыңыз.
Нан тақтасын Arduino үстіне қойыңыз. Бұл байланыстарды кейінірек қарауды жеңілдетеді.
2 -қадам: Breadboards туралы ескерту
Нан тақтасы - бұл прототипті жылдам жасауға арналған өте пайдалы құрылғы. Біз оны компоненттерді қосу үшін қолданамыз. Кейбір нәрселерді ескеру қажет.
- Нүктелер тігінен қосылады, бірақ ортасындағы сызық бұл байланысты жоғарғы және төменгі бағандардан ажыратады.
- Бағаналар қатардағыдай солдан оңға қосылмайды. Бұл барлық компоненттерді тігінен емес, бағандар бойынша қосу керек дегенді білдіреді.
- Егер сізге түймелер мен қосқыштарды қолдану қажет болса, оларды ортасындағы үзіліс арқылы қосыңыз. Біз мұны кейінірек оқулықта қарастырамыз.
3 -қадам: екі сенсорды қосыңыз
Біз қолданатын екі сенсор - бұл фотосезімтал сенсор және температура сенсоры.
Бұл сенсорлар жарық пен температураны бағалайды. Біз Arduino көмегімен мәнді оқып, оны Arduino сериялық мониторында көрсетеміз.
Екі сенсорды іздеңіз және қосыңыз. Олардың тақтадағы бағандар бойынша орналасқанына көз жеткізіңіз. Көруді жеңілдету үшін олардың арасына жеткілікті бос орын қойыңыз.
4 -қадам: фотосезімтал сенсор
- Фотосезімтал сенсор үшін Arduino 5В түйреуішінен сымды нан тақтасындағы бөліктің оң аяғымен бір бағанға қосыңыз. Сымның түсін қызылға өзгертіңіз.
- Сол аяқты сол бағандағы түйреуіш арқылы Arduino-дегі A0 (A-нөл) түйреуішке қосыңыз. Бұл аналогтық түйреуіш, біз оны сенсордан мәнді оқу үшін қолданамыз. Бұл сымды сары немесе қызыл немесе қара түстен басқа түске бояңыз.
-
Тақтаға резистор қойыңыз (іздеу және шерту). Бұл схеманы аяқтайды және сенсор мен түйреуішті қорғайды.
- Оны бағандарға өтетін етіп айналдырыңыз.
- Бір аяқты нан тақтасындағы оң аяқ бағанына қосыңыз
-
Резистордың екінші ұшынан жерге сым салыңыз
Сымның түсін қара етіп өзгертіңіз
- Барлық қосылымдарды екі рет тексеріңіз. Егер бірдеңе дұрыс жерде болмаса, бұл дұрыс жұмыс істемейді.
5 -қадам: Кодты бастаңыз
Бұл компоненттің кодын қарастырайық.
Алдымен, осы қадамдағы үшінші суретті қараңыз. Онда екі функциясы бар бірнеше код бар:
жарамсыз орнату ()
бос цикл ()
C ++ тілінде барлық функциялар өздерінің қайтару түрін, содан кейін атын, содан кейін аргументтерді беру үшін қолдануға болатын екі дөңгелек жақшаны береді, әдетте айнымалы ретінде. Бұл жағдайда қайтару түрі жарамсыз, немесе ештеңе жоқ. Атау - бұл баптау және функция ешқандай аргумент қабылдамайды.
Орнату функциясы Arduino жүктелген кезде бір рет іске қосылады (батареяны қосқанда немесе қосқанда).
Цикл функциясы миллисекундтан кейін тұрақты циклде жұмыс істейді, орнату функциясы аяқталады.
Сіз цикл функциясына енгізген барлық нәрсе Arduino іске қосылған кезде іске қосылады. Сыртта бәрі қоңырау шалғанда ғана іске қосылады. Егер біз циклден тыс басқа функцияны анықтап, шақырсақ.
Тапсырма
Код тақтасын Tinkercad батырмасымен ашыңыз. Блоктар ашылмалы мәтінін өзгертіңіз. Пайда болған ескерту терезесімен келісіңіз. Енді осы қадамдағы үшінші суреттегі мәтіннен басқа барлық көргенді жойыңыз.
Айнымалылар
Бастау үшін, біз кейбір айнымалыларды тағайындауымыз керек, осылайша біздің кодты шынымен тиімді етеміз.
Айнымалылар тек бір объектіні ұстай алатын шелектерге ұқсайды (C ++-бұл объектіге бағытталған деп атаймыз). Иә, бізде массивтер бар, бірақ бұл арнайы айнымалылар, олар туралы кейінірек айтатын боламыз. Айнымалыны тағайындағанда, біз оның қандай түр екенін айтуымыз керек, содан кейін оған мән беруіміз керек. Бұл келесідей көрінеді:
int someVar = A0;
Сонымен, біз айнымалыны тағайындадық және оған int түрін бердік. Int - бүтін сан немесе бүтін сан.
«Бірақ сіз бүтін санды пайдаланбадыңыз!», - деп айтқаныңызды естіп тұрмын. Бұл шындық.
Arduino біз үшін ерекше нәрсе жасайды, сондықтан біз A0 -ды бүтін сан ретінде қолдана аламыз, себебі басқа файлда ол A0 -ды бүтін сан ретінде анықтайды, сондықтан біз бұл бүтін санға сілтеме жасау үшін A0 тұрақты мәнін біле алмай -ақ пайдалана аламыз. Егер біз тек 0 терсек, біз жұмыс істемейтін 0 позициядағы цифрлық түйреуішке жүгінер едік.
Сонымен, біздің код үшін біз сенсорға айнымалы жазамыз. Мен қарапайым ат қоюды ұсынамын, бұл сізге байланысты.
Сіздің кодыңыз келесідей болуы керек:
int lightSensor = A0;
void setup () {} void loop () {}
Енді Arduino -ға осы түйреуіштегі сенсорды қалай басқаруға болатынын айтайық. Біз түйреуіш режимін орнататын және Arduino -ға оны қайдан іздеу керектігін айтатын функцияны орнатамыз.
int lightSensor = A0;
void setup () {pinMode (lightSensor, INPUT); } void цикл () {}
pinMode функциясы Arduino -ға PIN (A0) INPUT түйреуіші ретінде қолданылатынын айтады. Айнымалылар мен функция атаулары үшін camelCaseUsed (әр бірінші әріптің бас әріп екенін қараңыз, осылайша өркештері бар, сондықтан … түйе …!) Қараңыз. Бұл конвенция және оған үйрену жақсы.
Ақырында, кейбір мәліметтерді алу үшін analogRead функциясын қолданайық.
int lightSensor = A0;
void setup () {pinMode (lightSensor, INPUT); } void loop () {int reading = analogRead (lightSensor); }
Сіз оқуды айнымалы мәнде сақтағанымызды көресіз. Бұл маңызды, себебі біз оны басып шығаруымыз керек. Мұны сериялық мониторға басып шығару үшін сериялық кітапхананы қолдайық (кітапхана - бұл біздің кодқа қосатын код, оны тезірек жазу үшін, оны анықтамасы бойынша шақыру арқылы).
int lightSensor = A0;
void setup () {// PinMode (lightSensor, INPUT) түйреуіш режимдерін орнату; // Serial.begin (9600) сериялық кітапханасын қосыңыз; } void loop () {// сенсорды оқу int reading = analogRead (lightSensor); // Мониторға мәнді басып шығару Serial.print («Жарық:»); Serial.println (оқу); // келесі циклды 3 секундқа кешіктіру (3000); }
Бірнеше жаңа нәрсе! Алдымен сіз мыналарды көресіз:
// Бұл түсініктеме
Біз түсініктемелерді басқа адамдарға біздің код не істейтінін айту үшін қолданамыз. Сіз оларды жиі қолдануыңыз керек. Компилятор оларды оқымайды және оларды кодқа түрлендірмейді.
Енді біз сериялық кітапхананы жолмен қостық
Serial.begin (9600)
Бұл аргумент қабылдайтын функцияның мысалы. Сіз кітапхананы Serial деп атадыңыз, содан кейін функцияны орындадыңыз (бұл дөңгелек жақшаға байланысты функция екенін білеміз) және аргумент ретінде бүтін санға берілді, бұл Serial функциясын 9600baud жұмысына орнатады. Неге екеніне алаңдамаңыз - әзірге бұл жұмыс істейтінін біліңіз.
Келесі нәрсе - сериялық мониторға басып шығару. Біз екі функцияны қолдандық:
// Бұл сериалға жол үзіліссіз басып шығарылады (соңында енгізу)
Serial.print («Жарық:»); // Бұл жол үзілісін қояды, сондықтан біз оқыған және жазған сайын жаңа жолға шығады Serial.println (оқу);
Ең бастысы, олардың әрқайсысының жеке мақсаты бар. Жолдарыңызда қос тырнақша қолданылатынын және қос нүктеден кейін бос орын қалдырыңыз. Бұл пайдаланушыға оқуға көмектеседі.
Ақырында, біз циклды баяулатып, оны үш секунд сайын бір рет оқу үшін кешіктіру функциясын қолдандық. Бұл мың секундта жазылған. Оны 5 секундта бір рет оқу үшін өзгертіңіз.
Тамаша! Барамыз!
6 -қадам: модельдеу
Әрқашан модельдеуді іске қосу арқылы заттардың жұмысын тексеріңіз. Бұл схема үшін сізге тренажердің жұмысын тексеру және оның мәндерін тексеру қажет.
Модельдеуді бастаңыз және сериялық мониторды тексеріңіз. Жарық сенсорының мәнін оны басу арқылы және жүгірткіні пайдаланып өзгерту. Сіз сериялық монитордағы мәннің өзгеруін де көруіңіз керек. Егер олай болмаса немесе «Модельдеуді бастау» түймесін басқанда қате пайда болса, мұқият оралып, барлық кодты тексеріңіз.
- Сізге ұсынылатын қызыл түзету терезесінде көрсетілген жолдарға назар аударыңыз.
- Егер сіздің кодыңыз дұрыс болса және модельдеу әлі де жұмыс істемесе, сымды тексеріңіз.
- Бетті қайта жүктеңіз - сізде байланыссыз жүйе/сервер қатесі болуы мүмкін.
- Компьютерге жұдырығыңызды шайқаңыз да, қайтадан тексеріңіз. Мұны барлық бағдарламашылар жасайды. Барлық. The. Уақыт.
7 -қадам: Температура сенсорын қосыңыз
Сіз қазір дұрыс жолдасыз деп ойлаймын. Жалғастырыңыз және суретте көрсетілгендей температура сенсорын қосыңыз. 5В және GND сымдарының жарыққа арналған кеңістікте орналасуына назар аударыңыз. Бұл жарайды. Бұл параллель тізбек сияқты және тренажерде ақаулар туғызбайды. Нақты тізбекте қуатты басқару мен қосылуды жақсарту үшін үзіліс тақтасын немесе қалқанды пайдалану керек.
Енді кодты жаңартамыз.
Температура сенсорының коды
Бұл біршама қиын, бірақ біз оқуды түрлендіру үшін математика жасауымыз керек болғандықтан. Бұл өте жаман емес.
int lightSensor = A0;
int tempSensor = A1; void setup () {// PinMode (lightSensor, INPUT) түйреуіш режимдерін орнату; // Serial.begin (9600) сериялық кітапханасын қосыңыз; } void loop () {// Температура сенсоры // Бір жолда екі айнымалы жасау - тиімділік! // Float var ондық өзгермелі кернеуді сақтау үшін, градусC; // істікшенің мәнін оқып, оны 0 - 5 аралығындағы мәнге түрлендіріңіз // Негізгі кернеу = (5/1023 = 0,004882814); кернеу = (analogRead (tempSensor) * 0,004882814); // C градусқа айналдыруC градус (кернеу - 0,5) * 100; // Serial.print сериялық мониторға басып шығару («Temp:»); Сериялық баспа (градус C); Serial.println («oC»); // сенсорды оқу int reading = analogRead (lightSensor); // Мониторға мәнді басып шығару Serial.print («Жарық:»); Serial.println (оқу); // келесі циклды 3 секундқа кешіктіру (3000); }
Мен кодқа бірнеше жаңартулар енгіздім. Олармен жеке -жеке танысып өтейік.
Алдымен мен жолды қостым
int tempSensor = A1;
LightSensor сияқты, кейінірек жеңілдету үшін мәнді айнымалы мәнде сақтауым керек. Егер мен осы сенсордың орнын өзгертуге тура келсе (тақтаны қайта қосу сияқты), онда мен A0 немесе A1 өзгерту үшін барлық кодтық базаны іздемей, кодтың бір жолын ғана өзгертуім керек.
Содан кейін біз оқу мен температураны өзгермелі түрде сақтау үшін жолды қостық. Бір жолда екі айнымалыға назар аударыңыз.
өзгермелі кернеу, градус C;
Бұл өте пайдалы, себебі ол жазу керек жолдардың санын азайтады және кодты жылдамдатады. Қателерді табу қиын болуы мүмкін.
Енді біз оқуды жасаймыз және сақтаймыз, содан кейін оны шығыс мәніне түрлендіреміз.
кернеу = (analogRead (tempSensor) * 0,004882814);
градусC = (кернеу - 0,5) * 100;
Бұл екі жол қиын сияқты, бірақ біріншісінде біз оқуды қабылдаймыз және оны 0.004 -ке көбейтеміз, себебі ол 1023 -ті (аналогтық оқу осы мәнді қайтарады) 5 -тен оқуға айналдырады.
Ондағы екінші жол ондық бөлшекті жылжыту үшін бұл көрсеткішті 100 -ге көбейтеді. Бұл бізге температураны береді. Ұқыпты!
8 -қадам: тестілеу және тексеру
Барлығы жоспарланған кезде сізде жұмыс схемасы болуы керек. Модельдеуді іске қосу және сериялық мониторды қолдану арқылы тексеріңіз. Егер сізде қателер болса, тексеріңіз, қайтадан тексеріңіз және жұдырығыңызды шайқаңыз.
Сіз үлгердіңіз бе? Бізбен бөлісіңіз және өз тарихыңызды айтыңыз!
Бұл сізге енгізілген соңғы схема, сондықтан сіз соңғы туындысын ойнай аласыз/тексере аласыз. Оқулықты аяқтағаныңыз үшін рахмет!
Ұсынылған:
GPS Para Norma (EEPROM Datalogger): 5 қадам
GPS Para Norma (Datalogger EEPROM): arduino мен EEPROM жазуына негізделген қарапайым GPS үй жануарлары дерекқоры ============================== ======================== EEPROM меморандумы бойынша GPS -тің жасырын дереккөздері
Arduino басқарылатын робот - екі қадам: 13 қадам (суреттермен)
Arduino басқарылатын роботты екіжақты: Мен әрқашан роботтарға қызығатынмын, әсіресе адамның іс -әрекетіне еліктеуге тырысатын. Бұл қызығушылық мені жаяу жүруге және жүгіруге еліктей алатын екіжақты робот құрастыруға және дамытуға талпындырды. Бұл нұсқаулықта мен сізге көрсетемін
Болт - DIY сымсыз зарядтау түнгі сағаты (6 қадам): 6 қадам (суреттермен)
Болт - DIY сымсыз зарядтау түнгі сағаты (6 қадам): Индуктивті зарядтау (сымсыз зарядтау немесе сымсыз зарядтау деп те аталады) - сымсыз қуат беру түрі. Ол портативті құрылғыларды электрмен қамтамасыз ету үшін электромагниттік индукцияны қолданады. Ең көп таралған қолданба - Qi сымсыз зарядтау
Arduino Datalogger RTC, Nokia LCD және кодтағышпен: 4 қадам
Arduino Datalogger RTC, Nokia СК және кодермен: Бөлшектер: Arduino Nano немесе Arduino Pro Mini Nokia 5110 84x48 LCD DHT11 температура/ылғалдылық датчигі DS1307 немесе DS3231 RTC модулі кіріктірілген AT24C32 EEPROM 3 кодты сөндіргіш конденсаторы бар және ен
Raspberry Pi Zero W Datalogger: 8 қадам (суреттермен)
Raspberry Pi Zero W дерекқоры: Raspberry Pi Zero W көмегімен сіз жергілікті Wi -Fi желісіне қосылатын немесе деректерді жүктеуге мүмкіндік беретін өрісте кіру нүктесі бола алатын арзан және қолдануға оңай дерекқорлаушыны жасай аласыз. Мен смартфонмен сымсыз байланыс жасаймын