Термометр Интернета вещей с использованием Python
Компоненты и расходные материалы
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
![]() |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
![]() |
| × | 1 | |||
![]() |
| × | 1 |
Приложения и онлайн-сервисы
![]() |
|
Об этом проекте

Приложение Zerynth
Zerynth App - мобильное приложение для Android . и iOS что позволяет быстрое прототипирование графических интерфейсов для ваших проектов Интернета вещей .
С помощью приложения Zerynth вы можете превратить любой мобильный телефон в контроллер и дисплей для смарт-объектов и системы Интернета вещей ! В частности, вы можете управлять подключенными устройствами, запрограммированными с помощью Zerynth, обеспечивая двунаправленный канал связи между ними и вашим мобильным телефоном.
В этом руководстве мы увидим, как разработать простой, но мощный термометр Интернета вещей . , используя одноплатный микроконтроллер с питанием от Zerynth и приложение Zerynth в качестве удаленного дисплея.
Необходимые материалы
Прежде всего, вам понадобится доска. Вы можете выбрать одно из 32-битных микроконтроллеров, поддерживаемых Zerynth. Мы выбрали Flip &Click от Mikroelektronika, который имеет многие из тех же атрибутов, что и популярные платформы Arduino, включая 32-битный AT91SAM3X8E от Microchip, ядро Arduino Due.
Для измерения температуры мы выбрали Temp &Hum Click, который оснащен датчиком температуры и относительной влажности HTS221.
Для подключения платы к Интернету мы выбрали Wi-Fi PLUS Click, который поддерживает MRF24WB0MA - 2,4 ГГц, IEEE std. 802.11-совместимый модуль от Microchip , а также сопутствующий контроллер MCW1001 со встроенным стеком TCP / IP и диспетчером соединений 802.11.
И последнее, но не менее важное:вам необходимо:
- Zerynth Studio , наша мощная IDE для встроенного программирования на Python, которая обеспечивает Интернет вещей. Вы можете скачать его здесь.
- Приложение Zerynth . Вы можете скачать его здесь.
Сборка термометра Интернета вещей
Flip &Click - двусторонний кузен Arduino. С одной стороны, это Ардуино. Но с другой стороны, вы найдете четыре открытых разъема mikroBUS для того, что компания называет «досками управления». По сути, это дополнительные модули, которые напоминают щиты Arduino, но уменьшены в размерах, так что вы можете без проблем разместить несколько одновременно на Flip &Click. Просто добавьте щелчки Temp &Hum и Wifi Plus на плату соответственно в слот A и B.
Как запрограммировать термометр Интернета вещей с помощью Python
Клонировать пример
После того, как вы установили Zerynth Studio и создали пользователя Zerynth, вы можете клонировать пример « Осциллограф приложения Zerynth «. Посмотрите здесь, чтобы узнать, как клонировать пример.

