Мазмұны:

Температура мен ылғалдылықтың дисплейі және Arduino және өңдеу көмегімен деректерді жинау: 13 қадам (суреттермен)
Температура мен ылғалдылықтың дисплейі және Arduino және өңдеу көмегімен деректерді жинау: 13 қадам (суреттермен)

Бейне: Температура мен ылғалдылықтың дисплейі және Arduino және өңдеу көмегімен деректерді жинау: 13 қадам (суреттермен)

Бейне: Температура мен ылғалдылықтың дисплейі және Arduino және өңдеу көмегімен деректерді жинау: 13 қадам (суреттермен)
Бейне: Arduino негіздері қазақша курсы (14 сабақ - DHT температура мен ылғалдылық датчигі) Ылғалдылық 2024, Шілде
Anonim
Температура мен ылғалдылықтың дисплейі және Arduino мен өңдеумен деректерді жинау
Температура мен ылғалдылықтың дисплейі және Arduino мен өңдеумен деректерді жинау

Кіріспе: Бұл температура, ылғалдылық деректерін цифрлық және жолақ график түрінде көрсету, уақыт пен күнді көрсету және санауды жүргізу үшін Arduino тақтасын, сенсорды (DHT11), Windows компьютерін және өңдеуді (тегін жүктеуге болатын) қолданатын жоба. бағдарлама кезінде таймерді жүктеңіз және бағдарлама жабылған кезде барлық деректерді.csv форматына жазыңыз.

Шабыт:

Алдымен мен жаңадан бастаушымын және бұл жобадан көп нәрсені үйрендім деп айтуым керек. Сондықтан мен бұл нұсқаулықты жаңадан бастаушы оқуы және түсінуі үшін жазуға тырысамын.

Мен температура мен ылғалдылықты өлшеуге арналған Arduino -ның әртүрлі жобаларын көрдім, бірақ мен келесі бағдарламаны алғым келді:

1) өлшенетін температура мен ылғалдылық

2) Деректер графикте (мен жолақты графикті таңдадым) және сандық түрде көрсетіледі

3) Сағат функциясы бар

4) «Жұмыс уақыты» санау таймері бар

5) Бұл деректерді.csv (excel) файл пішіміне сақтайды.

Менде Sowmith Mandadi, R-B және aaakash3 жасаған бағдарламалардан шабыт болды, бірақ олардың ешқайсысы мен қалағандай болмады. Сондықтан мен негізгі кодты жазуды үйрендім және қалағанымды жасадым.

1 -қадам: Сізге не қажет:

Сізге не қажет
Сізге не қажет
Сізге не қажет
Сізге не қажет

Бөлшектер мен материалдар:*Компьютер - Мен Windows компьютерін қолдандым Windows 10 операциялық жүйесі

(Linux немесе Mac қолдануға болатынына сенімдімін, менде жоқ, сондықтан мен бұл операциялық жүйелерді қалай пайдалану керектігін айтпаймын)

*Arduino тақтасы - Мен Arduino Uno тақтасын қолдандым, бірақ USB бар кез келген Arduino тақтасы жасайды

*USB кабелі -USB A/B кабелі -ескі типті «принтер кабелі» сияқты (әдетте Arduino тақтасымен бірге келеді)

*DHT 11 температура /ылғалдылық сенсоры- бағасы 4-8 доллар

(Ескерту: мен 3 істікшелі нұсқаны қолданған 2 нұсқа бар, 4 істікшелі нұсқада нан тақтасы мен 10K резисторы қажет болады, 3 істікшеде 10К резисторы бар баспа платасы бар) келесі қадамдардағы фризинг диаграммаларын қараңыз.

*Қосылатын сымдар

Дупонт сымдары (қос аналық ұштары), егер 3 түйреуішті DHT11 нан тақтасыз қосылса

4 түйреуішті DHT11 қосу үшін стандартты секіргіш M/F сымдары (бір ұшы еркек, бір ұшты әйел) және M/M секіргіш сымдары (екі ұшы еркек) - 2 -қадамды қараңыз.

*Arduino IDE - Arduino бағдарламаларын жазуға арналған бағдарлама (эскиздер деп аталады) тегін @

www.arduino.cc/kz/Main/Software

*Өңдеу - ақысыз өңдеу эскиздерін жазуға арналған бағдарлама @

