• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESP8266 и INA 226

CodeNameHawk

Moderator
Команда форума
Я и говорю что надо скачать через управление библиотеками в самой IDE, а не искать по левым ресурсам.
Мне не надо, я умею пользоваться поиском.
Что так, что так путь на githab.
Вы упускаете главное, подойдёт не та библиотека что лежит на видном месте, а та что применил автор, проект которого пытается тс собрать.
 

sergmetrolog

New member
Скомпилирол без ошибок, но не тут то было. При подключении аккума к ina 226 для измерения сильно греются провода, как будто КЗ. Всё проверил на несколько раз.... :unsure:. Да и на виджете blynk ничего...
 

ghost21

Member
При подключении аккума к ina 226 для измерения сильно греются провода, как будто КЗ.
Как подключали? Плюс аккумулятора на IN+, а минус на IN-? Если да, то поздравляю, у вас не "как будто КЗ", а реально КЗ через шунт сопротивлением 0,01 Ом
 

sergmetrolog

New member
Всё разобрался, инструкцию нужно было снача прочитать:ROFLMAO:. Спасибо большое.
 

Daiman

New member
Всё разобрался, инструкцию нужно было снача прочитать:ROFLMAO:. Спасибо большое.
а подскажите мне пожалуйста, какую библиотеку все же использовали? я этот же скетч скачал у того же автора, который его на ютубе использовал, и в коментах он специально людей стебёт, и не говорит, что за библиотека.
 

Daiman

New member
Всё разобрался, инструкцию нужно было снача прочитать:ROFLMAO:. Спасибо большое.
смотрите, я приложу этот же скетч и скрин с ошибками от него, в чём причина ошибки? подскажите пожалуйста, я в этом не понимаю.

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
// #define BLYNK_PRINT Serial
char auth[] = "9pRo9pRoHzGs9pRoHzGs7v6UlnOsP";
char ssid[] = "Home Wi-Fi 2.4";
char pass[] = "8888888888";
#include <SimpleTimer.h>
SimpleTimer timer;
#include <Wire.h>
#include <INA226.h>
INA226 ina;
double Voltage;
#define RELE D7
bool rele;
void setup() {
// Serial.begin(115200);
pinMode(RELE, OUTPUT);
Wire.begin(D1, D2); /* SCL=D1 и SDA=D2 */
Blynk.begin(auth, ssid, pass);
ina.begin(0x44);
ina.configure(INA226_AVERAGES_1, INA226_BUS_CONV_TIME_1100US, INA226_SHUNT_CONV_TIME_1100US, INA226_MODE_SHUNT_BUS_CONT);
// ina.calibrate(0.01, 4);
timer.setInterval(1000L, getSendData); }
void loop() {
timer.run();
Blynk.run(); }
void getSendData() {
Voltage = ina.readBusVoltage();
// Serial.print("Voltage: "); Serial.println(Voltage, 5);
Blynk.virtualWrite(10, Voltage); }
BLYNK_WRITE(V0) {
rele = param.asInt();
digitalWrite(RELE, rele); }
 

Вложения

sergmetrolog

New member
В продолжении темы, нашёл новый скетч, всё хорошо компилируется, и даже измеряет напряжение и ток, но только 1,5-2 минуты, потом esp отваливается от wifi. Питанием переключаешь и опять на пару минут только хватает.

Вот скетч:
#define BLYNK_PRINT Serial
#include <Wire.h>
#include <INA226_WE.h> //https://github.com/wollewald/INA226_WE
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp8266.h>

#define BLYNK_TEMPLATE_ID "************"
#define BLYNK_TEMPLATE_NAME "DC Energy Meter"
char auth[] = "************";
char ssid[] = "************";
char pass[] = "************";

#define I2C_ADDRESS 0x40
INA226_WE ina226 = INA226_WE(I2C_ADDRESS);

float shuntVoltage_mV = 0.0;
float Load_Voltage = 0.0;
float Source_Voltage = 0.0;
float Current = 0.0;
float Power = 0.0;
float kWh = 0;

unsigned long lastmillis = millis();


void setup()
{
Serial.begin(115200);
Blynk.begin(auth, ssid, pass); // Start Blynk
delay(1000); // wait for a second
while (!Serial); // wait until serial comes up on Arduino Leonardo or MKR WiFi 1010
Wire.begin();
ina226.init();

/* Set Number of measurements for shunt and bus voltage which shall be averaged
Mode * * Number of samples
AVERAGE_1 1 (default)
AVERAGE_4 4
AVERAGE_16 16
AVERAGE_64 64
AVERAGE_128 128
AVERAGE_256 256
AVERAGE_512 512
AVERAGE_1024 1024*/

//ina226.setAverage(AVERAGE_16); // choose mode and uncomment for change of default

/* Set conversion time in microseconds
One set of shunt and bus voltage conversion will take:
number of samples to be averaged x conversion time x 2

Mode * * conversion time
CONV_TIME_140 140 µs
CONV_TIME_204 204 µs
CONV_TIME_332 332 µs
CONV_TIME_588 588 µs
CONV_TIME_1100 1.1 ms (default)
CONV_TIME_2116 2.116 ms
CONV_TIME_4156 4.156 ms
CONV_TIME_8244 8.244 ms */

//ina226.setConversionTime(CONV_TIME_1100); //choose conversion time and uncomment for change of default

/* Set measure mode
POWER_DOWN - INA226 switched off
TRIGGERED - measurement on demand
CONTINUOUS - continuous measurements (default)*/

//ina226.setMeasureMode(CONTINUOUS); // choose mode and uncomment for change of default

/* Set Resistor and Current Range
if resistor is 5.0 mOhm, current range is up to 10.0 A
default is 100 mOhm and about 1.3 A*/

ina226.setResistorRange(0.1, 1.3); // choose resistor 0.1 Ohm and gain range up to 1.3A

/* If the current values delivered by the INA226 differ by a constant factor
from values obtained with calibrated equipment you can define a correction factor.
Correction factor = current delivered from calibrated equipment / current delivered by INA226*/

ina226.setCorrectionFactor(0.93);

Serial.println("INA226 Current Sensor Example Sketch - Continuous");

ina226.waitUntilConversionCompleted(); //if you comment this line the first data might be zero
}


void loop()
{
Blynk.run(); // Initiates Blynk

ina226.readAndClearFlags();
shuntVoltage_mV = ina226.getShuntVoltage_mV();
Source_Voltage = ina226.getBusVoltage_V();
Current = ina226.getCurrent_mA() / 1000;
Power = ina226.getBusPower() / 1000;
Load_Voltage = Source_Voltage + (shuntVoltage_mV / 1000);
kWh = kWh + Power * (millis() - lastmillis) / 3600000000.0;

//Serial.print("Shunt Voltage [mV]: ");
//Serial.println(shuntVoltage_mV);

Serial.print("Source Voltage: ");
Serial.print(Source_Voltage);
Serial.println("V");

Serial.print("Load Voltage:");
Serial.print(Load_Voltage);
Serial.println("V");

Serial.print("Current: ");
Serial.print(Current);
Serial.println("A");

Serial.print("Power: ");
Serial.print(Power);
Serial.println("W");

Serial.print("kWh: ");
Serial.print(kWh);
Serial.println("kWh");

if (!ina226.overflow)
{
Serial.println("Values OK - no overflow");
}
else
{
Serial.println("Overflow! Choose higher current range");
}
Serial.println();

//Send to Blynk
Blynk.virtualWrite(V0, Source_Voltage);
Blynk.virtualWrite(V1, Load_Voltage);
Blynk.virtualWrite(V2, Current);
Blynk.virtualWrite(V3, Power);
Blynk.virtualWrite(V4, kWh);

delay(3000);
}
 

Mumrik75

New member
ПРивет!
Делал кто шунт из скрепки для ina226?
Мне мало 0,7-0,8А максимальных по даташиту, хочу сделать пару шунтов из скрепки (с коммутацией 1/2 в паралель)..
Из видоса в ютубе видел у скрепки одной сопротивление 0,033Ом , у двух в паралель будет в 2 раза меньше и уменьшу влияние нагрева на изменение сопротивления.
Пришлось заказать пачку скрепок 50мм длиной, завтра с магаза заберу и буду шунты крутить :D
Шунт токовый Амперметра из Скрепки.jpg
 

Mumrik75

New member
Два скрепки в паралель = шунт 0,0165 Ом, позволит мерить ток до 4-Ампер (66мВ на шунте)..
Для контроля зарядки АКБ в авто двойного шунта по идее должно хватить,
ограничил ток зарядки до 3А на dc-dc модуле.
А ESP хочу снимать сделать Звуковую+световую индикацию пороговых значение U на АКБ и тока Зарядки Акб..
 

pvvx

Активный участник сообщества

pvvx

Активный участник сообщества
И для более сверх-точных показаний манганин желательно покрыть лаком или чем специальным, т.к. и он имеет уход от влажности и окисления.
 

Mumrik75

New member
Ещё вопрос:
кто как реализовывал защиту от превышения тока? :rolleyes:чтобы на токовом входе ina226 выше 65-70mV не упало..

Допустим щуп рассчитан на макс ток 4А. Предик на 3А перегорит не мгновенно и при токе в 5-10А...
Ставить второй INA с щупом на 20А и управлять релешкой токового входа на ina1 = перебор... :D (хотя по деньгам и приемлимо, но МЕСТО в корпусе под ina2+релешка + погрешность измерения тока ina1 из за того что релешка будет последовательно с шунтом)..

\\
Использовать саму релешку как шунт - мысль мелькнула, но там нагрев будет и точность измерения непонятна совершенно...
это точно не вариант..
 
Сверху Снизу