12 KiB
Измерване на температура - Виртуален IoT хардуер
В тази част от урока ще добавите температурен сензор към вашето виртуално IoT устройство.
Виртуален хардуер
Виртуалното IoT устройство ще използва симулиран Grove Digital Humidity and Temperature сензор. Това прави този лабораторен урок идентичен с използването на Raspberry Pi с физически Grove DHT11 сензор.
Сензорът комбинира температурен сензор с влажностен сензор, но в този урок ще се фокусирате само върху температурния компонент. Във физическо IoT устройство температурният сензор би бил термистор, който измерва температурата чрез промяна в съпротивлението при промяна на температурата. Температурните сензори обикновено са цифрови и вътрешно преобразуват измереното съпротивление в температура в градуси по Целзий (или Келвин, или Фаренхайт).
Добавяне на сензорите към CounterFit
За да използвате виртуален сензор за влажност и температура, трябва да добавите двата сензора към приложението CounterFit.
Задача - добавяне на сензорите към CounterFit
Добавете сензорите за влажност и температура към приложението CounterFit.
-
Създайте ново Python приложение на вашия компютър в папка, наречена
temperature-sensor
, с един файл, нареченapp.py
, и Python виртуална среда, и добавете pip пакетите за CounterFit.⚠️ Можете да се обърнете към инструкциите за създаване и настройка на CounterFit Python проект в урок 1, ако е необходимо.
-
Инсталирайте допълнителен Pip пакет, за да добавите CounterFit shim за DHT11 сензора. Уверете се, че го инсталирате от терминал с активирана виртуална среда.
pip install counterfit-shims-seeed-python-dht
-
Уверете се, че уеб приложението CounterFit работи.
-
Създайте сензор за влажност:
-
В полето Create sensor в панела Sensors, отворете падащото меню Sensor type и изберете Humidity.
-
Оставете Units зададени на Percentage.
-
Уверете се, че Pin е зададен на 5.
-
Натиснете бутона Add, за да създадете сензора за влажност на Pin 5.
Сензорът за влажност ще бъде създаден и ще се появи в списъка със сензори.
-
-
Създайте температурен сензор:
-
В полето Create sensor в панела Sensors, отворете падащото меню Sensor type и изберете Temperature.
-
Оставете Units зададени на Celsius.
-
Уверете се, че Pin е зададен на 6.
-
Натиснете бутона Add, за да създадете температурния сензор на Pin 6.
Температурният сензор ще бъде създаден и ще се появи в списъка със сензори.
-
Програмиране на приложението за температурния сензор
Сега приложението за температурния сензор може да бъде програмирано с помощта на сензорите в CounterFit.
Задача - програмиране на приложението за температурния сензор
Програмирайте приложението за температурния сензор.
-
Уверете се, че приложението
temperature-sensor
е отворено в VS Code. -
Отворете файла
app.py
. -
Добавете следния код в началото на
app.py
, за да свържете приложението с CounterFit:from counterfit_connection import CounterFitConnection CounterFitConnection.init('127.0.0.1', 5000)
-
Добавете следния код във файла
app.py
, за да импортирате необходимите библиотеки:import time from counterfit_shims_seeed_python_dht import DHT
Изразът
from seeed_dht import DHT
импортира класаDHT
, който позволява взаимодействие с виртуален Grove температурен сензор чрез shim от модулаcounterfit_shims_seeed_python_dht
. -
Добавете следния код след горния, за да създадете инстанция на класа, който управлява виртуалния сензор за влажност и температура:
sensor = DHT("11", 5)
Това декларира инстанция на класа
DHT
, който управлява виртуалния Digital Humidity и Temperature сензор. Първият параметър указва, че използваният сензор е виртуален DHT11 сензор. Вторият параметър указва, че сензорът е свързан към порт5
.💁 CounterFit симулира този комбиниран сензор за влажност и температура, като се свързва с два сензора: сензор за влажност на зададения пин при създаването на класа
DHT
и температурен сензор, който работи на следващия пин. Ако сензорът за влажност е на пин 5, shim очаква температурният сензор да е на пин 6. -
Добавете безкраен цикъл след горния код, за да извличате стойността на температурния сензор и да я отпечатвате в конзолата:
while True: _, temp = sensor.read() print(f'Temperature {temp}°C')
Извикването на
sensor.read()
връща кортеж със стойности за влажност и температура. Вие се нуждаете само от стойността за температура, така че стойността за влажност се игнорира. Стойността за температурата се отпечатва в конзолата. -
Добавете кратка пауза от десет секунди в края на цикъла, тъй като не е необходимо нивата на температурата да се проверяват непрекъснато. Пауза намалява консумацията на енергия на устройството.
time.sleep(10)
-
От терминала на VS Code с активирана виртуална среда изпълнете следното, за да стартирате вашето Python приложение:
python app.py
-
От приложението CounterFit променете стойността на температурния сензор, която ще бъде прочетена от приложението. Можете да направите това по два начина:
-
Въведете число в полето Value за температурния сензор и натиснете бутона Set. Числото, което въведете, ще бъде стойността, върната от сензора.
-
Поставете отметка в полето Random и въведете стойности за Min и Max, след което натиснете бутона Set. Всеки път, когато сензорът прочете стойност, тя ще бъде случайно число между Min и Max.
Трябва да видите стойностите, които задавате, да се появяват в конзолата. Променете Value или настройките за Random, за да видите промяната на стойността.
(.venv) ➜ temperature-sensor python app.py Temperature 28.25°C Temperature 30.71°C Temperature 25.17°C
-
💁 Можете да намерите този код в папката code-temperature/virtual-device.
😀 Вашата програма за температурния сензор беше успешна!
Отказ от отговорност:
Този документ е преведен с помощта на AI услуга за превод Co-op Translator. Въпреки че се стремим към точност, моля, имайте предвид, че автоматизираните преводи може да съдържат грешки или неточности. Оригиналният документ на неговия роден език трябва да се счита за авторитетен източник. За критична информация се препоръчва професионален човешки превод. Не носим отговорност за недоразумения или погрешни интерпретации, произтичащи от използването на този превод.