Давайте посмотрим на исходный код в файле main.py ”:Здесь вы разрабатываете логику своего Python сценарий. Мы начнем с исходного кода, а затем отредактируем сценарий для разработки нашего конкретного проекта.
#################################################################### ################################### IoT Термометр ########### ########################################################################### ######################### из беспроводного импорта Wi-Fi # этот пример основан на Particle Photon # измените следующую строку, чтобы использовать другой драйвер Wi-Fi из broadcom.bcm43362 import bcm43362 как wifi_driverimport streamsimport adc # Импортировать библиотеку Zerynth APP из zerynthapp import zerynthapp streams.serial () sleep (1000) print ("STARTING ...") try:# UID устройства и ТОКЕН можно создать на панели ADM zapp =zerynthapp.ZerynthApp ("DEVICE UID "," DEVICE TOKEN ", log =True) # подключиться к сети Wi-Fi (укажите SSID и пароль ниже) wifi_driver.auto_init () для i в диапазоне (0,5):try:wifi.link (" SSID " , wifi.WIFI_WPA2, "PASSWORD") break, кроме Exception как e:print ("Can't link", e) else:print ("Impossible to link!") while True:sleep (1000) # Запустите экземпляр приложения Zerynth! # Не забудьте создать шаблон с файлами в папке "template", которую вы только что клонировали # загрузите его в ADM и свяжите с подключенным устройством zapp.run () # Прочтите ADC и отправьте значения в ADM, пока True:sleep ( 1000) x =(adc.read (A4) * 100) // 4096 zapp.event ({"data":x}) if x> 95:# отправить мобильное уведомление # (существует ограничение на одно уведомление в минуту за устройство в изолированной программной среде ADM) zapp.notify («ALARM!», «Значение больше 95!») кроме Exception as e:print (e)
В этом простом примере приложение Zerynth визуализирует графический осциллограф с данными, поступающими с подключенной платы. Данные поступают от аналогового датчика через «аналоговый» вывод A4.
Импортируйте нужный драйвер Wi-Fi и библиотеки датчиков
Как вы можете видеть в комментариях, этот пример основан на плате Particle Photon и ее драйвере Wi-Fi. Поскольку мы хотим использовать WiFi Plus Click, нам нужно изменить следующие строки:
from broadcom.bcm43362 импортировать bcm43362 как wifi_driver
в
из microchip.mcw1001a импортировать mcw1001a как wifi_driver
и
wifi_driver.auto_init ()
в
wifi_driver.init (SERIAL2, D24) # слот B
Затем мы хотим использовать датчик температуры Temp &Hum Click. Итак, мы должны добавить следующие строки для импорта библиотеки и настройки датчика, как вы можете прочитать в документации:
# Импортировать библиотеку HTS221 из stm.hts221 import hts221 temp_hum =hts221.HTS221 (I2C0, D21) # слот A
Чтобы прочитать датчик, просто напишите следующую строку там, где это необходимо:
tmp, hum =temp_hum.get_temp_humidity () # Читать tmp и гул
Задайте имя SSID и ПАРОЛЬ
Конечно, вы также должны отредактировать имя SSID и ПАРОЛЬ сети Wi-Fi, к которой вы хотите подключить плату, отредактировав эту строку:
wifi.link ("SSID", wifi.WIFI_WPA2, "ПАРОЛЬ")
Создать и настроить подключенное устройство
Теперь нам нужно создать «подключенное устройство» и связать с ним экземпляр «zerynthapp». Ниже вы можете увидеть несколько скриншотов с необходимыми действиями. Взгляните на этот документ, чтобы получить более подробную техническую информацию.

Учетные данные устройства ( UID и ТОКЕН ) можно копировать и вставлять прямо из Zerynth Studio (панель ADM). «IP» - это IP-адрес Zerynth ADM. Этот аргумент используется, когда сетевой драйвер не поддерживает разрешение имени хоста, как в этом случае.

Создайте, загрузите и установите шаблон
С помощью приложения Zerynth вы можете запускать красивый адаптивный графический пользовательский интерфейс с использованием HTML . , CSS и JavaScript . Код для Android или iOS не нужен!
Графический интерфейс каждого устройства размещен в песочнице Zerynth ADM и состоит из набора файлов HTML5, Javascript, CSS и изображений, которые загружаются и отображаются в приложении. Добавление в шаблон библиотеки JavaScript ADM позволяет приложению взаимодействовать с подключенным устройством как для получения, так и для отправки сообщений.
Шаблоны можно добавить, щелкнув соответствующий значок «плюс».

Затем загрузите шаблон из специальной папки. Обратите внимание, что файл, в котором определен шаблон, называется index.html . », И вы можете редактировать его, как хотите. В этом случае вы можете оставить все как есть.

