![PicoIP и LM35: Измерване на температура и управление на реле с Python скрипт](http://ardudevelop.eu/wp-content/uploads/2024/08/PicoIP-и-LM35-Измерване-на-температура-и-управление-на-реле-с-Python-скрипт-scaled.jpg)
Температурният сензор 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 секунда преди следващото измерване
Как работи скриптът?
- Четене на данни от LM35: Сензорът LM35 е свързан към аналогов вход на PicoIP устройството. Скриптът използва функцията analogRead, за да чете напрежението, генерирано от LM35, което е пропорционално на измерената температура. За да разберете кои са аналоговите входове на тази платформа разгледайте нашите ревюта за нея: PicoIP v1.2 и PicoIP v2.
- Преобразуване на аналоговата стойност в температура: Прочетеното напрежение се преобразува в температура по формулата:
Температура = (( аналогова стойност * 3.3 ) / 1023 ) * 100
Тази формула преобразува напрежението във волтове и след това го конвертира в градуси Целзий. - Управление на реле: Ако температурата превиши предварително зададения праг (28.5°C в примера), скриптът включва релето. Ако температурата падне под този праг, релето се изключва.
- Отпечатване на резултата: Скриптът отпечатва измерената температура и състоянието на релето на конзолата.
Видео от на скрипта от Visual Studio CODE
Заключение
Този Python скрипт осигурява лесен и ефективен начин за наблюдение на температурата с помощта на сензора LM35 и за управление на реле чрез PicoIP устройството. Скриптът може да бъде разширен с допълнителни функции като логване на данни или изпращане на известия при достигане на определени температури.
Това решение е подходящо за различни приложения, като домашна автоматизация, мониторинг на околната среда и други проекти, които изискват надеждно измерване и управление на температурата.