This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:iot:examples:current [2018/12/27 12:53] – external edit 127.0.0.1 | en: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 | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Needed libraries: | ||
| + | < | ||
| + | |||
| + | The example code above shows the alternating current value to current topic " | ||
| + | |||
| + | <code c> | ||
| + | #include < | ||
| + | #include < | ||
| + | #include " | ||
| + | #include < | ||
| + | |||
| + | #define WIFI_NAME " | ||
| + | #define WIFI_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(" | ||
| + | iot.log(" | ||
| + | } | ||
| + | |||
| + | void setup() | ||
| + | { | ||
| + | // setting up serial connection parameter | ||
| + | Serial.begin(115200); | ||
| + | Serial.println(" | ||
| + | |||
| + | // | ||
| + | // | ||
| + | | ||
| + | // 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, | ||
| + | adcSampleCount = 1500; | ||
| + | |||
| + | // Start function setAdcFlag 0.5 second interval | ||
| + | adcTicker.attach(0.5, | ||
| + | } | ||
| + | |||
| + | 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(" | ||
| + | // sending measured current value to a computer | ||
| + | Serial.println(msg); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | </ | ||