====== (Current) Voolumõõtja näidiskood====== Voolumõõtja peab olema ühendatud anduri mooduliga. Voolumõõtjal on 3,5 mm pistik, mis tuleb ühendada anduri vasakpoolsesesse (A) pesasse. Kontrolleri ja anduri moodulid peavad olema omavahel ühendatud. Voolu sensor peab olema 30A. {{:en:iot:examples:currentpicture1.jpg?200|}} Vajaminevad teegid: lib_deps = ITTIoT, EmonLib Näidiskood demonstreerib vahelduvvoolu väärtuse kuvamist vaheldusvoolu teemasse "curr". Kui mõõtmistulemused puuduvad, kuvatakse väärtuseks NaN. #include #include #include "EmonLib.h" #include #define WIFI_NAME "name" #define WIFI_PASSWORD "password" // Pin definition for the current sensor #define ADC_PIN A0 // create a objects EnergyMonitor emon1; Ticker adcTicker; bool adcFlag; uint16_t adcSampleCount; void setAdcFlag() { // If time, the set adcFlag. adcFlag = true; } // Function started after the connection to the server is established. void iot_connected() { Serial.println("MQTT connected callback"); iot.log("IoT current example!"); } void setup() { // setting up serial connection parameter Serial.begin(115200); Serial.println("Booting"); //iot.setConfig("wname", WIFI_NAME); //iot.setConfig("wpass", WIFI_PASSWORD); // print json config to serial iot.printConfig(); // Initialize IoT library iot.setup(); // Current: input pin, calibration (how big current can it read). emon1.current(ADC_PIN, 30); adcSampleCount = 1500; // Start function setAdcFlag 0.5 second interval adcTicker.attach(0.5, setAdcFlag); } void loop() { // IoT behind the plan work, it should be periodically called iot.handle(); // If adcFlag is set, then send information to server if(adcFlag) { adcFlag = false; double val = emon1.calcIrms(adcSampleCount); String msg = String(val); // publishing measured current value to a MQTT broker iot.publishMsg("curr", msg.c_str()); // sending measured current value to a computer Serial.println(msg); } }