Съдържание:

Показване на температурата и влажността и събиране на данни с Arduino и обработка: 13 стъпки (със снимки)
Показване на температурата и влажността и събиране на данни с Arduino и обработка: 13 стъпки (със снимки)

Видео: Показване на температурата и влажността и събиране на данни с Arduino и обработка: 13 стъпки (със снимки)

Видео: Показване на температурата и влажността и събиране на данни с Arduino и обработка: 13 стъпки (със снимки)
Видео: Интернет-часовник с прогноза за времето 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 Board - Използвах Arduino Uno Board, но всяка Arduino платка с USB ще е подходяща

*USB кабел -USB A/B кабел -същото като стария тип "кабел за принтер" (обикновено се предлага с Arduino Board)

*DHT 11 датчик за температура /влажност- евтин $ 4 до 8

(Забележка: Има 2 версии, които използвах 3 -пиновата версия, 4 -пиновата версия ще изисква използване на макет и 10K резистор, 3 -пиновият има печатна платка, която включва 10K резистор) вижте диаграмите на фриттинг в следващите стъпки

*Свързващи проводници

Dupont проводници (двойни женски краища), ако се свързват към 3 -пинов DHT11 без дънна платка

Стандартни джъмперни M/F проводници (един край мъжки един край женски) и M/M джъмперни проводници (двата края мъжки) за свързване на 4 пинов DHT11 - вижте стъпка 2 за повече информация

*Arduino IDE - програма за писане на програми на Arduino (наречени скици) безплатно @

www.arduino.cc/en/Main/Software

*Обработка - програма за писане на скици за обработка безплатно @

processing.org/download/

* Файл „DHTLib“-библиотечен файл (това е файл, който влиза в програмата за IDE на Arduino под папката, наречена „Библиотека“), това ще трябва да бъде добавено към скицата на Arduino, преди Arduino да може да прочете данните от DHT11 -вижте стъпка 5 за изтегляне на файл и инструкции

Стъпка 2: Свържете Arduino към DHT11

Свържете Arduino към DHT11
Свържете Arduino към DHT11
Свържете Arduino към DHT11
Свържете Arduino към DHT11
Свържете Arduino към DHT11
Свържете Arduino към DHT11
Свържете Arduino към DHT11
Свържете Arduino към DHT11

Първо определете кой DHT11 имате

Използвах 3 пина, тъй като вече има необходимия 10K резистор.

Ако имате 4 пина, ще ви трябва 10K резистор и макет

Свържете DHT11 към Arduino Board. Тази програма изисква DHT 11 сигнален щифт да бъде свързан към Arduino пин #7, Pos (+) щифт, свързан към 5V на Arduino и Neg (-) към GND на Arduino.

Вижте Диаграми и Диаграми на фризиране

Стъпка 3: Изтеглете Arduino IDE

Изтеглете Arduino IDE
Изтеглете Arduino IDE

Изтеглете Arduino IDE и инсталирайте на компютъра

www.arduino.cc/en/Main/Software

Стъпка 4: Свържете Arduino към компютъра

Свържете Arduino към компютъра
Свържете Arduino към компютъра

Инсталирайте първо Arduino IDE, той има драйвери за Arduino USB връзка.

Свържете Arduino към компютър чрез USB.

Изчакайте компютърът да разпознае платката 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 и го разархивирайте. Отворете Temp_Hum_Instructable.ino с Arduino IDE.

Алтернативно погледнете следния код и копирайте и поставете или въведете точно в IDE на Arduino:

#включва

dht DHT; #define DHT11PIN 7 // задава щифт 7 за DHT11 сигнална връзка void setup () {Serial.begin (9600); // отваря сериен} 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

Заредете кода в Arduino
Заредете кода в Arduino
Заредете кода в Arduino
Заредете кода в Arduino
Заредете кода в Arduino
Заредете кода в Arduino
Заредете кода в Arduino
Заредете кода в Arduino

Първо запишете скицата на място и с име, което ще запомните, Пример: Temp_Hum.

След това трябва да заредите скицата върху дъската на Arduino, като натиснете бутона със стрелка, насочена надясно (качване).

Вижте Диаграма

Това ще отнеме няколко секунди; долу вдясно ще видите лента за напредък.

Тогава ще видите: Готово качване на съобщение в долния ляв ъгъл и бял текст в долната част на IDE, който ви разказва за паметта

Вижте Диаграма

