Дефицит времени, связанный с завершением дачного сезона, не позволяет пока подробно описать все изменения. Да и новая версия ещё не совсем доделана - отсутствует автозапуск.C-Bell, 26 Сент. 20, 02:43
Доброго дня! Как продвигаются дела с новой версией? Есть ли какие-нибудь вести с полей?
C-Bell
Научный сотрудник
Улан-Удэ
1.8K 1.3K
Отв.241 30 Апр. 21, 10:55
Цифровой вольтметр - аппаратная часть
Переход на установку мощности нагрева не в процентах от максимальной мощности а в абсолютных величинах требует два параметра: 1. Напряжение сети. 2. Ток, потребляемый нагревателем (либо сопротивление этого нагревателя). Соответственно, мощность можно вычислить как произведение напряжения сети на потребляемый ток P=U*I (1) Либо как отношение квадрата напряжения сети к сопротивлению нагревателя P=U*U/R (2) Чтобы не использовать довольно дорогой PZEM или не ставить два измерителя и напряжения и тока, отдано предпочтение добавлению в конфигурацию параметра сопротивления нагревателя и одному измерителю сетевого напряжения. При использовании только измерителя напряжения сети мощность можно рассчитывать по формуле 2.
Так как у Raspberry Pi нет встроенных аналого-цифровых преобразователей, то нужен соответствующий отдельный модуль. Под рукой был 8-битный модуль PCF8591 с управлением по I2C, его и применил. Как оказалось, разрядности вполне хватает для точной регулировки мощности. PCF8591. Smart Distiller (Умный дистиллятор с управлением по интернет). Автоматика. Осталось только преобразовать высокое переменное напряжение сети в соответствующее ему низкое постоянное напряжение с гальванической развязкой. На Алиэкспрессе есть такой модуль для Arduino, но у него на выходе сдвинутая синусоида, повторяющая форму напряжения сети. И как этот модуль использовать с Raspberry Pi я не нашёл. Zmpt101b. Smart Distiller (Умный дистиллятор с управлением по интернет). Автоматика. Проще оказалось собрать свой модуль на основе такого-же инструментального трансформатора.
Ниже показана схема цифрового вольтметра и его подключение к Raspberry Pi AC-sensor_МП. Smart Distiller (Умный дистиллятор с управлением по интернет). Автоматика.
Перед сборкой необходимо с помощью двух вольтметров настроить подстроечным резистором преобразователь высокого переменного напряжения в низкое постоянное. При входном напряжении 220V постоянное напряжение на выходе должно быть 2,2V.
ВНИМАНИЕ! НА СХЕМЕ ПРИСУТСТВУЕТ ВЫСОКОЕ НАПРЯЖЕНИЕ, ОПАСНОЕ ДЛЯ ЖИЗНИ!
C-Bell
Научный сотрудник
Улан-Удэ
1.8K 1.3K
Отв.242 30 Апр. 21, 13:08
Цифровой вольтметр - программная часть
Так как аналого-цифровой преобразователь управляется по I2C предварительно нужно эту шину разрешить в конфигурации Raspberry Pi (через главное меню - параметры).
Измерение производится классом-потоком с интервалом 0,5 сек. Получить измеренное напряжение можно запросив у этого класса параметр value
importthreading importtime
#подгружаем модуль #для работы с шиной I2C в Python "python-smbus" fromsmbusimport SMBus
DEV_ADDR =0x48# адрес модуля PCF8591 на шине I2C
classVoltmeter(threading.Thread): """Класс обеспечивает измерение напряжения сети 220V с помощью АЦП модуля PCF8591""" def__init__(self): super(Voltmeter, self).__init__() self._V=self.GetVoltage() self._Run=False
defMeasureVoltage(self): SMBus(1).write_byte(DEV_ADDR, 0b1000010) # select ADC1 SMBus(1).read_byte(DEV_ADDR) # read last value SMBus(1).read_byte(DEV_ADDR) # repeat reading last value returnround(SMBus(1).read_byte(DEV_ADDR))
-------------------------------------- Colored with http://dumpz.org