цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Интеллектуальный счетчик электроэнергии на Raspberry Pi своими руками


Интеллектуальный счетчик электроэнергии на Raspberry Pi своими руками

Автор: Mike(admin) от 20-04-2020, 04:55

Мониторинг энергии на Raspberry Pi


Интеллектуальные счетчики энергии, охватывающие всю квартиру или развернутые для мониторинга только одного прибора, предоставляют вам возможность отслеживать потребление и вносить необходимые корректировки. В то время как они все больше становятся доступными на рынке, все равно будет отличной идеей создать свою версию, которая может быть адаптирована к конкретным личным требованиям. Таким образом, для сегодняшнего проекта мы создадим счетчик на Raspberry Pi для мониторинга энергопотребления, способный получать данные о энергопотреблении и загружать их в облачный сервис Adafruit.io.


Интеллектуальный счетчик электроэнергии на Raspberry Pi своими руками

Блок-схема, показывающая, как работает система, показана далее.


Интеллектуальный счетчик электроэнергии на Raspberry Pi своими руками

Датчик тока: Датчик тока состоит из датчика тока SCT-013, который может измерять до 100 А, в зависимости от версии, которую вы покупаете. Датчик преобразует ток, проходящий через провод, вокруг которого он зажат, в небольшой ток, который затем подается на АЦП через сеть делителей напряжения.


Датчик напряжения: мы создадим датчик напряжения, который измеряет напряжение по принципу делителей напряжения. Датчик напряжения включает каскад делителя напряжения, где высокое напряжение преобразуется в значение, подходящее для ввода в АЦП.


Блок обработки: блок обработки включает в себя АЦП и Raspberry Pi. АЦП принимает аналоговый сигнал и отправляет его на Raspberry Pi, который затем рассчитывает точное количество потребляемой мощности и отправляет его в назначенное облако. Для целей данного руководства мы будем использовать Adafruit.io в качестве нашего облака.


Прежде чем мы начнем, важно упомянуть, что этот проект предусматривает подключение к сети переменного тока, которая опасна, и работа с ней может быть фатальной, если не соблюдать меры безопасности. Убедитесь, что вы имеете необходимые навыки для работы с сетью переменного тока, прежде чем приступать к работе.


Прежде чем мы начнем подключать компоненты и писать программу, мы должны выполнить несколько простых задач на Raspberry Pi, чтобы убедиться, что мы готовы к работе. Первым шагом будет активация I2C.


В основе сегодняшнего проекта лежит не только Raspberry Pi, но и ADS1115 16-битный АЦП на базе I2C. АЦП позволяет нам подключать аналоговые датчики к Raspberry Pi, поскольку сам Pi не имеет встроенного АЦП. Он принимает данные через собственный АЦП и передает их в Raspberry Pi через I2C. Таким образом, нам нужно включить связь I2C на Pi, чтобы он мог общаться с ним. Шину Pi I2C можно включить или отключить на странице конфигурации raspberry pi. Чтобы запустить это, нажмите пиктограмму Pi на рабочем столе и выберите настройки (preferences), а затем настройку Raspberry pi (Raspberry pi configuration).


Интеллектуальный счетчик электроэнергии на Raspberry Pi своими руками

Это должно открыть страницу конфигурации. Проверьте активную кнопку-переключатель для I2C и нажмите OK, чтобы сохранить все и перезагрузить Pi, чтобы изменения вступили в силу.


Интеллектуальный счетчик электроэнергии на Raspberry Pi своими руками

Вторым шагом будет установка Pytho-библиотеки ADS11xx от Adafruit. Эта библиотека содержит функции и подпрограммы, облегчающие нам написание скрипта Python для получения значений из АЦП. Для начала обновите свой Pi, запустив sudo apt-get update с последующим обновлением sudo apt-get. Затем выполните команду cd ~, чтобы убедиться, что вы находитесь в домашнем каталоге. Затем установите сборку, запустив sudo apt-get установить build-essential python-dev python-smbus git. Затем выполните клонирование папки git Adafruit, содержащей библиотеку ADS git clone https://github.com/adafruit/Adafruit_Python_ADS1x15.git. Перейдите в каталог клонированного файла и запустите установочный файл с помощью cd Adafruit_Python_ADS1x1z с последующей установкой sudo python setup.py. После этого установка должна быть завершена. Вы можете протестировать установку библиотеки, подключив ADS1115, как показано на схеме ниже, и запустив пример кода, который поставляется вместе с библиотекой, сначала перейдя в ее папку с помощью cd examples и запустив пример с использованием python simpletest.py.


На третьем шаге установим модуль Adafruit.IO Python. Как уже упоминалось во вводной части, мы будем публиковать показания датчиков напряжения и тока в облаке Adafruit IO Cloud, из которого его можно просматривать со всего мира или связывать с IFTTT для выполнения любых действий, которые вы пожелаете. Модуль Python Adafruit.IO содержит подпрограммы и функции, которые мы будем использовать для простой передачи данных в облако. Сначала введите cd ~, чтобы вернуться в домашний каталог. Далее запустите команду sudo pip3 install adafruit-io. Это установит модуль Adafruit IO Python.


На четвертом шаге нужно настроить свою учетную запись Adafruit.io. Чтобы использовать Adafruit IO, необходимо сначала создать учетную запись и получить ключ AIO. Этот ключ AIO вместе с вашим именем пользователя будет использоваться вашим скриптом Python для доступа к облачной службе Adafruit IO. Чтобы создать учетную запись, посетите https://io.adafruit.com/, нажмите кнопку «Get started for free» и заполните все необходимые параметры. Когда регистрация будет завершена, вы должны увидеть кнопку View AIO Key справа от вашей домашней страницы.