Ако получите код за грешка (оранжев текст в долната част на IDE), това трябва да е едно от следните

  1. Библиотеката "DHTlib" не е копирана правилно
  2. COM портът не е настроен правилно
  3. Сензорът не е свързан правилно
  4. Кодът не е зареден правилно в IDE Оранжевият текст може да се превърта и той ще даде представа какво не е наред. Върнете се и проверете дали това вероятно е проста грешка.

След като това стане, погледнете внимателно дъската си Arduino. На всеки няколко секунди малкият светодиод до буквите „TX“ще мига. Това е Arduino, изпращащ информация обратно към компютъра. За да проверите това, щракнете върху символа на малкото лупа в горния десен ъгъл на IDE.

Вижте Диаграма

Това ще отвори серийния монитор и ще покаже данните за температурата и влажността, разделени със запетая. Ще отбележите, че данните за температурата са изброени в Целзий. Това е добре, по -късно ще преобразуваме във Фаренхайт (или не, ако решите).

Вижте Диаграма

След това затворете серийния монитор и след това затворете IDE. (Не сте забравили да го запазите, нали?). Сега погледнете отново платката Arduino (не я изключвайте от USB, където получава захранване, и изпращайте данни към серийния порт на компютъра). Още ли мига? Да супер. След като програмата се зареди на Arduino, тя ще работи, докато има захранване.

Забележка относно кода: ако погледнете кода на Arduino, започващ с „void loop ();“. Следващите 5 реда код говорят на Arduino да чете данни от DHT и да ги отпечатва на серийната шина, разделена със запетая. Следващият ред „забавяне (2000);“казва на Arduino да изчака 2 секунди (2000 милисекунди), така че данните да се получават на всеки 2 секунди. След това се връща към „void loop ();“- команда, която казва на Arduino да го направи отново. Промяната на стойността в линията на забавяне ще промени колко често се получават данните. Пример: промяна на (600000) ще се промени до 10 минути (600000 милисекунди = 10 минути). Получаването на данни на всеки 2 секунди се оказва много данни, така че сега знаете как да промените колко често се четат данните. Просто не забравяйте, ако по -късно промените стойността трябва да качите новата програма.

Добре седнете и поемете дъх, вие сте повече от половината път там. Да !!

Стъпка 8: Изтеглете и инсталирайте обработка

Изтегляне и инсталиране на обработка
Изтегляне и инсталиране на обработка
Изтегляне и инсталиране на обработка
Изтегляне и инсталиране на обработка

processing.org/download/

Доста направо изберете програмата, която съответства на вашия компютър за Windows 64bit срещу 32 bit. Ако не знаете, отворете контролния панел на компютъра си (изглед на икона, а не категория изглед) и отидете в системата, той ще бъде изброен там.

Вижте Диаграма

Изтеглете и след това инсталирайте програмата.

Първият път, когато отворите и стартирате обработка, вероятно ще получите съобщение за защита на Java. Кликнете върху „разреши“за частни мрежи. Java е компютърният език, използван от Processing (и Arduino IDE). Интересното е, че никога не съм получавал съобщение за сигурност с Arduino IDE, просто обработка.

Стъпка 9: Обработка на код

Код за обработка
Код за обработка

Добре сега за кода за обработка.

Това беше най -предизвикателната част за мен, но и най -голямата възможност за учене. Докато кодът на Arduino беше около 20 реда, този код има +/- 270 реда в основния код и още 70 + в класовете.

Сега първото нещо, което трябва да попитате, е „Какво представляват класовете?“. Добър въпрос. Това се отнася до обектно ориентирано програмиране. Накратко, има много неща, които се случват в основния код: определяне на размера и цвета на дисплея, часовник, таймер, код за показване на местоположението на курсора, код за запазване на данни във.csv файл и няколко реда които се занимават с код, който показва лентовите графики. Докато IDE на Arduino имаше целия код на една страница, този код за обработка има три раздела. Първият е основният код, а следващите два са кодът, който показва лентовите графики. (Този код всъщност се съхранява в три отделни файла в папката Processing code.) Отделните раздели се наричат „класове“и са дефинирани в редове 48 и 56 и след това се показват от редове 179-182 на основния код. Хората, които са написали програма за обработка, наричат това обектно ориентирано програмиране. (вижте: https://processing.org/tutorials/objects/ за кратко описание).

По принцип класовете (Recta1, Recta2) в този код правят създаването на правоъгълници, които се движат нагоре и надолу въз основа на данните, получени от DHT11 чрез сериен код. Помислете за старомоден термометър, колкото по -висок е живакът, толкова по -горещ е, но това се прави с данни, а не с живак. Всъщност класовете създават четири правоъгълника, два статични правоъгълника, които представляват фона на термометъра и два динамични правоъгълника, които реагират на данните и се движат нагоре и надолу. В допълнение към преместването на правоъгълниците, кодът променя цвета на динамичния правоъгълник и цвета на цифровия дисплей на Температура и Влажност въз основа на данните, получени чрез сериен код.

Стъпка 10: Обработка на кодови файлове

Само няколко основи за обработка на код:

Силно препоръчвам да прочетете Make: Getting Started withProcessing от Кейси Рийс и Бен Фрай основателите на Processing.

processing.org/books/#reasfry2

Няма да се опитвам да обяснявам всички аспекти на обработката или писането на код за обработка. Както казах по -рано, аз съм начинаещ и мисля, че има много по -добри хора, от които да се учим. Разбирам обаче кода, който съм написал (пробите и грешките са добри учители).

1. Първо трябва да включите библиотеки (точно както в Arduino) и да декларирате променливи (Редове 1-25)

2. След това настройте дисплея (Редове 27-63)

3. Изпълнете повтаряща се част от кода- имам предвид, че тази част от кода ще се повтаря, докато програмата работи. Ще запомните In Arduino „void loop ();“(Стъпка 6). При обработката това вече е „void draw ();“(Редове 65-184)

4. Следва получаването на данни от серийния порт и присвояването им на променливи (int, float, String)

int-

плавам-

Низ-

(Редове 185-245)

4. Най-накрая начин да затворите програмата и да запазите данните (редове 246-271)

Добре: Изтеглете файла Temp_Hum_F_3_2 (за Фаренхайт)

Или Temp_Hum_C_3_1 (за по Целзий)

и разархивирайте файла. Отваряне с обработка.

Стъпка 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 Processing (вече трябва да можете да намерите това сами), отворете я и намерете папката Data. Отворете това и трябва да видите.csv файл, наречен след датата и часа, когато сте затворили програмата (Пример 1-10-18–22-30-16.csv означава 10 януари 2018 г. 22:30:16 ч.). Отворете това с Excel (или еквивалент на Open office spread sheet). Трябва да видите нещо като диаграмата. Колони за дата, час, време на изпълнение, температура и влажност с данни. Вече можете да начертаете данните с Excel или каквото искате да правите с него. (Забележка: ако погледнете първото въвеждане на данни, данните за температурата и влажността не са правилни, това е нормално и е просто грешка при първото стартиране на програмата)

Добре да !!!!!

Направи го

Ако имате въпроси, пишете и аз ще направя всичко възможно да отговоря и да помогна.

Благодаря, че останахте с това и успех. Надявам се това да е само начало ….

Следващ за мен Bluetooth и евентуално Android….

Стъпка 13: Отстраняване на неизправности

Отстраняване на неизправности
Отстраняване на неизправности
Отстраняване на неизправности
Отстраняване на неизправности

Проблеми с Arduino

Ако получите код за грешка (оранжев текст в долната част на IDE), той трябва да е един от следните Библиотеката "DHTlib" не е копирана правилно

COM портът не е настроен правилно

Сензорът не е свързан правилно

Кодът не е зареден правилно в IDE

Ако изглежда, че всички Arduino вървят добре, не забравяйте да отворите серийния монитор и да видите дали се показват данни

Ако виждате правилни данни, това означава, че страната на Arduino работи- Запомнете Затворете серийния монитор преди да започнете обработката, ако серийният монитор е отворен Обработката не може да прочете данните.

Проблеми при обработката:

Те ще бъдат показани в долната част на програмата за обработка.

Ако получите грешка при описване на „шрифт“, върнете се към стъпка 11 и заредете шрифта, както е описано.

Ако получите грешка, която изглежда така: Грешка, деактивиране на serialEvent () за COM4 null- просто рестартирайте скицата за обработка, като щракнете върху стрелката, както в стъпка 12

Ако получите грешка, която гласи: Грешка при отваряне на сериен порт- опитайте да промените редове 32-34 на нещо като това, където "COM4" съвпада с COM порта във вашата скица на Arduino

myPort = newSerial (this, "COM4", 9600); // Порт myPort.bufferUntil ('\ n') // изчакайте, докато сериалът има данни

Препоръчано: