PicoIP и LM35: Измерване на температура и управление на реле с Python скрипт

PicoIP и LM35: Измерване на температура и управление на реле с Python скрипт

Температурният сензор LM35 е популярен избор за проекти, които изискват прецизно измерване на температура. В комбинация с PicoIP и Python, можем лесно да четем температурата и да управляваме релета в зависимост от измерените стойности. В тази статия ще разгледаме как да използваме Python скрипт за измерване на температурата с LM35 и PicoIP.

Необходими компоненти

  • LM35: Аналогов температурен сензор, който връща напрежение пропорционално на измерената температура.
  • PicoIP: Устройство за дистанционно управление и мониторинг, което позволява четене на аналогови сигнали и управление на цифрови изходи. В този случай ще използваме направената от нас платформа PicoIP релеен борд със седем ADC/АЦП входа.
  • Python среда за програмиране: Можем да използваме Thonny или Visual Studio Code.
  • Python библиотека за управление на PicoIP: Ще използваме написаната от нас библиотека за комуникация с тази платформа: PicoIP Python библиотека за управление на пинове

Python скрипт за измерване на температура и управление на реле

Ето основния Python скрипт, който можете да използвате за измерване на температурата с LM35 и PicoIP. Скриптът също така управлява реле на база на измерената температура.

#!/usr/bin/python3

import PicoIP_SNMP_Python_v2
from time import sleep

ip = "192.168.100.9"  # IP адрес на PicoIP устройството
tempCompare = 28.5    # Температурен праг за управление на релето

while True:
    # Четене на аналоговата стойност от сензора LM35
    LMtemp = PicoIP_SNMP_Python_v2.analogRead(ip, 3)
    LMtemp = float(LMtemp)  # Конвертиране на стойността към float
    # Преобразуване на аналоговата стойност в температура
    LMtemp = ((LMtemp * 3.3) / 1023) * 100
    LMtemp = round(LMtemp, 2)  # Обрязване на стойността до втория знак след десетичната запетая

    # Управление на релето на базата на температурата
    if LMtemp > tempCompare:
        PicoIP_SNMP_Python_v2.digitalWrite(ip, 1, 8, 1)
        print("relay ON")
    else:
        PicoIP_SNMP_Python_v2.digitalWrite(ip, 1, 8, 0)
        print("relay OFF")

    # Отпечатване на измерената температура
    print(LMtemp)
    sleep(1)  # Изчакване 1 секунда преди следващото измерване

Как работи скриптът?

  1. Четене на данни от LM35: Сензорът LM35 е свързан към аналогов вход на PicoIP устройството. Скриптът използва функцията analogRead, за да чете напрежението, генерирано от LM35, което е пропорционално на измерената температура. За да разберете кои са аналоговите входове на тази платформа разгледайте нашите ревюта за нея: PicoIP v1.2 и PicoIP v2.
  2. Преобразуване на аналоговата стойност в температура: Прочетеното напрежение се преобразува в температура по формулата:
    Температура = (( аналогова стойност * 3.3 ) / 1023 ) * 100
    Тази формула преобразува напрежението във волтове и след това го конвертира в градуси Целзий.
  3. Управление на реле: Ако температурата превиши предварително зададения праг (28.5°C в примера), скриптът включва релето. Ако температурата падне под този праг, релето се изключва.
  4. Отпечатване на резултата: Скриптът отпечатва измерената температура и състоянието на релето на конзолата.

Видео от на скрипта от Visual Studio CODE

Заключение

Този Python скрипт осигурява лесен и ефективен начин за наблюдение на температурата с помощта на сензора LM35 и за управление на реле чрез PicoIP устройството. Скриптът може да бъде разширен с допълнителни функции като логване на данни или изпращане на известия при достигане на определени температури.

Това решение е подходящо за различни приложения, като домашна автоматизация, мониторинг на околната среда и други проекти, които изискват надеждно измерване и управление на температурата.