Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
et:iot:examples:current [2022/08/30 11:28] – tekitatud karllallet:iot:examples:current [2024/07/04 16:17] (current) rojarl
Line 1: Line 1:
 +====== (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:
 +<code>lib_deps = ITTIoT, EmonLib</code>
 +
 +Näidiskood demonstreerib vahelduvvoolu väärtuse kuvamist vaheldusvoolu teemasse "curr". Kui mõõtmistulemused puuduvad, kuvatakse väärtuseks NaN.
 +
 +<code c>
 +#include <Arduino.h>
 +#include <ittiot.h>
 +#include "EmonLib.h"
 +#include <Ticker.h>
 +
 +#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);
 +  }
 +}
 +
 +</code>
  
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0