Obsah:

Zobrazení teploty a vlhkosti a sběr dat pomocí Arduina a zpracování: 13 kroků (s obrázky)
Zobrazení teploty a vlhkosti a sběr dat pomocí Arduina a zpracování: 13 kroků (s obrázky)

Video: Zobrazení teploty a vlhkosti a sběr dat pomocí Arduina a zpracování: 13 kroků (s obrázky)

Video: Zobrazení teploty a vlhkosti a sběr dat pomocí Arduina a zpracování: 13 kroků (s obrázky)
Video: Scentroid's CTAir Continuous Urban Air Quality Monitor Seminar A 12.08.2020 (Subtitled) 2024, Listopad
Anonim
Zobrazení teploty a vlhkosti a sběr dat pomocí Arduina a zpracování
Zobrazení teploty a vlhkosti a sběr dat pomocí Arduina a zpracování

Úvod: Jedná se o projekt, který využívá desku Arduino, senzor (DHT11), počítač se systémem Windows a program Processing (volně ke stažení) k zobrazení údajů o teplotě, vlhkosti v digitálním a sloupcovém grafu, zobrazení času a data a spuštění počítání. up timer během programu a zaznamenávat všechna data do formátu.csv, když je program ukončen.

Inspirace:

Nejprve MUSÍM říct, že jsem úplný začátečník a hodně jsem se od tohoto projektu naučil. Pokouším se tedy napsat tento Instructable, aby jej mohl přečíst a pochopit úplný začátečník.

Viděl jsem různé projekty Arduino na měření teploty a vlhkosti, ale chtěl jsem program, který:

1) Naměřená teplota a vlhkost

2) Data se zobrazují jak v grafu (vybral jsem sloupcový graf), tak v digitální podobě

3) Má funkci hodin

4) Má odpočítávací časovač „Run Time“

5) Uloží tato data do formátu souboru.csv (excel).

Měl jsem inspiraci z programů vytvořených Sowmith Mandadi, R-B a aaakash3, ale žádný z nich nebyl přesně to, co jsem chtěl. Naučil jsem se tedy napsat nějaký základní kód a udělal si, co jsem chtěl.

Krok 1: Co budete potřebovat:

Co budete potřebovat
Co budete potřebovat
Co budete potřebovat
Co budete potřebovat

Části a materiály:*Počítač - Použil jsem operační systém Windows 10

(Jsem si jistý, že lze použít Linux nebo Mac, jen nemám, takže nebudu popisovat, jak tyto operační systémy používat)

*Deska Arduino - Použil jsem desku Arduino Uno, ale každá deska Arduino s USB bude stačit

*USB kabel -USB A/B kabel -stejný jako starý typ „tiskového kabelu“(obvykle se dodává s deskou Arduino)

*Snímač teploty /vlhkosti DHT 11- levný $ 4 až 8

(Poznámka: existují 2 verze, které jsem použil ve verzi se 3 piny, verze se 4 piny bude vyžadovat použití nepájivého pole a 10K odporu, 3pinový má desku s plošnými spoji, která obsahuje odpor 10 K) viz Fritzingova schémata v dalších krocích

*Připojovací vodiče

Dupontovací vodiče (dvojité vnitřní konce), pokud se připojují k 3 pinovému DHT11 bez nepájivého pole

Standardní propojovací M/F vodiče (jeden konec samec jeden konec žena) a M/M propojovací vodiče (oba konce samec) pro připojení 4 pinů DHT11 - viz krok 2 pro více informací

*Arduino IDE - program pro psaní programů Arduino (tzv. Skic) zdarma @

www.arduino.cc/en/Main/Software

*Processing - program pro psaní skic pro zpracování zdarma @

processing.org/download/