Ссылка на скрипт
После нескольких правок код должен выглядеть так:
#################################################################### ################################### IoT Термометр ########### ########################################################################### ################## из беспроводного импорта wififrom microchip.mcw1001a import mcw1001a as wifi_driverimport streamsimport adc streams.serial () # Импортировать библиотеку Zerynth APP из zerynthapp import zerynthapp # Импортировать HTS221 libraryfrom stm.hts221 import hts221 temp_hum =hts221.HTS221 (I2C0, D21) # slot A sleep (1000) print ("STARTING ...") try:# UID устройства и TOKEN могут быть созданы в панели ADM zapp =zerynthapp. ZerynthApp ("DEVICE UID", "DEVICE TOKEN", ip ="178.22.65.123", log =True) # подключиться к сети Wi-Fi (укажите SSID и пароль ниже) wifi_driver.init (SERIAL2, D24) # слот B для i в диапазоне (0,5):try:wifi.link ("SSID", wifi.WIFI_WPA2, "PASSWORD") break except Exception as e:print ("Can't link", e) else:print ("Impossible связывать!") while True:sleep (1000) # Запускаем экземпляр приложения Zerynth! # Не забудьте создать шаблон с файлами в папке "шаблон", которую вы только что клонировали # загрузите его в ADM и свяжите с подключенным устройством zapp.run () # Считайте датчик и отправьте значения в ADM, пока True:спящий (1000) tmp, hum =temp_hum.get_temp_humidity () # Читать tmp и hum print ("Temp is:", tmp, "Humidity is:", hum) try:zapp.event ({"data":tmp}) except Исключение в виде e:print (e) if tmp>
30:# send mobile notification # (в изолированной программной среде ADM есть ограничение на одно уведомление в минуту на одно устройство) try:zapp.notify («ALARM!», «High Temperature! ") Кроме исключения как e:print (e) за исключением исключения как e:print (e)
Помните, что «UID УСТРОЙСТВА», «ЖЕТОН УСТРОЙСТВА», «SSID» и «ПАРОЛЬ» необходимо отредактировать, чтобы они соответствовали вашим собственным параметрам.
На этом этапе вы можете связать скрипт с вашим устройством.
Как увидеть панель управления IoT Thermometer в приложении Zerynth
Как вы можете прочитать в этом очень кратком руководстве, вам нужно просто открыть приложение Zerynth, войти в систему и выбрать конкретное устройство, чтобы увидеть панель управления IoT Thermometer. Наконец, приложение Zerynth также может получать push-уведомления . с подключенных устройств. В этом случае уведомление появится, когда температура будет выше порога!

Если у вас есть какие-либо вопросы, не стесняйтесь открывать обсуждение на форуме сообщества Zerynth.
Наслаждайтесь!
Код
- Термометр Интернета вещей
Термометр Интернета вещей Python
########################################################################################## ################################# Осциллограф приложения Zerynth ############# ########################################################################### ################# from wireless import wififrom microchip.mcw1001a import mcw1001a as wifi_driverimport streamsimport adc streams.serial () # Импортировать библиотеку Zerynth APP из zerynthapp import zerynthapp # Импортировать библиотеку HTS221 из stm .hts221 import hts221 temp_hum =hts221.HTS221 (I2C0, D21) # slot A sleep (1000) print ("STARTING ...") try:# UID устройства и TOKEN могут быть созданы на панели ADM zapp =zerynthapp.ZerynthApp ( "DEVICE UID", "DEVICE TOKEN", ip ="178.22.65.123", log =True) # подключиться к сети Wi-Fi (укажите SSID и пароль ниже) wifi_driver.init (SERIAL2, D24) # слот B для i in range (0,5):try:wifi.link ("SSID", wifi.WIFI_WPA2, "PASSWORD") break except Exception as e:print ("Can't link", e) else:print ("Impossible to link ! ") While True:sleep (1000) # Запускаем экземпляр приложения Zerynth! # Не забудьте создать шаблон с файлами в папке "шаблон", которую вы только что клонировали # загрузите его в ADM и свяжите с подключенным устройством zapp.run () # Считайте датчик и отправьте значения в ADM, пока True:спящий (1000) tmp, hum =temp_hum.get_temp_humidity () # Читать tmp и hum print ("Temp is:", tmp, "Humidity is:", hum) try:zapp.event ({"data":tmp}) except Исключение в виде e:print (e) if tmp> 30:# send mobile notification # (в изолированной программной среде ADM есть ограничение на одно уведомление в минуту на одно устройство) try:zapp.notify («ALARM!», «High Temperature! ") Кроме исключения как e:print (e) за исключением исключения как e:print (e)
Схема

Производственный процесс
- Термометр
- Библиотека Python датчика температуры TMP006 с использованием Raspberry pi,
- Датчик температуры Python и Raspberry Pi
- Использование PSoC 6 Pioneer Board с Pioneer IoT Add-on Shield
- Как Интернет вещей разрушает мир вокруг нас
- Как установить Python в Windows [Pycharm IDE]
- Python переименовывает файл и каталог, используя os.rename()
- Вход в Facebook с использованием Python:пример входа в FB
- Среднее значение Python:как найти СРЕДНЕЕ значение списка в Python
- Python — отправка электронной почты с использованием SMTP