Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
en:iot:examples:current [2017/12/18 13:05] – New picture tomykalmen:iot:examples:current [Unknown date] (current) – external edit (Unknown date) 127.0.0.1
Line 1: Line 1:
 +====== Current example======
 +
 +The current sensor device has to be connected to the sensor module. Current sensor device has a 3,5 mm plug what has to be connected to the sensor module left jacket A. The controller and sensor modules must be connected.
 +The current sensor has to be 30A
 +
 +{{:en:iot:examples:currentpicture1.jpg?200|}}
 +
 +Needed libraries:
 +<code>lib_deps = ITTIoT, EmonLib</code>
 +
 +The example code above shows the alternating current value to current topic "curr". If nothing is measured the current value is 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