processing.org/download/

* «DHTLib» файлы -кітапхана файлы (бұл «Кітапхана» деп аталатын қалтадағы Arduino IDE бағдарламасына кіретін файл, оны Arduino DHT11 деректерін оқи алуы үшін оны Arduino нобайына қосу қажет болады) файл мен нұсқауларды жүктеу үшін 5 -қадам

2 -қадам: Arduino -ны DHT11 -ке қосыңыз

Arduino -ны DHT11 -ке қосыңыз
Arduino -ны DHT11 -ке қосыңыз
Arduino -ны DHT11 -ке қосыңыз
Arduino -ны DHT11 -ке қосыңыз
Arduino -ны DHT11 -ке қосыңыз
Arduino -ны DHT11 -ке қосыңыз
Arduino -ны DHT11 -ке қосыңыз
Arduino -ны DHT11 -ке қосыңыз

Алдымен сізде DHT11 бар екенін анықтаңыз

Мен 3 түйреуішті қолдандым, себебі оның өзінде 10К резистор бар.

Егер сізде 4 түйреуіш болса, сізге 10K резистор мен нан тақтасы қажет болады

DHT11 Arduino тақтасына қосыңыз. Бұл бағдарлама DHT 11 сигналдық түйреуішін No7 Arduino түйреуішіне, Arduino-да 5V-ге қосылатын Pos (+) түйініне және Arduino-дегі GND-ге (-) қосуды талап етеді.

Диаграммалар мен фризинг диаграммаларын қараңыз

3 -қадам: Arduino IDE жүктеңіз

Arduino IDE жүктеп алыңыз
Arduino IDE жүктеп алыңыз

Arduino IDE жүктеп, компьютерге орнатыңыз

www.arduino.cc/kz/Main/Software

4 -қадам: Arduino -ны компьютерге қосыңыз

Arduino -ны компьютерге қосыңыз
Arduino -ны компьютерге қосыңыз

Алдымен Arduino IDE орнатыңыз, онда Arduino USB қосылымына арналған драйверлер бар.

USB арқылы компьютерге Arduino қосыңыз.

Компьютердің Arduino тақтасын тануын күтіңіз және кез келген драйверлерді орнатыңыз.

IDE бағдарламасын ашып, сериялық қосылуды тексеріңіз.

Егер Arduino тақтасы Құралдар> портта (қызыл шеңбер) көрінбесе, IDE жабыңыз және қайта ашыңыз.

* Маңызды* IDE ашылғанда және Arduino тақтасы USB арқылы қосылғанда. Arduino тақтасы дұрыс сериялық портқа қосылған болуы керек. Windows компьютерлерінде бұл COM порты деп аталады. Мұны IDE -де жасау үшін Құралдар> Порт:> Сериялық порттарға өтіңіз. Диаграммада көрсетілгендей, сериялық порт (қызыл шеңбер) IDE бағдарламасының төменгі оң жақ бұрышындағы портқа сәйкес келуі керек (сары шеңбер).

5 -қадам: Кітапхананы жүктеңіз

Кітапхананы жүктеңіз
Кітапхананы жүктеңіз
Кітапхананы жүктеңіз
Кітапхананы жүктеңіз
Кітапхананы жүктеңіз
Кітапхананы жүктеңіз
Кітапхананы жүктеңіз
Кітапхананы жүктеңіз

DHT11 кітапханасын жүктеңіз. Бұл мені бастапқыда шатастырды, бірақ өте қарапайым.

«DHTLib» деп аталатын файлды жүктеп алып, ашыңыз. Сығылмаған «DHTLib» файлын көшіріңіз.

Бұл кітапхана туралы анықтаманы мына жерден табуға болады:

playground.arduino.cc/Main/DHTLib

(Оны Роб Тилларарт басқалардың жұмысына негізделген)

Компьютерден Arduino қалтасын тауып, ашыңыз. (Бұл IDE жүктеген және компьютерге орнатқан жерде болады)

Диаграмманы қараңыз

«Кітапханалар» деп аталатын файлды тауып, ашыңыз, содан кейін «DHTLib» қалтасын «кітапханалар» файлына қойыңыз. Оны жабыңыз, содан кейін IDE қайта іске қосыңыз.

Диаграмманы қараңыз

IDE қайта ашылғаннан кейін сіз DHT кітапханасының орнатылғанын тексере аласыз. Эскиз> Кітапхананы қосу.

Диаграмманы қараңыз

Ескерту «Кітапхананы қосу» қойындысында DHTLib түймесін басу кітапхананы Arduino кодына «#include dht.h» ретінде орналастырады.

Мұны істеудің қажеті жоқ, себебі ол келесі қадамда жүктелетін кодта бар.

6 -қадам: Arduino кодын алыңыз

Arduino кодын алыңыз
Arduino кодын алыңыз

Temp_Hum_Instructable.zip файлын жүктеп алып, ашыңыз. Arduino IDE көмегімен Temp_Hum_Instructable.ino ашыңыз.

Келесі кодты қарап шығыңыз, көшіріп, қойыңыз немесе Arduino IDE -ге дәл енгізіңіз:

#қосу

DHT; #define DHT11PIN 7 // DHT11 сигнал қосылымының жарамсыздығын орнату үшін 7 -істікті орнатады () {Serial.begin (9600); // serial} void loop ашады () {int chk = DHT.read11 (DHT11PIN); // DHT11 Serial.print (DHT.temperature, 0) оқиды; // temp Serial.print («,») ішінде басып шығарады; // Serial.print (DHT.humidity, 0) үтірін басып шығарады; // Serial.println () сериясындағы ылғалдылықты басып шығарады; // каретканың қайтарылуының кешігуі (2000); // 2 секунд күтіңіз}

Аяқтағаннан кейін ол жоғарыдағы диаграммаға ұқсас болуы керек

7 -қадам: Arduino -ға кодты жүктеңіз

Ардуиноға кодты жүктеңіз
Ардуиноға кодты жүктеңіз
Ардуиноға кодты жүктеңіз
Ардуиноға кодты жүктеңіз
Ардуиноға кодты жүктеңіз
Ардуиноға кодты жүктеңіз
Ардуиноға кодты жүктеңіз
Ардуиноға кодты жүктеңіз

Алдымен эскизді орнына сақтаңыз және есіңізде қалады, мысалы: Temp_Hum.

Одан кейін сіз сканерді Arduino тақтасына оң жақ көрсеткі түймесін басу арқылы жүктеуіңіз керек (жүктеу).

Диаграмманы қараңыз

Бұл бірнеше секундты алады; сіз төменгі оң жақта прогресс жолағын көресіз.

Содан кейін сіз көресіз: IDE төменгі жағында ақ мәтіннің төменгі сол жақ бөлігінде жүктеу аяқталды және жады туралы

Диаграмманы қараңыз

Егер сіз қате кодын алсаңыз (IDE төменгі жағындағы қызғылт сары мәтін), ол келесілердің бірі болуы керек

  1. «DHTlib» кітапханасы дұрыс көшірілмеді
  2. COM порты дұрыс орнатылмаған
  3. Сенсор дұрыс қосылмаған
  4. Код IDE -ге дұрыс жүктелмеді. Қызғылт сары мәтінді жылжытуға болады және ол дұрыс емес нәрсені түсінуге мүмкіндік береді. Қайтып оралыңыз және бұл қарапайым қателік екенін тексеріңіз.

Бұл аяқталғаннан кейін Arduino тақтасына мұқият қараңыз. Әр секунд сайын «TX» әріптерінің жанындағы кішкентай жарық диоды жыпылықтайды. Бұл компьютерге ақпаратты жіберетін Arduino. Мұны тексеру үшін IDE жоғарғы оң жақ бұрышындағы үлкейткіш әйнектің белгісін басыңыз.

Диаграмманы қараңыз

Бұл сериялық мониторды ашады және температура мен ылғалдылық деректерін үтірмен бөліп көрсетеді. Сіз температура туралы мәліметтер Цельсий бойынша көрсетілгенін байқайсыз. Жақсы, біз Фаренгейтке кейінірек ауысамыз (немесе сіз таңдасаңыз).

Диаграмманы қараңыз

Содан кейін сериялық мониторды жабыңыз, содан кейін IDE жабыңыз. (Сіз оны сақтауды ұмытпадыңыз, солай ма?). Енді Arduino тақтасына қайта қараңыз (оны қуат алатын USB -ден ажыратпаңыз және деректерді компьютердегі сериялық портқа жібермеңіз). Ол әлі жыпылықтап тұр ма? Иә, тамаша. Бағдарлама Arduino -ға жүктелгеннен кейін ол қуатқа ие болғанша жұмыс істейді.