Интеллектуальный счетчик электроэнергии на Raspberry Pi своими руками

Нажмите на нее, чтобы получить ключ AIO.


Интеллектуальный счетчик электроэнергии на Raspberry Pi своими руками

Со скопированным ключом мы готовы к работе. Однако, чтобы упростить процесс отправки данных в облачную службу, вы также можете создать каналы, на которые будут отправляться данные. Поскольку мы в основном будем посылать данные о энергопотреблении, мы создадим канал для электропитания. Чтобы создать канал, нажмите «feeds» в верхней части страницы AIO и нажмите «add new feed». Дайте ему любое имя, какое хотите, например, energy consumption. Вы также можете решить создать каналы для напряжения и тока и адаптировать код для публикации данных для них. Теперь мы готовы приступить к созданию проекта.


Схемы для проекта счетчика энергии на Raspberry Pi относительно сложны и предполагают подключение к переменному напряжению, как упомянуто ранее, пожалуйста, убедитесь, что вы приняли все меры предосторожности, необходимые во избежание поражения электрическим током. Схемы предусматривают подключение блока датчиков напряжения и тока к АЦП, который затем отправляет данные с датчиков на Raspberry Pi. Чтобы облегчить подключение, схемы для каждого блока представлены отдельно.


Подключите компоненты для датчика тока, как показано на следующей схеме.


Интеллектуальный счетчик электроэнергии на Raspberry Pi своими руками

Трансформатор тока, используемый в этом проекте, показан далее, как вы можете видеть, у нас есть три провода от него, а именно: земля, Cout и 3,3 В.


Интеллектуальный счетчик электроэнергии на Raspberry Pi своими руками

Подключите компоненты для датчика напряжения, как показано на следующей схеме.


Интеллектуальный счетчик электроэнергии на Raspberry Pi своими руками

Перейдем к блоку обработки. Соедините вместе с АЦП (ADS1115) к Raspberry Pi, и выходам датчиков тока и напряжения, подключенных к контактам A0 и A1 ADS1115 соответственно.


Интеллектуальный счетчик электроэнергии на Raspberry Pi своими руками

Убедитесь, что выводы GND обоих датчиков подключены к GND АЦП или Raspberry Pi. В целом все может выглядеть следующим образом.


Интеллектуальный счетчик электроэнергии на Raspberry Pi своими руками

Как обычно с проектами Raspberry Pi, мы разработаем код для проекта счетчика энергии, используя язык программирования Python. Нажмите на иконку Raspberry Pi на рабочем столе, выберите programming и запустите любую версию python, которую вы хотите использовать. Мы будем использовать Python 3, и некоторые функции в Python 3 могут не работать для Python 2.7. Поэтому может потребоваться внести существенные изменения в код, если вы хотите использовать Python 2.7. Полный код для счетчика энергии на Raspberry Pi выглядит следующим образом.



import time
import Adafruit_ADS1x15
from Adafruit_IO import *
import math
adc1 = Adafruit_ADS1x15.ADS1115()
username = ‘your-user-name'
AIO_KEY = 'your-aio-key’ 
aio = Client(username, AIO_KEY)
GAIN = 1         
samples = 5      
places = int(2)    
while True:
    count = int(0)
    datai = []
    datav = []
    maxIValue = 0
    maxVValue = 0
    IrmsA0 = 0
    VrmsA1 = 0
    ampsA0 = 0
    voltsA1 =0
    kilowatts = float(0)
    for count in range(5):        
        datai.insert(count, (abs(adc1.read_adc(0, gain=GAIN))))
        datav.insert(count, (abs(adc1.read_adc(1, gain=GAIN))))
        print (datai[count])
        if datai[count] > maxIValue:
            maxIValue = datai[count]           
        if datav[count] > maxVValue:
            maxVValue = datav[count]
            print("new maxv value:")
            print(maxVValue)
    print("proceeding")
    IrmsA0 = float(maxIValue / float(2047) * 30)
    IrmsA0 = round(IrmsA0, places)
    ampsA0 = IrmsA0 / math.sqrt(2)
    ampsA0 = round(ampsA0, places)
    VrmsA1 = float(maxVValue * 1100/ float(2047))
    VrmsA1 = round(VrmsA1, places)
    voltsA1 = VrmsA1 / math.sqrt(2)
    voltsA1 = round(voltsA1, places)
    print('Voltage: {0}'.format(voltsA1))
    print('Current: {0}'.format(ampsA0))
    power = round(ampsA0 * voltsA1,places)
    print('Power: {0}'.format(power))
    energyconsumption = aio.feeds('energyconsumption')
    aio.send_data('energyconsumption', power)
    time.sleep(30)

Завершив написание кода, сохраните его и нажмите кнопку запуска в Python IDE. Перед этим убедитесь, что Pi подключен к Интернету через Wi-Fi или локальную сеть, а ваш ключ aio и имя пользователя указаны правильно. Через некоторое время вы должны начать видеть энергетические данные (мощность), отображаемые в ленте Adafruit.io.


Интеллектуальный счетчик электроэнергии на Raspberry Pi своими руками

Вы можете создать панель управления на adafruit.io и добавить компонент графика, чтобы вы могли получать графическое представление данных, как показано на следующем изображении.


Интеллектуальный счетчик электроэнергии на Raspberry Pi своими руками



© digitrode.ru


Теги: Raspberry Pi




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий