Мазмуну:

Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: 13 кадам (сүрөттөр менен)
Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: 13 кадам (сүрөттөр менен)

Video: Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: 13 кадам (сүрөттөр менен)

Video: Температура жана нымдуулукту көрсөтүү жана маалыматтарды чогултуу Arduino жана иштетүү менен: 13 кадам (сүрөттөр менен)
Video: Эмне үчүн бадыраңдын гүлү көп, мөмөсү аз болот? 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 тактасын колдондум, бирок USB менен каалаган Arduino тактасы аткарат

*USB кабели -USB A/B кабели -эски типтеги "принтер кабели" менен бирдей (көбүнчө Arduino Board менен келет)

*DHT 11 Температура /Нымдуулук сенсору- арзан 4-8 доллар

(Эскертүү: мен 3 пин версиясын колдонгон 2 версия бар, 4 пинтүү версиясы нан жана 10K каршылыгын колдонууну талап кылат, 3 пинде 10K каршылыгын камтыган басылган плата бар) кийинки кадамдарда Фритзинг диаграммаларын караңыз.

*Байланыш зымдары

Dupont зымдары (кош аялдын учтары), эгер 3 панелдүү DHT11ге панелсиз туташса

Стандарттык секирүүчү M/F зымдары (бир учу эркек бир учу ургаачы) жана M/M секиргич зымдар (эки учу эркек) 4 pin DHT11 туташтыруу үчүн - Көбүрөөк маалымат үчүн 2 -кадамды караңыз

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

www.arduino.cc/en/Main/Software

*Иштетүү - иштетүү эскиздерин бекер жазуу үчүн программа @

processing.org/download/

* "DHTLib" файлы -китепкана файлы (бул "Китепкана" деп аталган папкадагы Arduino IDE программасына кирген файл, муну Arduino DHT11деги маалыматтарды окуй электе Arduino эскизине кошуу керек болот) файлды жана нускамаларды жүктөө үчүн 5 -кадам

2 -кадам: DHT11 менен Arduino туташуу

Ардуинону DHT11ге туташтырыңыз
Ардуинону DHT11ге туташтырыңыз
Ардуинону DHT11ге туташтырыңыз
Ардуинону DHT11ге туташтырыңыз
Ардуинону DHT11ге туташтырыңыз
Ардуинону DHT11ге туташтырыңыз
Ардуинону DHT11ге туташтырыңыз
Ардуинону DHT11ге туташтырыңыз

Адегенде сизде DHT11 бар экенин аныктаңыз

Мен 3 пинди колдондум, анткени ал буга чейин керектүү 10K резисторго ээ.

Эгерде сизде 4 пин бар болсо, сизге 10K каршылыгы жана нан табагы керек болот

DHT11ди Arduino тактасына туташтырыңыз. Бул программа DHT 11 сигнал пининин Arduino pin #7ге, Pos (+) 5V Arduino жана Neg (-) менен Arduino GNDге туташуусун талап кылат.

Диаграммаларга жана Фритинг Диаграммаларына кайрылыңыз

3 -кадам: Arduino IDE жүктөп алыңыз

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

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

www.arduino.cc/en/Main/Software

4 -кадам: Ардуинону компьютерге туташтырыңыз

Ардуинону компьютерге туташтырыңыз
Ардуинону компьютерге туташтырыңыз

Arduino IDEди биринчи орнотуңуз, анда Arduino USB туташуусу үчүн драйверлер бар.

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

Компьютердин Arduino тактасын таанып, драйверлерди орнотушун күтө туруңуз.

IDE программасын ачып, сериялык туташууну текшериңиз.

Эгерде Arduino тактасы Tools> портунда көрүнбөсө (кызыл тегерек), 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 DHT; #define DHT11PIN 7 // DHT11 сигнал туташуусун жараксыз кылуу үчүн пин 7 орнотот () {Serial.begin (9600); // serial} void loop ачат () {int chk = DHT.read11 (DHT11PIN); // DHT11 Serial.print (DHT.temperature, 0) окуйт; // Serial.print сериясында темпти басып чыгарат (","); // үтүрдү Serial.print (DHT. humidity, 0) менен басып чыгарат; // Serial.println () сериясында нымдуулукту басып чыгарат; // арабаны кайтаруу кечигүүсү (2000); // 2 секунд күтө}

Бүткөндөн кийин ал жогорудагы диаграммага окшош болушу керек

7 -кадам: Ардуиного кодду жүктөңүз

Ардуиного кодду жүктөңүз
Ардуиного кодду жүктөңүз
Ардуиного кодду жүктөңүз
Ардуиного кодду жүктөңүз
Ардуиного кодду жүктөңүз
Ардуиного кодду жүктөңүз
Ардуиного кодду жүктөңүз
Ардуиного кодду жүктөңүз

Адегенде эскизди жайгашкан жериңизде сактаңыз жана эсиңизде калат, мисалы: 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);" Ардуиного 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 файлына маалыматтарды сактоо коду жана бир нече саптар бул графиктерди көрсөтүүчү код менен иштейт. Arduino IDEде бардык коддор бир бетте болсо да, бул иштетүү кодунда үч өтмөк бар. Биринчиси - негизги код, экинчиси - штрих графиктерди көрсөтүүчү код. (Бул код иш жүзүндө Processing code папкасында үч башка файлда сакталат.) Өзүнчө өтмөктөр "класстар" деп аталат жана 48 жана 56-саптарда аныкталат, андан кийин негизги коддун 179-182-саптары менен көрсөтүлөт. Processing программасын жазган адамдар бул объектке багытталган программалоо деп аташат. (кара: https://processing.org/tutorials/objects/ кыскача сүрөттөмө үчүн).

Негизинен бул коддогу класстар (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)

int-

сүзүү-

Сап-

(185-245-саптар)

4. Акыркы жолу программаны жабуунун жана маалыматтарды сактоонун бир жолу (246-271-саптар)

Ok: 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" дегенди жаңы шрифт менен алмаштыруу керек болот.

. Бактыга жараша, иштетүү биринчи бөлүктү абдан жеңил кылды.

Алгач эскизди ачып, анан чыкылдатыңыз:

Куралдар> Арип түзүү

бул терезени ачат

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

Каалаган жаңы шрифтке ылдый жылдырып, аны чыкылдатып, анан ОК басыңыз. Шрифт азыр эскиз папкасына жүктөлдү.

Кийинки "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 spread баракчасына барабар). Сиз диаграммага окшош нерсени көрүшүңүз керек. Дата, убакыт, иштөө убактысы, темп жана нымдуулук боюнча мамычалар. Эми сиз маалыматтарды Excel менен же аны менен эмнени кааласаңыз график түзө аласыз. (Эскертүү: эгер сиз биринчи маалымат кирүүсүн карасаңыз, Temp and Humidity маалыматы туура эмес, бул нормалдуу жана программа биринчи башталганда жөн гана ката)

Макул ооба !!!!!

Сен кылдың

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

Ушуну менен калганыңыз үчүн рахмат жана ийгилик. Бул башталышы гана деп үмүттөнөм ….

Кийинки мен үчүн Bluetooth жана балким Android …

13 -кадам: Мүчүлүштүктөрдү оңдоо

Мүчүлүштүктөрдү оңдоо
Мүчүлүштүктөрдү оңдоо
Мүчүлүштүктөрдү оңдоо
Мүчүлүштүктөрдү оңдоо

Arduino көйгөйлөрү

Эгерде сиз ката кодун алсаңыз (IDEдин ылдый жагындагы кызгылт сары текст), бул төмөнкүлөрдүн бири болушу керек "DHTlib" китепканасы туура көчүрүлгөн эмес

COM порту туура коюлган эмес

Сенсор туура туташтырылган жок

Код IDEге туура жүктөлгөн жок

Эгерде бардык Arduino жакшы болсо, сериялык мониторду ачууну унутпаңыз жана маалыматтар көрсөтүлүп жаткандыгын көрүңүз

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

Иштетүү көйгөйлөрү:

Бул иштетүү программасынын ылдыйкы бөлүгүндө көрсөтүлөт.

Эгерде сиз "шрифтти" сүрөттөөдө ката кетирсеңиз, 11 -кадамга кайтыңыз жана шрифтти сүрөттөлгөндөй жүктөңүз.

Эгер сиз окшош ката алсаңыз: Ката, COM4 null үчүн serialEvent () өчүрүү- жөн гана 12-кадамдагы жебени басып, иштетүү эскизин кайра баштаңыз.

Эгерде сизде мындай ката пайда болсо: Сериялык портту ачууда ката кетти- 32-34-саптарды "COM4" сиздин Arduino эскизиндеги COM портуна дал келген нерсеге алмаштырып көрүңүз.

myPort = newSerial (бул, "COM4", 9600); // Port myPort.bufferUntil ('\ n') // сериалдын маалыматы болмоюнча күтө туруңуз

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