Chytrá WiFi zásuvka Sonoff S26
Chytrá domácnost umožňuje ovládat elektrické spotřebiče na dálku. A přesně to umožní zásuvka Sonoff S26.
Pro M5stick jednotky lze zakoupit různé rozšiřovací moduly, kdy pro měření analogových signálů můžeme použít například tento ADC HAT. Tento modul obsahuje obvod ADS1100, který umožňuje měřit signály o velikosti 0-12 Voltů a s rozlišením 16 bitů.
Pro jeho spojení s M5stick deskou stačí propojit 4 vodiče. Připojíme GND s GND, VCC s pinem 5V a datové piny s I2C sběrnicí. U M5stick-C modulu pak stačí použít existující pinovou lištu a jednoduše propojit modul se senzorem.
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 uvedena ukázka měření napětí 0-5 Voltů díky připojenému potenciometru:
// M5 stick a jednotka ADC // Analogově-digitální převodník // navody.dratek.cz // připojení potřebných knihoven #include <M5StickC.h> #include <Wire.h> #include "ADS1100.h" // vytvoření objektu ads z knihovny ADS1100 ads; // nastavení konstant pro měření #define REF_VOL 3.3 #define ADC_BASE REF_VOL/32768 void setup(void) { // zahájení komunikace s M5 stick jednotkou M5.begin(); // zahájení komunikace po sériové lince Serial.begin(115200); // vymazání obsahu displeje a nastavení oranžové barvy pro text M5.Lcd.fillScreen(BLACK); M5.Lcd.setTextColor(ORANGE); // nastavení I2C adresy pro ADS modul, výchozí je 0x48 ads.getAddr_ADS1100(ADS1100_DEFAULT_ADDRESS); // nastavení zesílení ads.setGain(GAIN_ONE); // 1x gain(default) // ads.setGain(GAIN_TWO); // 2x gain // ads.setGain(GAIN_FOUR); // 4x gain // ads.setGain(GAIN_EIGHT); // 8x gain // nastavení měřícího režimu ads.setMode(MODE_CONTIN); // Průběžné měření (default) // ads.setMode(MODE_SINGLE); // Mód jednorázového měření // nastavení počtu měření za sekundu (SPS) ads.setRate(RATE_8); // ads.setRate(RATE_16); // ads.setRate(RATE_32); // ads.setRate(RATE_128); // nastartování měření ads.setOSMode(OSMODE_SINGLE); ads.begin(); } void loop(void) { // proměnné pro kontrolu připojeného modulu byte error; // otestování komunikace s I2C modulem Wire.beginTransmission(ads.ads_i2cAddress); error = Wire.endTransmission(); // při vrácení hodnoty 0 je připojen I2C modul if (error == 0) { // proměnné pro uložení výsledků int16_t result, vol; float temp; Serial.println("Zahajeni diferencialniho mereni s ADS1100"); Serial.println(" "); // načtení výsledku měření result = ads.Measure_Differential(); Serial.print("Digitalni hodnota mezi kanaly 0 a 1: "); Serial.println(result); M5.Lcd.fillScreen(BLACK); // proměnná pro výpis dat na displej char data[20] = { 0 }; // uložení výsledku ve formě celého čísla sprintf(data, "%d", result); // přepočet načtené hodnoty na napětí temp = result * ADC_BASE * 4; vol = temp * 1000; // výpis dat na displej M5 stick M5.Lcd.drawCentreString("Raw data ", 0, 10, 2); M5.Lcd.drawCentreString(data, 0, 30, 4); sprintf(data, "%d", vol); M5.Lcd.setTextColor(GREEN); M5.Lcd.drawCentreString("Vysledek ", 0, 90, 2); M5.Lcd.drawCentreString(data, 0, 110, 4); M5.Lcd.drawCentreString("mV", 70, 110, 2); Serial.println(" "); Serial.println(" *************************** "); Serial.println(" "); } else { Serial.println("ADS1100 neni pripojen!"); Serial.println(" "); Serial.println(" ************ "); Serial.println(" "); M5.Lcd.setTextFont(4); M5.Lcd.setTextColor(TFT_WHITE, TFT_BLACK); M5.Lcd.drawString("Modul nenalezen.", 0, 20, 2); } // krátká pauza před novým měřením delay(300); }
Sestřih ze streamu:
Celý záznam:
Na eshopu můžete tento M5stack modul zakoupit zde:
https://dratek.cz/arduino/20761-m5stickc-esp32-pico-iot-vyvojovy-kit.html
https://dratek.cz/arduino/20943-m5stickc-adc-hat-ads1100.html
Chytrá domácnost umožňuje ovládat elektrické spotřebiče na dálku. A přesně to umožní zásuvka Sonoff S26.
e-Paper displeje už jsou dostupné i pro bastlení za rozumné ceny a pro jejich ovládání se hodí tento Driver.