Projekt snímače Arduino DHT22 a půdní vlhkosti s nabídkou: 4 kroky
Projekt snímače Arduino DHT22 a půdní vlhkosti s nabídkou: 4 kroky
Anonim
Projekt snímače Arduino DHT22 a vlhkosti půdy s nabídkou
Projekt snímače Arduino DHT22 a vlhkosti půdy s nabídkou

Ahoj lidi, dnes vám představuji svůj druhý projekt na instruktabile. Tento projekt představuje směsici mého prvního projektu, ve kterém jsem použil snímač půdní vlhkosti a snímač DHT22, který se používá k měření teploty a vlhkosti. Tento projekt je snadno vyrobitelný a lidé, kteří používají Arduino, budou mít pocit, že je zajímavé jej vytvořit. Rozdíl mezi tímto projektem a prvním je ten, že v tomto projektu bude mít uživatel nabídku, ve které si může vybrat, co chce v tuto chvíli vidět. K dispozici budou čtyři možnosti. Vezměte si tedy stavebnici a začněte vyrábět tento projekt, který lze použít v jakékoli domácnosti.

Krok 1: Získání všech částí

Získání všech dílů
Získání všech dílů
Získání všech dílů
Získání všech dílů
Získání všech dílů
Získání všech dílů

Tento projekt používá několik částí. Pořízení těchto dílů je velmi levné, takže si s cenou nedělejte starosti. Některé části použité v tomto projektu lze změnit, takže výroba projektu může být levnější. Je na vás, které doporučené části použijete a učiníte tento projekt ještě lepším. Díly použité v tomto projektu:

  1. Arduino uno rev3 (Můžete také použít jiné Arduino)
  2. Prkénko
  3. Zelený displej LCD 1602 s I2C (můžete také použít displej s I2C, ale pro připojení budete potřebovat více pinů)
  4. 16tlačítková klávesnice (vyměnitelná)
  5. FC-28-d Modul detekce vlhkoměru na půdu + snímač vlhkosti půdy
  6. Čidlo teploty a vlhkosti DHT22 (Můžete použít DHT11, jehož pořízení je levnější)
  7. Červená LED dioda
  8. Modrá LED dioda
  9. 2 rezistory 220 ohmů (používané pro diody)
  10. 4k7 odpor použitý pro DHT22 na schématu
  11. Konektor baterie Arduino
  12. Několik propojovacích kabelů pro připojení všech částí

Jedna věc, kterou vám musím říct, než začnete stavět tento projekt, je, že klávesnice není nutná. Tentokrát jsem použil klávesnici, protože můj rotační kodér byl rozbitý. Myslím, že tento projekt by byl perfektní, kdyby měl rotační kodér, protože by používal menší piny nebo by mohl používat 3 tlačítka.

Krok 2: Spojení všech částí dohromady

Spojení všech částí dohromady
Spojení všech částí dohromady

V tomto kroku můžete vidět schéma, které jsem vytvořil při fritování. Zapíšu si horké, abych propojil každou klíčovou část tohoto projektu.

Jak vidíte, k napájení prkénka používáme 5V a GND od arduina.

LCD:

  • VCC na 5v (+ část na prkénku)
  • GND to gnd (- část na prkénku)
  • SDA na analogový pin A4
  • SCL na analogový pin A5

Klávesnice se 16 tlačítky:

K připojení klávesnice používáme piny 9, 8, 7, 6, 5, 4, 3, 2 (to je důvod, proč bych použil rotační kodér, protože by to na desce trvalo jen 3 piny)

Čidlo vlhkosti půdy:

  • VCC na 5v (+ část na prkénku)
  • GND to gnd (-part on breadboard)
  • D0 na digitální pin 0
  • A0 na analogový pin A0

DHT22:

  • VCC na 5v (+ část na prkénku)
  • GND to gnd (-part on breadboard)
  • Výstupní kolík je připojen ke kolíku 12

Připojení diod:

  • jedna část diody jde do - část prkénka
  • druhá část prochází odporem 220 ohmů a poté je připojena na pin 10 (modrá dioda) nebo 11 (červená dioda)

Krok 3: Psaní kódu

Pokusím se vysvětlit kód v několika částech. Bude zde také napsán úplný kód, takže jej můžete zkopírovat a také změnit, pokud uvidíte nějakou potřebu. Také v tomto kódu je napsáno několik metod pro práci se senzory, ale tentokrát se hlavní důraz kladl na vytvoření nabídky, která bude snadno pochopitelná pro lidi, kteří jsou s Arduinem noví. Tentokrát nepoužívám žádná přerušení, ale v mých dalších projektech ano, takže mějte na paměti, že tento kód může být s přerušeními mnohem lepší.

  1. První část kódu zahrnuje všechny použité knihovny pro tento projekt. Mějte na paměti, že pro všechny části, které jsem řekl, že používám, potřebujete další knihovny: Wire, LiquidCrystal_I2C, klávesnice a DHT. Všechny knihovny najdete na Arduino IDE, pokud přejdete na část skici a poté na zahrnutí knihoven. Mějte také na paměti, že pokud používáte něco jako rotační kodér, budete pravděpodobně muset místo klávesnice získat nové knihovny, což by pravděpodobně bylo rotary.h a button. Pokud používáte snímač DHT11, knihovna je stále DHT.
  2. V druhé části kódu bude definování všech použitých částí. V první řadě je to LCD. Poté je zde snímač DHT, který je reprezentován jako objekt s typem snímače dht, a také pin, který je připojen. Senzor vlhkosti půdy a diody jsou třetí.
  3. Klávesnici popíšu trochu více. Jak jsem řekl, můj rotační kodér byl rozbitý, tak jsem se rozhodl ho použít. Pro tento projekt stačí mít pouze čtyři tlačítka, dokonce tři jsou pro něj dobrá. Používám tedy čtyři tlačítka na klávesnici pouze pro jednu možnost. Některá tlačítka můžete použít, pokud chcete něco jiného, pokud máte nápad. V této části musíte definovat řádky a sloupce. Poté vám hexaKeys představí možnosti použité pro tento projekt. V mém projektu jsou B (zpět), U (nahoru), D (dolů) a A (přijmout). Každým tlačítkem můžete udělat něco jiného. Jedním tlačítkem lze zapnout podsvícení, druhým je lze vypnout. Takže si s tím klidně ještě zahrajte
  4. V této části jsou globální proměnné používané v kódu. Bool proměnné se používají pro změnu obrazovky. Uvítací proměnná je platná jen několik sekund, pouze když je zapnuté Arduino i, poté bude po zbytek času nepravdivé. Hlavní důraz je kladen na proměnnou mainScreen. Tato proměnná slouží k tomu, aby vás vedla z nabídky k jakékoli jiné možnosti v kódu. Pokud je tato proměnná nepravdivá, znamená to, že se uživatel rozhodl použít jednu ze čtyř možností tohoto projektu.
  5. Zde jsou zapsány všechny metody použité v tomto kódu. Pokusím se vysvětlit všechny písemné metody v této části
  • void startScreen (); // metoda pro spuštění projektu a arduino
  • int choiceNumber (int volba); // tím se změní váš výběr možností projektu. Číslo jde od 1 do 4
  • void mainScreenP (volba int); // budou zapsány čtyři možnosti zařízení, které je vyrobeno
  • bool mainScreenCS (bool mainScreen); // tím se změní mainScreen na false
  • bool mainScreenBack (bool mainScreen); // tím se změní mainScreen na true
  • neplatný tempCelsius (); // čtení teploty v možnosti snímače C DHT
  • zrušit tempFarenheit (); // čtení teploty ve volbě senzoru F DHT
  • void printHumidity (); // čtení možnosti senzoru vlhkosti DHT
  • void readSensorData (); // čtení dat na připojených senzorech
  • Řetězec getTemperatureC ();
  • Řetězec getTemperatureF ();
  • Řetězec getHumidity ();
  • prázdná půdaVlhkost (); // to je pro další senzor a diody
  • void printSensorSoilMoisture (); // tisk části vlhkosti půdy na lcd
  • void diodeLights (int hodnota); // zapínání a vypínání diod
  • void printValue (int hodnota);

6. Nastavení pro arduino je část, kde nastavíte LCD a DHT senzor a také diody

7. Hlavní část je část, kde jsou použity všechny výše uvedené písemné metody.

Úplný kód tohoto projektu bude v příloze tohoto kroku. Mějte na paměti, že existuje možnost, že kolíky nemusí být propojeny jako na schématu, myslím, že diody jsou změněny.

Krok 4: Používání Arduina

Používání vašeho Arduina
Používání vašeho Arduina
Používání vašeho Arduina
Používání vašeho Arduina
Používání vašeho Arduina
Používání vašeho Arduina
Používání vašeho Arduina
Používání vašeho Arduina

Tohle je asi nejzábavnější část. Alespoň je to zábavnější po tom všem napsaném kódování. V této části můžete vidět obrázky, jak projekt funguje. K dispozici jsou 4 možnosti.

  1. Teplota čtení ve stupních Celsia
  2. Teplota čtení ve Fahrenheitech
  3. Čtení vlhkosti
  4. Zapnutí diod a čtení hodnot snímače vlhkosti půdy.

Můžete si vybrat některou z možných možností, také se můžete vrátit a znovu si vybrat, pokud chcete vidět něco jiného. Jednoduché a snadné použití.

Pokud máte ještě nějakou otázku, můžete se mě zeptat. Děkuji, že jste se podívali na můj projekt. Se všemi pozdravy. Sebastian

Doporučuje: