Измерение напряжения, тока от солнечной панели с использованием INA219 и ESP-12F
Недавно я начал возиться с ESP-12F, поэтому я новичок здесь. Как стандартный проект новичка, я делаю автономную метеостанцию для своей гостиной. Я хочу использовать солнечные панели для зарядки батарей, которые питают ESP-12F через USB. Я использую ESP-12F в качестве контроллера и отправляю данные в Rpi с помощью MQTT.
Я использую следующие элементы:
- ESP-12 F питание от USB
- 2,5 Вт 5 В солнечная панель (я хочу подключить две параллельно, но пока использую только одну)
- RPi 3B
- INA219A для измерения напряжения и тока, генерируемых солнечной панелью.
- Диод IN4001 как блокирующий
- Датчик температуры и влажности DHT11
- Аккумуляторная батарея для зарядки 2 батареек x 2500mAh (это еще не сделано)
Я совершенно сбит с толку соединениями с INA219 и данными, которые он предоставляет. Таким образом, ESP-12F все еще подключен к независимому источнику питания usb, и моя цель сейчас - понять и контролировать напряжение и ток, генерируемые солнечной панелью.
INA219 Vcc, GND, SDA, SCL подключены к ESP-12F. Я могу считывать значения и наблюдать их на последовательном мониторе или панели mqtt.
1. Ниже приведено соединение макетной платы, когда INA219 Vin + НЕ подключен.
Измерение напряжения, отправленное через MQTT, выглядит следующим образом:
Игнорируйте график, я слишком много раз подключал / отключал Vin-провод, таким образом, очень причудливые линии.
Текущие соединения следующие:
Солнечная панель (-) --> INA219 Vin (-) и макет для питания светодиода
Солнечная панель (+) --> Только для макетной платы для питания светодиода [INA219 Vin + НЕ подключен]
ESP-12F 3V --> INA219 Vcc
ESP-12F GND --> INA219 GND
ESP-12F D1 --> INA219 SCL
ESP-12F D2 --> INA219 SDA
ESP-12F питается от отдельного источника питания USB
Код, с помощью которого вычисляются значения: Я использовал библиотеку Adafruit_INA219.
shuntvoltage = ina219.getShuntVoltage_mV();
busvoltage = ina219.getBusVoltage_V();
current_mA = ina219.getCurrent_mA();
power_mW = ina219.getPower_mW();
loadvoltage = busvoltage + (shuntvoltage / 1000);
Я не понимаю значений, отправленных INA219, и понятия не имею, как их интерпретировать. В этот момент INA219 подключается к ESP-12F 3V power (Vcc) и GND. У него нет никакого Vin. Почему существует напряжение нагрузки -1,9 и ток?
2. Когда INA219 подключены Vin (+) и Vin (-)
Когда я подключаю Vin + и Vin- INA219, у меня нет никакого напряжения / тока на макете. Вы можете видеть светодиод, если он выключен. Я не понимаю, почему это происходит. Вся схема на макете становится избыточной, как только я подключаю контакты INA219 Vin к выходным контактам солнечной панели.
Текущие соединения следующие:
Солнечная панель (-) --> INA219 Vin (-) и макет для питания светодиода
Солнечная панель (+) --> INA219 Vin (+) и макет для питания светодиода
ESP-12F 3V --> INA219 Vcc
ESP-12F GND --> INA219 GND
ESP-12F D1 --> INA219 SCL
ESP-12F D2 --> INA219 SDA
ESP-12F питается от отдельного источника питания USB
Значения напряжения и тока в этой точке показаны ниже:
Напряжение нагрузки увеличивается, и разница составляет приблизительно 2,1 В. Это дельта-напряжение соответствует значениям напряжения от солнечной панели при измерении мультиметром в этой точке. Таким образом, я бы предположил, что напряжение нагрузки = текущее напряжение, генерируемое солнечной панелью. Но ток не меняется, и светодиод на макете выключается в тот момент, когда я подключаю INA219 Vin. Таким образом, я предполагаю, что сделал неправильные соединения.
Будет здорово, если вы укажете на мои ошибки и внесете свои предложения!
Спасибо!
@blackbug, 👍2
Обсуждение1 ответ
Лучший ответ:
Вы подключили V- и V + зонды модуля INA непосредственно к V- и V + солнечной панели. Это означает, что вы соединяете V + с V- от солнечной панели через резистор 0,1 Ом. Это как короткометражка. Солнечная панель перегружается, и напряжение падает. Повезло вам, солнечная панель не может обеспечить больший ток. Если бы это было возможно, то шунтирующий резистор был бы поджарен. РИП ;-). Попробуйте поставить v + и V-последовательно со светодиодом и LED_Resistor.
Solar+ --> IN4001 --> INA+ |no connection| INA- --> LED --> R(LED) --> Solar-
В этом было бы больше смысла. Он покажет вам, сколько тока потребляет светодиод.
Если вы хотите знать, сколько тока может выдавать панель, вам придется построить схему с потенциометром и измерить напряжение между V + и V- панелью. Вы также можете использовать INA для измерения тока через потенциометр. Начните с высокого сопротивления, затем поверните поти в сторону более низкого сопротивления и проверьте, когда напряжение спадет. INA показывает вам ток. Но имейте в виду, что максимальный ток зависит от количества света, которому подвергается панель, и от возраста самой панели. Таким образом, значения будут меняться по мере изменения этих условий.
- Как заставить 5-вольтовое реле работать с NodeMCU
- ESP8266 не подключается к Wi-Fi
- Разница между этими двумя платами NodeMCU?
- NodeMCU - использовать кнопку flash в качестве входного сигнала в loop()
- Как определить размер Flash?
- Как изменить имя модуля ESP8266-12E по умолчанию
- Простой запрос GET с ESP8266HTTPClient
- В ESP-12E NodeMCU, какой выход PIN A0?
У вас был длинный пост, но все же не хватало много важной информации для диагностики. Будет лучше предоставить схему, чем изображение макета, так как на нем даже нет IN219. Где находится ваш текущий шунт? а у вас есть подтягивающие резисторы для I2C? работает ли ваш I2C? просто напишите свой пост и сосредоточьтесь на одном вопросе, который вы хотите задать, или на том, что вам нужна помощь., @hcheung
Vshunt = Vin+ - Vin- и обычно < 50 мВ или всего несколько мВ, Vbus = Vin - GND и поэтому в вашем случае должно быть около 5 В, напряжение нагрузки должно быть очень близко к VBus. Так что все ваши данные не имеют никакого смысла. Для тока возвращаемое значение является целочисленным для мА, поэтому его нужно разделить на 1000. Поэтому лучше показать свою схему / схему подключения и скетч Arduino., @hcheung