8.8 KiB
Измерение влажности почвы - Виртуальное IoT-устройство
В этой части урока вы добавите емкостной датчик влажности почвы к вашему виртуальному IoT-устройству и будете считывать с него данные.
Виртуальное оборудование
Виртуальное IoT-устройство будет использовать симулированный емкостной датчик влажности почвы Grove. Это позволяет сохранить лабораторную работу идентичной работе с Raspberry Pi и физическим емкостным датчиком влажности почвы Grove.
В физическом IoT-устройстве датчик влажности почвы представляет собой емкостной датчик, который измеряет влажность почвы, определяя ее емкость — свойство, которое изменяется в зависимости от уровня влажности. По мере увеличения влажности почвы напряжение уменьшается.
Это аналоговый датчик, поэтому он использует симулированный 10-битный АЦП для передачи значений в диапазоне от 1 до 1 023.
Добавление датчика влажности почвы в CounterFit
Чтобы использовать виртуальный датчик влажности почвы, его необходимо добавить в приложение CounterFit.
Задача - Добавить датчик влажности почвы в CounterFit
Добавьте датчик влажности почвы в приложение CounterFit.
-
Создайте новое приложение на Python на вашем компьютере в папке
soil-moisture-sensor
с единственным файломapp.py
и виртуальной средой Python, а также добавьте пакеты pip для CounterFit.⚠️ Вы можете обратиться к инструкциям по созданию и настройке Python-проекта CounterFit в уроке 1, если это необходимо.
-
Убедитесь, что веб-приложение CounterFit запущено.
-
Создайте датчик влажности почвы:
-
В поле Create sensor на панели Sensors выберите тип датчика в выпадающем меню Sensor type и выберите Soil Moisture.
-
Оставьте Units установленным на NoUnits.
-
Убедитесь, что Pin установлен на 0.
-
Нажмите кнопку Add, чтобы создать датчик Soil Moisture на выводе 0.
Датчик влажности почвы будет создан и появится в списке датчиков.
-
Программирование приложения для датчика влажности почвы
Теперь можно запрограммировать приложение для работы с датчиком влажности почвы, используя датчики CounterFit.
Задача - Программирование приложения для датчика влажности почвы
Запрограммируйте приложение для работы с датчиком влажности почвы.
-
Убедитесь, что приложение
soil-moisture-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_grove.adc import ADC
Оператор
import time
импортирует модульtime
, который будет использоваться позже в этом задании.Оператор
from counterfit_shims_grove.adc import ADC
импортирует классADC
для взаимодействия с виртуальным аналогово-цифровым преобразователем, который может подключаться к датчику CounterFit. -
Добавьте следующий код ниже для создания экземпляра класса
ADC
:adc = ADC()
-
Добавьте бесконечный цикл, который считывает данные с этого АЦП на выводе 0 и выводит результат в консоль. Этот цикл может делать паузу на 10 секунд между считываниями.
while True: soil_moisture = adc.read(0) print("Soil moisture:", soil_moisture) time.sleep(10)
-
В приложении CounterFit измените значение датчика влажности почвы, которое будет считываться приложением. Это можно сделать двумя способами:
-
Введите число в поле Value для датчика влажности почвы, затем нажмите кнопку Set. Введенное число будет возвращаемым значением датчика.
-
Установите флажок Random и введите значения Min и Max, затем нажмите кнопку Set. Каждый раз, когда датчик считывает значение, оно будет случайным числом в диапазоне от Min до Max.
-
-
Запустите приложение на Python. Вы увидите, как измерения влажности почвы выводятся в консоль. Измените Value или настройки Random, чтобы увидеть изменение значений.
(.venv) ➜ soil-moisture-sensor $ python app.py Soil moisture: 615 Soil moisture: 612 Soil moisture: 498 Soil moisture: 493 Soil moisture: 490 Soil Moisture: 388
💁 Вы можете найти этот код в папке code/virtual-device.
😀 Ваше приложение для датчика влажности почвы успешно заработало!
Отказ от ответственности:
Этот документ был переведен с помощью сервиса автоматического перевода Co-op Translator. Хотя мы стремимся к точности, пожалуйста, учитывайте, что автоматические переводы могут содержать ошибки или неточности. Оригинальный документ на его родном языке следует считать авторитетным источником. Для получения критически важной информации рекомендуется профессиональный перевод человеком. Мы не несем ответственности за любые недоразумения или неправильные интерпретации, возникшие в результате использования данного перевода.