Код туралы ескерту: егер сіз «void loop ();» деп басталатын Arduino кодын қарасаңыз. Келесі 5 жолдар Arduino -ға DHT -ден деректерді оқуға және оны үтірмен бөлінген сериялық шинаға басып шығаруға нұсқау береді. Келесі жол «кешіктіру (2000);» Arduino -ға 2 секунд (2000 миллисекунд) күтуді айтады, сондықтан деректер әр 2 секунд сайын қабылданады. Содан кейін ол «void loop ();» дегенге оралады - бұл Arduino -ға оны қайталап жасауды айтатын команда. Кешіктіру жолындағы мәнді өзгерту деректердің қабылдау жиілігін өзгертеді. Мысалы: (600000) мәніне өзгереді ол 10 минутқа дейін (600000 миллисекунд = 10 минут). Әр 2 секунд сайын деректерді алу көптеген деректермен аяқталады, сондықтан енді сіз деректердің оқылу жиілігін қалай өзгерту керектігін білесіз. Егер мәнді кейін өзгертсеңіз, есіңізде болсын жаңа бағдарламаны жүктеу қажет.

Жарайды, демалып, жарты жолдан асып кеттіңіз. Иә!!

8 -қадам: өңдеуді жүктеңіз және орнатыңыз

Жүктеу және өңдеу өңдеу
Жүктеу және өңдеу өңдеу
Жүктеу және өңдеу өңдеу
Жүктеу және өңдеу өңдеу

processing.org/download/

Терезесі 64 биттік және 32 биттік компьютерлерге сәйкес келетін бағдарламаны бірден таңдаңыз. Егер сіз білмесеңіз, компьютеріңіздегі Басқару тақтасын ашыңыз (белгіше көрінісі санат көрінісі емес) және жүйеге өтіңіз, ол сол жерде көрсетіледі.

Диаграмманы қараңыз

Бағдарламаны жүктеп, содан кейін орнатыңыз.

Сіз өңдеуді бірінші рет ашқанда және іске қосқанда, сіз Java қауіпсіздік хабарламасын аласыз. Жеке желілер үшін «рұқсат ету» түймесін басыңыз. Java - бұл Processing (және Arduino IDE) қолданатын компьютер тілі. Бір қызығы, менде Arduino IDE -мен қауіпсіздік туралы хабарлама болған емес, тек өңдеу.

9 -қадам: кодты өңдеу

Кодты өңдеу
Кодты өңдеу

Өңдеу коды үшін қазір жақсы.

Бұл мен үшін ең қиын кезең болды, сонымен қатар білім алудың ең үлкен мүмкіндігі болды. Arduino коды 20-ға жуық жол болса да, бұл код негізгі кодта +/- 270 жолдан тұрады, ал сыныптарда тағы 70 +.