* Soubor „DHTLib“-soubor knihovny (jedná se o soubor, který jde do programu Arduino IDE ve složce nazvané „Library“, toto bude nutné přidat do skici Arduino, než bude Arduino moci číst data z DHT11 -viz. krok 5 pro stažení souboru a pokynů

Krok 2: Připojte Arduino k DHT11

Připojte Arduino k DHT11
Připojte Arduino k DHT11
Připojte Arduino k DHT11
Připojte Arduino k DHT11
Připojte Arduino k DHT11
Připojte Arduino k DHT11
Připojte Arduino k DHT11
Připojte Arduino k DHT11

Nejprve určete, který DHT11 máte

Použil jsem 3 pin, protože již má potřebný odpor 10K.

Pokud máte 4 pin, budete potřebovat 10K odpor a nepájivou desku

Připojte DHT11 k desce Arduino. Tento program vyžaduje, aby byl signální pin DHT 11 připojen k pinu Arduino #7, pinu Pos (+) připojen k 5V na Arduino a Neg (-) k GND na Arduino.

Viz Diagramy a Fritzingovy diagramy

Krok 3: Stáhněte si Arduino IDE

Stáhněte si Arduino IDE
Stáhněte si Arduino IDE

Stáhněte si Arduino IDE a nainstalujte do počítače

www.arduino.cc/en/Main/Software

Krok 4: Připojte Arduino k počítači

Připojte Arduino k počítači
Připojte Arduino k počítači

Nejprve nainstalujte Arduino IDE, které obsahuje ovladače pro připojení Arduino USB.

Připojte Arduino k počítači přes USB.

Počkejte, až počítač rozpozná desku Arduino a nainstalujte všechny ovladače.

Otevřete program IDE a zkontrolujte sériové připojení.

Pokud se deska Arduino nezobrazí v portu Nástroje> port (červený kruh), zavřete IDE a znovu otevřete.

* Důležité* jakmile je IDE otevřeno a deska Arduino je připojena přes USB. Deska Arduino musí být připojena ke správnému sériovému portu. Na počítačích se systémem Windows se tomu říká COM port. Chcete -li to provést v IDE, přejděte na Nástroje> Port:> Sériové porty. Jak je vidět na obrázku, sériový port (červený kruh) se musí shodovat s portem uvedeným v pravém dolním rohu programu IDE (žlutý kruh).

Krok 5: Načtěte knihovnu

Načíst knihovnu
Načíst knihovnu
Načíst knihovnu
Načíst knihovnu
Načíst knihovnu
Načíst knihovnu
Načíst knihovnu
Načíst knihovnu

Načtěte knihovnu pro DHT11. Zpočátku to pro mě bylo matoucí, ale je to opravdu docela jednoduché.

Stáhněte si soubor s názvem „DHTLib“a rozbalte jej. Zkopírujte rozbalený soubor „DHTLib“.

Odkaz na tuto knihovnu lze nalézt na:

playground.arduino.cc/Main/DHTLib

(Napsal to Rob Tillaart na základě práce ostatních)

Najděte v počítači složku Arduino a otevřete ji. (Bude všude tam, kde jste si stáhli IDE a nainstalovali jej do počítače)

Viz diagram

Najděte soubor s názvem „knihovny“, otevřete jej a poté vložte složku „DHTLib“do souboru „knihovny“. Zavřete jej a restartujte IDE.

Viz diagram

Jakmile se IDE znovu otevře, můžete zkontrolovat, zda byla nainstalována knihovna DHT. Skica> Zahrnout knihovnu.

Viz diagram

Poznámka Kliknutím na DHTLib na kartě „zahrnout knihovnu“umístíte knihovnu do kódu Arduino jako „#include dht.h“.

Nemusíte to dělat, protože je to již v kódu, který si stáhnete v dalším kroku.

Krok 6: Získejte kód Arduino

Získejte kód Arduino
Získejte kód Arduino

Stáhněte soubor Temp_Hum_Instructable.zip a rozbalte jej. Otevřete Temp_Hum_Instructable.ino pomocí Arduino IDE.

Alternativně se podívejte na následující kód a zkopírujte a vložte nebo zadejte přesně do Arduino IDE:

#zahrnout

dht DHT; #define DHT11PIN 7 // nastaví pin 7 pro připojení signálu DHT11 neplatné nastavení () {Serial.begin (9600); // otevře serial} void loop () {int chk = DHT.read11 (DHT11PIN); // čte DHT11 Serial.print (DHT.temperature, 0); // vytiskne temp v serial Serial.print (","); // vytiskne čárku v sériovém Serial.print (DHT.humidity, 0); // vytiskne vlhkost v sériovém Serial.println (); // zpoždění návratu vozíku (2000); // počkejte 2 sekundy}

Až budete hotovi, mělo by to vypadat jako výše uvedený diagram

Krok 7: Načtěte kód do Arduina

Načtěte kód do Arduina
Načtěte kód do Arduina
Načtěte kód do Arduina
Načtěte kód do Arduina
Načtěte kód do Arduina
Načtěte kód do Arduina
Načtěte kód do Arduina
Načtěte kód do Arduina

Nejprve uložte skicu na místo a se jménem, které si budete pamatovat, Příklad: Temp_Hum.

Dále musíte načíst skicu na desku Arduino stisknutím tlačítka šipka směřující doprava (nahrát).

Viz diagram

To bude trvat několik sekund; vpravo dole uvidíte ukazatel průběhu.

Poté uvidíte: Dokončeno nahrávání zprávy v levém dolním rohu a bílý text ve spodní části IDE, který vám říká o paměti

Viz diagram

Pokud se zobrazí chybový kód (oranžový text v dolní části IDE), měl by to být jeden z následujících

  1. Knihovna "DHTlib" nebyla zkopírována správně
  2. Port COM není správně nastaven
  3. Senzor nebyl správně připojen
  4. Kód nebyl správně načten do IDE. Oranžový text lze procházet a poskytne vodítko k tomu, co je špatně. Vraťte se a zkontrolujte, zda je to pravděpodobně jednoduchá chyba.

Jakmile to uděláte, podívejte se pozorně na desku Arduino. Každých pár sekund bude blikat malá LED vedle písmen „TX“. Toto je Arduino, které odesílá informace zpět do počítače. Chcete -li to zkontrolovat, klikněte na malý symbol lupy v pravém horním rohu IDE.

Viz diagram

Tím se otevře sériový monitor a zobrazí se údaje o teplotě a vlhkosti oddělené čárkou. Všimněte si, že údaje o teplotě jsou uvedeny ve stupních Celsia. To je v pořádku, převedeme na Fahrenheit později (nebo ne, pokud jste si vybrali).

Viz diagram

Dále zavřete sériový monitor a poté zavřete IDE. (Nezapomněli jste to uložit, že?). Nyní se znovu podívejte na desku Arduino (neodpojujte ji od USB, kde získává energii, a odesílejte data na sériový port v počítači). Stále bliká? Ano, skvělé. Jakmile je program načten do Arduina, poběží, dokud má energii.

Poznámka ke kódu: když se podíváte na kód Arduino začínající na „void loop ();“. Dalších 5 řádků kódu řekne Arduinu, aby přečetl data z DHT a vytiskl je na sériovou sběrnici oddělenou čárkou. Další řádek „zpoždění (2000);“říká Arduinu, aby počkal 2 sekundy (2 000 milisekund), aby byla data přijímána každé 2 sekundy. Poté se vrátí zpět na „void loop ();“- příkaz, který řekne Arduinu, aby to udělal znovu. Změna hodnoty v řádku zpoždění změní, jak často jsou data přijímána. Příklad: změna na (600000) se změní na 10 minut (600 000 milisekund = 10 minut). Přijímání dat každé 2 sekundy skončí jako spousta dat, takže nyní víte, jak změnit, jak často se data čtou. Nezapomeňte, že pokud hodnotu změníte později, budete je třeba nahrát nový program.

Dobře, posaďte se a nadechněte se, jste více než v polovině cesty. Ano!!

Krok 8: Stažení a instalace zpracování

Stažení a instalace zpracování
Stažení a instalace zpracování
Stažení a instalace zpracování
Stažení a instalace zpracování

processing.org/download/

Docela přímočarě vyberte program, který odpovídá vašemu počítači pro Windows 64bit vs. 32 bit. Pokud nevíte, otevřete na počítači Ovládací panel (zobrazení ikon není zobrazení kategorií) a přejděte do systému, tam bude uveden.

Viz diagram

Stáhněte a nainstalujte program.

Při prvním otevření a spuštění zpracování pravděpodobně dostanete bezpečnostní zprávu Java. U soukromých sítí klikněte na „povolit“. Java je počítačový jazyk používaný Processing (a Arduino IDE). Zajímavé je, že jsem nikdy nedostal bezpečnostní zprávu s Arduino IDE, jen Processing.

Krok 9: Zpracování kódu

Zpracování kódu
Zpracování kódu

Nyní OK pro zpracovávací kód.

To byla pro mě nejnáročnější část, ale také největší příležitost pro učení. Zatímco kód Arduino byl 20 řádků, tento kód má +/- 270 řádků v hlavním kódu a dalších 70 + ve třídách.

První věc, na kterou byste se měli zeptat, je „Co jsou to kurzy?“. Dobrá otázka. To se týká objektově orientovaného programování. Stručně řečeno, v hlavním kódu se děje spousta věcí: definování velikosti a barvy displeje, hodiny, časovač, kód pro zobrazení polohy kurzoru, kód pro uložení dat do souboru.csv a několik řádků které se zabývají kódem, který zobrazuje sloupcové grafy. Zatímco Arduino IDE mělo veškerý kód na jedné stránce, tento kód pro zpracování má tři karty. První je hlavní kód a další dva jsou kód, který zobrazuje sloupcové grafy. (Tento kód je ve skutečnosti uložen ve třech samostatných souborech ve složce Zpracovávající kód.) Samostatné karty se nazývají „třídy“a jsou definovány v řádcích 48 a 56 a poté zobrazeny řádky 179-182 hlavního kódu. Lidé, kteří napsali program Processing, nazývají toto objektově orientované programování. (krátký popis viz:

Třídy (Recta1, Recta2) v tomto kódu v zásadě vytvářejí obdélníky, které se pohybují nahoru a dolů na základě dat přijatých z DHT11 přes sériové číslo. Myslete na staromódní teploměr, čím výše rtuť stoupá, tím je teplejší, ale to se děje pomocí dat, nikoli rtuti. Ve skutečnosti třídy vytvářejí čtyři obdélníky, dva statické obdélníky, které představují pozadí teploměru, a dva dynamické obdélníky, které reagují na data a pohybují se nahoru a dolů. Kromě přesouvání obdélníků kód mění barvu dynamického obdélníku a barvu digitálního zobrazení teploty a vlhkosti na základě dat přijímaných sériově.

Krok 10: Zpracování souborů kódu

Jen několik základních informací o zpracování kódu:

Vřele doporučuji přečíst si Make: Getting Started withProcessing od Casey Reas a Ben Fry, zakladatelů Processing.

processing.org/books/#reasfry2

Nebudu se pokoušet vysvětlit všechny aspekty zpracování nebo psaní kódu pro zpracování. Jak jsem řekl dříve, jsem začátečník a myslím si, že existují mnohem lepší lidé, od kterých se lze učit. Rozumím však kódu, který jsem napsal (pokus a omyl jsou dobří učitelé).

1. Nejprve musíte zahrnout knihovny (stejně jako v Arduinu) a deklarovat proměnné (řádky 1-25)

2. Dále nastavte desku displeje (řádky 27–63)

3. Spusťte opakovanou část kódu- mám na mysli to, že tato část kódu se bude opakovat, dokud je program spuštěn. V Arduinu si budete pamatovat „void loop ();“(Krok 6). Ve zpracování je to nyní „void draw ();“(Řádky 65-184)

4. Další je získání dat ze sériového portu a jejich přiřazení proměnným (int, float, String)

int-

plovák-

Tětiva-

(Řádky 185-245)

4. Poslední způsob, jak zavřít program a uložit data (řádky 246-271)

Dobře: Stáhněte si soubor Temp_Hum_F_3_2 (pro Fahrenheit)

Nebo Temp_Hum_C_3_1 (pro Celsia)

a rozbalte soubor. Otevřít zpracováním.

Krok 11: Písmo ve zpracování

Písmo ve zpracování
Písmo ve zpracování

Důležité: upozorňuji na linky 36-37

36 font = loadFont ("SourceCodePro-Bold-48.vlw"); // načte písmo uložené v datech

složka 37 textFont (písmo);

Tato knihovna písem "SourceCodePro-Bold-48.vlw" je součástí stahování souborů zpracování a její fungování není třeba měnit.

Chcete-li však změnit písmo na něco jiného, budete muset načíst nové písmo do skici zpracování A nahradit „SourceCodePro-Bold-48.vlw“novým písmem.

. Naštěstí zpracování velmi usnadnilo první část.

Nejprve otevřete skicu a poté klikněte na:

Nástroje> Vytvořit písmo

tím se otevře okno

Viz diagram

Přejděte dolů na požadované nové písmo, klikněte na něj a poté klikněte na OK. Písmo bylo nyní načteno do složky skici.

Dále nahraďte text „SourceCodePro-Bold-48.vlw“přesným názvem nového písma (včetně formátu souboru.vlw)

Pokud se tak nestane, nové písmo se do kódu nenačte a kód způsobí chyby (Stejně jako chyby v Arduinu- v černém rámečku v dolní části programu).

Krok 12: Dokončení

Dokončení
Dokončení
Dokončení
Dokončení
Dokončení
Dokončení
Dokončení
Dokončení

Chcete -li spustit program Processing, klikněte na šipku, může se zobrazit varování Java, Klikněte na: Allow access.

Viz diagram

Dobře, fungoval program? Pokud ano, dostanete zobrazení, jaké vidíte na obrázku.

(Ne? Viz řešení potíží v dalším kroku)

Ano? Nyní zkuste držet DHT11 v zavřené dlani nebo umístit pod proud teplého vzduchu vysoušeče vlasů. Čísla by se měla změnit. Ano? Skvělý. to znamená, že vše funguje dobře.

Chcete -li program zavřít a uložit data, klikněte na pole „Kliknutím sem zavřete a uložíte data“.

Chcete -li nyní najít uložená data, přejděte do složky pro zpracování Temp_Hum_F_3_1 nebo Temp_Hum_C_3_1 (toto byste již měli najít sami), otevřete ji a najděte složku Data. Otevřete toto a měl by se vám zobrazit soubor.csv pojmenovaný podle data a času, kdy jste program ukončili (příklad 1-10-18--22-30-16.csv znamená 10. ledna 2018 22:30:16). Otevřete to v Excelu (nebo ekvivalentu tabulky Open Office). Měli byste vidět něco jako diagram. Sloupce pro datum, čas, čas běhu, teplotu a vlhkost s daty. Data si nyní můžete graficky znázornit pomocí Excelu nebo čehokoli, co s nimi chcete dělat. (Poznámka: pokud se podíváte na první záznam dat, údaje o teplotě a vlhkosti nejsou správné, je to normální a jedná se pouze o chybu při prvním spuštění programu)

Dobře jo !!!!!

Udělal jsi to

Pokud máte nějaké dotazy, napište prosím a já udělám vše pro to, abych odpověděl a pomohl.

Děkujeme, že jste u toho zůstali a hodně štěstí. Doufám, že je to jen začátek ….

Dále pro mě Bluetooth a případně Android….

Krok 13: Odstraňování problémů

Odstraňování problémů
Odstraňování problémů
Odstraňování problémů
Odstraňování problémů

Problémy s Arduino

Pokud se zobrazí chybový kód (oranžový text v dolní části IDE), měl by to být jeden z následujícíchKnižnice „DHTlib“nebyla zkopírována správně

Port COM není správně nastaven

Senzor nebyl správně připojen

Kód nebyl správně načten do IDE

Pokud se zdá, že je vše Arduino v pořádku, otevřete sériový monitor a zkontrolujte, zda se zobrazují data

Pokud vidíte správná data, znamená to, že strana Arduino funguje- Nezapomeňte před zahájením zpracování zavřít sériový monitor, pokud je sériový monitor otevřený, zpracování nemůže číst data.

Problémy se zpracováním:

Ty se zobrazí ve spodní části programu Processing.

Pokud se zobrazí chyba popisující „písmo“, vraťte se ke kroku 11 a načtěte písmo podle popisu.

Pokud se zobrazí chyba, která vypadá takto: Chyba, deaktivace serialEvent () pro COM4 null- stačí restartovat skicu zpracování kliknutím na šipku jako v kroku 12

Pokud se zobrazí chyba, která uvádí: Chyba při otevírání sériového portu- zkuste změnit řádky 32-34 na něco jako kde „COM4“odpovídá portu COM ve vaší skice Arduino

myPort = newSerial (this, "COM4", 9600); // Port myPort.bufferUntil ('\ n') // počkejte, až bude mít seriál data

Doporučuje: