Pro M5stack jednotky lze zakoupit různé rozšiřovací moduly, kdy jedním z nich je PIR. Tento modul obsahuje pohybový senzor AS312.
Pro jeho spojení s M5stack deskou stačí propojit 3 vodiče. Připojíme GND s GND, IN s pinem D36 a VCC s pinem 5V. Pin IN můžete připojit i na jiné volné GPIO piny, jen je nutné provést změnu taky na začátku programu.
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. Kromě PIR modulu je v něm zanasena také práce s reproduktorem přímo na M5stack:
// M5 stack a jednotka PIR // Jednotka s PIR čidlem AS312 // navody.dratek.cz // připojení potřebné knihovny #include <M5Stack.h> // nastavení čísel propojovacích pinů #define pin_PIR 36 void setup() { // zahájení komunikace s M5 stack M5.begin(); // zahájení komunikace s napájecím čipem M5.Power.begin(); // vypnutí reproduktoru dacWrite(25, 0); // výpis informace na displej M5.Lcd.clear(BLACK); M5.Lcd.setTextColor(YELLOW); M5.Lcd.setTextSize(2); M5.Lcd.setCursor(80, 0); M5.Lcd.println("PIR priklad"); M5.Lcd.setCursor(65, 10); M5.Lcd.setTextColor(WHITE); M5.Lcd.setCursor(0, 25); M5.Lcd.print("Status: "); // nastavení funkce vstupního pinu pinMode(pin_PIR, INPUT); } void loop() { // vymazání vypsaného stavu M5.Lcd.fillRect(95, 25, 200, 25, BLACK); // kontrola stavu digitálního vstupu if (digitalRead(pin_PIR) == 1) { // vypsání stavu na displej M5.Lcd.setCursor(95, 25); M5.Lcd.print("Pohyb"); // ohlášení pohybu pomocí reproduktoru M5.Speaker.tone(661); // NOTE_DH2 // zpoždění pro zahrání tónu po 100ms delay(100); // vypnutí reproduktoru M5.Speaker.tone(0); // delší pauza pro omezení opakování zvukového hlášení delay(1000); } else { // vypsání stavu na displej M5.Lcd.setCursor(95, 25); M5.Lcd.print("Klid"); } // krátká pauza před novým během smyčky delay(100); }
Sestřih ze streamu:
Celý záznam:
Na eshopu můžete tento M5stack modul zakoupit zde:
https://dratek.cz/arduino/20930-m5stack-pir-pohybovy-senzor.html