M5stack Earth a Relay moduly

Pro M5stack či M5stick jednotky lze zakoupit různé rozšiřovací moduly. Já jsem zde použil dohromady modul Earth pro měření odporu půdy a Relay s jednoduchým relátkem pro spínání zátěže. Při jejich kombinaci tedy můžeme ještě připojit čerpadlo s nádobou na vodu, které pak na základě naměřených hodnot Earth modulem můžeme spínat pomocí Relay modulu.

Ukázkový program najdete níže, přičemž jeho popis můžete najít na videu, které je připojeno na konci návodu. Je v něm rovnou spojeno využití chování Earth modulu a ovládání Relay:

// M5 stack a jednotky Earth + Relay
// Měření odporu půdy a spínání relé
// navody.dratek.cz

// připojení potřebné knihovny
#include <M5StickC.h>
// nastavení čísel propojovacích pinů
#define PIN_AOUT 33
#define PIN_DOUT 32
#define PIN_RELE 26
// proměnné pro ukládání načtených dat
uint16_t analogRead_value = 0;
uint16_t digitalRead_value = 0;

void setup() {
  // zahájení komunikace s M5 stack
  M5.begin();
  // zahájení komunikace s napájecím čipem
  M5.Power.begin();
  // nastavení typů propojovacích pinů
  pinMode(PIN_AOUT, INPUT);
  pinMode(PIN_DOUT, INPUT);
  pinMode(PIN_RELE, OUTPUT);
  // výchozí vypnutí relé
  digitalWrite(PIN_RELE, LOW);
  // výpis základních informací na displej
  M5.Lcd.setRotation(1);
  M5.Lcd.setTextColor(YELLOW);
  M5.Lcd.setCursor(25, 2);
  M5.Lcd.printf("Zalevac kvetinn");
  M5.Lcd.setCursor(10, 30);
  M5.Lcd.print("Analog:");
  M5.Lcd.setCursor(10, 50);
  M5.Lcd.print("Digit: ");
}

void loop() {
  // vypsání starých údajů na displej černou
  // barvou pro jejich vymazání
  M5.Lcd.setCursor(80, 30);
  M5.Lcd.setTextColor(BLACK);
  M5.Lcd.printf("%dn", analogRead_value);
  M5.Lcd.setCursor(80, 50);
  M5.Lcd.printf("%dn", digitalRead_value);
  // načtení nových údajů z modulu
  analogRead_value = analogRead(PIN_AOUT);
  digitalRead_value = digitalRead(PIN_DOUT);
  // vypsání nových údajů žlutou barvou
  M5.Lcd.setTextColor(YELLOW);
  M5.Lcd.setCursor(80, 30);
  M5.Lcd.printf("%dn", analogRead_value);
  M5.Lcd.setCursor(80, 50);
  M5.Lcd.printf("%dn", digitalRead_value);
  // pokud je načtená analogová hodnota
  // větší než naše mez (max 4095),
  // tak sepneme výstup na relé
  if (analogRead_value > 3000) {
    digitalWrite(PIN_RELE, HIGH);
  }
  // v opačném případě vypneme relé
  else {
    digitalWrite(PIN_RELE, LOW);
  }
  // krátká pauza před novým během smyčky
  delay(100);
}

Celý záznam:

Na eshopu můžete tyto M5stack moduly zakoupit zde:
https://dratek.cz/arduino/20926-m5stack-esp32-grey-vyvojovy-kit-pro-iot.html
https://dratek.cz/arduino/20872-m5stack-rele-modul-3a.html
https://dratek.cz/arduino/20870-m5stack-senzor-pudni-vlhkosti.html

Další podobné články