Енді сіз бірінші сұрауыңыз керек: «Сабақтар дегеніміз не?». Жақсы сұрақ. Бұл объектіге бағытталған бағдарламалауға қатысты. Қысқаша айтқанда, негізгі кодта көптеген нәрселер бар: дисплейдің өлшемі мен түсін, сағатты, таймерді, курсордың орналасуын көрсететін кодты,.csv файлына сақтау кодын және бірнеше жолды анықтау жолақтық графиктерді көрсететін кодпен айналысады. Arduino IDE -де барлық код бір бетте болғанымен, бұл өңдеу кодында үш қойынды бар. Біріншісі - негізгі код, келесі екеуі - жолақтық графиктерді көрсететін код. (Бұл код іс жүзінде Processing code қалтасындағы үш бөлек файлда сақталады.) Бөлек қойындылар «сыныптар» деп аталады және 48 және 56-жолдарда анықталады, содан кейін негізгі кодтың 179-182 жолдарымен көрсетіледі. Processing бағдарламасын жазған адамдар бұл объектіге бағытталған бағдарламалау деп атайды. (қысқаша сипаттаманы қараңыз:

Негізінде бұл кодтағы сыныптар (Recta1, Recta2) DHT11 -ден алынған деректер негізінде жоғары және төмен жылжитын тікбұрыштар жасайды. Ескі термометрді сынап жоғары болған сайын қыздырыңыз деп ойлаңыз, бірақ бұл сынап емес, деректермен жасалады. Іс жүзінде сыныптар термометрдің фонын көрсететін төрт статикалық тіктөртбұрыш пен төрт тіктөртбұрышты және деректерге жауап беретін екі жоғары динамикалық тіктөртбұрышты жасайды. Тік төртбұрыштарды жылжытудан басқа, код сериялық қабылданатын мәліметтер негізінде динамикалық тіктөртбұрыштың түсін және Temp and Humidity цифрлық дисплейінің түсін өзгертеді.

10 -қадам: код файлдарын өңдеу

Кодты өңдеудің бірнеше негіздері:

Мен өңдеуді негізін салушылар: Кейси Рейс пен Бен Фрайдың өңдеуді бастауын оқуды ұсынамын.

processing.org/books/#reasfry2

Мен өңдеудің немесе өңдеу кодын жазудың барлық аспектілерін түсіндіруге тырыспаймын. Жоғарыда айтқанымдай, мен жаңадан бастаушымын және менің ойымша, одан жақсы адамдар бар. Мен жазған кодты түсінемін (сынақ пен қателік - жақсы мұғалімдер).

1. Біріншіден, кітапханалар болуы керек (дәл Arduino сияқты) және айнымалыларды жариялау (1-25 жолдар)

2. Содан кейін дисплей тақтасын орнатыңыз (27-63 жолдар)

3. Кодтың қайталанатын бөлігін іске қосыңыз- менің айтайын дегенім, кодтың бұл бөлігі бағдарлама жұмыс істеп тұрғанша қайталанады. Сіз Arduino -да «void loop ();» есіңізде боларсыз. (6 -қадам). Өңдеу кезінде бұл енді «void draw ();» (65-184 жолдар)

4. Келесі - сериялық порттан деректерді алу және оны айнымалыларға тағайындау (int, float, String)

инт-

жүзу

Жол-

(185-245 жолдар)

4. Бағдарламаны жабудың және деректерді сақтаудың соңғы әдісі (246-271-жолдар)

Жарайды: Temp_Hum_F_3_2 файлын жүктеңіз (Фаренгейт үшін)

Немесе Temp_Hum_C_3_1 (Centigrade үшін)

және файлды ашыңыз. Өңдеу арқылы ашу.

11 -қадам: өңдеудегі қаріп

Өңдеудегі қаріп
Өңдеудегі қаріп

Маңызды: Мен сіздің назарыңызды 36-37 жолдарға аударамын

36 font = loadFont («SourceCodePro-Bold-48.vlw»); // деректерде сақталған қаріпті жүктейді

37 textFont қалтасы (қаріп);

Бұл «SourceCodePro-Bold-48.vlw» қаріптер кітапханасы Файлдарды жүктеуге өңдеуге қосылады және оны функцияға өзгерту қажет емес.

Қаріпті басқа нәрсеге өзгерту үшін сізге жаңа қаріпті өңдеу эскизіне жүктеу керек және «SourceCodePro-Bold-48.vlw» дегенді жаңа қаріппен ауыстыру қажет болады.

. Бақытымызға орай, өңдеу бірінші бөлікті өте жеңіл етті.

Алдымен эскизді ашып, нұқыңыз:

Құралдар> Қаріп құру

бұл терезені ашады

Диаграмманы қараңыз

Қажет жаңа қаріпке төмен жылжыңыз, оны басыңыз, содан кейін OK түймесін басыңыз. Қаріп енді эскиз қалтасына жүктелді.

Содан кейін «SourceCodePro-Bold-48.vlw» мәтінін жаңа қаріптің нақты атауымен ауыстырыңыз (.vlw файл пішімін қоса)

Егер бұл орындалмаса, жаңа қаріп кодқа жүктелмейді және код қате береді (дәл Arduino қателері сияқты- бағдарламаның төменгі жағындағы қара жәшікте).

12 -қадам: Аяқтау

Аяқтау
Аяқтау
Аяқтау
Аяқтау
Аяқтау
Аяқтау
Аяқтау
Аяқтау

Өңдеу бағдарламасын бастау үшін көрсеткіні нұқыңыз, сіз Java ескертуін ала аласыз, Басыңыз: Қол жеткізуге рұқсат етіңіз.

Диаграмманы қараңыз

Жарайды, бағдарлама жұмыс істеді ме? Олай болса, сіз диаграммада көрсетілгендей дисплей аласыз.

(Жоқ? Келесі қадамдағы ақауларды жоюды қараңыз)

Иә? Енді DHT11 жабық алақаныңызда ұстап көріңіз немесе феннің жылы ауа ағынының астына қойыңыз. Сандар өзгеруі керек. Иә? Тамаша. бұл бәрі жақсы жұмыс істейтінін білдіреді.

Бағдарламаны жабу және деректерді сақтау үшін «Деректерді жабу және сақтау үшін мына жерді басыңыз» деген жолақты басыңыз.

Енді сақталған деректерді табу үшін Temp_Hum_F_3_1 немесе Temp_Hum_C_3_1 Өңдеу қалтасына өтіңіз (қазірге дейін оны өзіңіз таба аласыз), оны ашып, Деректер қалтасын табыңыз. Осыны ашыңыз, сонда сіз бағдарламаны жапқан күні мен уақытымен аталатын.csv файлын көресіз (1-10-18--22-30-16.csv мысалы 10 қаңтар 2018 ж. 10:30:16 PM дегенді білдіреді). Мұны Excel көмегімен ашыңыз (немесе Open office электрондық кестесінің баламасы). Сіз диаграмма сияқты нәрсені көруіңіз керек. Деректермен күн, уақыт, жұмыс уақыты, температура мен ылғалдылық бағандары. Енді сіз деректерді excel -мен немесе онымен не істегіңіз келетінін графикке түсіре аласыз. (Ескерту: егер сіз бірінші деректерді енгізуді қарасаңыз, температура мен ылғалдылық туралы мәліметтер дұрыс емес, бұл қалыпты жағдай және бағдарлама бірінші рет іске қосылған кездегі қате)

Жарайды иә !!!!!

Сіз жасадыңыз

Егер сізде қандай да бір сұрақтар туындаса, жазыңыз, мен жауап беруге және көмектесуге бар күшімді саламын.

Осымен қалғаныңызға рахмет және сәттілік. Бұл бастамасы ғана деп үміттенемін ….

Мен үшін келесі Bluetooth және мүмкін Android …

13 -қадам: ақауларды жою

Ақаулық себебін іздеу және түзету
Ақаулық себебін іздеу және түзету
Ақаулық себебін іздеу және түзету
Ақаулық себебін іздеу және түзету

Arduino проблемалары

Егер сіз қате кодын алсаңыз (IDE -дің төменгі жағындағы қызғылт сары түсті мәтін), ол келесілердің бірі болуы керек «DHTlib» кітапханасы дұрыс көшірілмеген

COM порты дұрыс орнатылмаған

Сенсор дұрыс қосылмаған

Код IDE -ге дұрыс жүктелмеді

Егер Arduino -да бәрі жақсы болса, сериялық мониторды ашуды ұмытпаңыз және деректердің көрсетілуін тексеріңіз

Егер сіз дұрыс деректерді көрсеңіз, бұл Arduino тарапының бәрі жұмыс істейтінін білдіреді- Есіңізде болсын, өңдеуді бастамас бұрын сериялық мониторды жабыңыз, егер сериялық монитор ашық болса, өңдеу деректерді оқи алмайды.

Өңдеу мәселелері:

Олар өңдеу бағдарламасының төменгі бөлігінде көрсетіледі.

Егер сіз «қаріпті» сипаттайтын қате алсаңыз, 11 -қадамға оралыңыз және қаріпті сипатталғандай жүктеңіз.

Егер сіз келесідей қате алсаңыз: Қате, COM4 null үшін serialEvent () өшіру- тек 12-қадамдағы көрсеткіні басу арқылы өңдеудің нобайын қайта бастаңыз.

Егер сіз қате алсаңыз: Сериялық портты ашу қатесі- 32-34 жолдарды өзгертуге тырысыңыз, бұл жерде «COM4» сіздің Arduino эскизіндегі COM портына сәйкес келеді.

myPort = newSerial (бұл «COM4», 9600); // порт myPort.bufferUntil ('\ n') // сериалда деректер болғанша күтіңіз

Ұсынылған: