цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Распараллеливание приложений на ESP32 с использованием платформы Toit для Интернета вещей


Распараллеливание приложений на ESP32 с использованием платформы Toit для Интернета вещей

Автор: Mike(admin) от 25-04-2021, 23:55

Благодаря платформе Toit разработчики могут обращаться с ESP32 как с обычным компьютером, устанавливая приложения так же просто, как на компьютер или телефон. Используя язык высокого уровня Toit, легко реализовать функции и приложения, при этом платформа Toit гарантирует, что устройство будет продолжать работать, несмотря ни на что. В этом проекте мы используем платформу Toit в рамках подключения датчика BME280 к ESP32 и считывания данных с этого датчика. Данные будут публиковаться в журнале консоли Toit.


Распараллеливание приложений на ESP32 с использованием платформы Toit для Интернета вещей

Бесплатная учетная запись может быть создана на toit.io. Первые 100 МБ данных, которые поступают от ESP32 на платформу, предоставляются бесплатно (нажмите «Try for free» на веб-странице). Когда вы зарегистрируетесь, в консоли Toit создается организация, и вы получите электронное письмо для установки пароля. Затем вы можете войти в консоль и увидеть свои устройства после того, как вы зарегистрируете их.


После запроса устройства оно должно появиться в списке устройств в течение нескольких секунд. Нажмите на устройство, чтобы узнать о нем подробнее.


Распараллеливание приложений на ESP32 с использованием платформы Toit для Интернета вещей

Далее приведена схема подключения датчика BME280 к ESP32. Поскольку мы используем I2C для этой настройки, мы подключаем провода следующим образом: SDA – GPIO21, SCL – GPIO22. Наконец, нам, конечно, нужно подключить 3,3 В и GND.


Распараллеливание приложений на ESP32 с использованием платформы Toit для Интернета вещей

Распараллеливание приложений на ESP32 с использованием платформы Toit для Интернета вещей

Чтобы развернуть приложение, нам понадобится как код Toit, так и файл расписания YAML. Код Toit относительно прост и не требует пояснений. Для начала нам понадобятся библиотеки для доступа к GPIO, I2C и сенсору. В основной функции мы устанавливаем шину I2C с адресом 0x77 и устанавливаем GPIO 21 и 22 как SDA и SCL соответственно. Мы также создаем объект датчика, который содержит методы для чтения данных с датчика. Команда print выводит данные в журнале в консоли Toit с форматированием.



// Filename: bme280.toit

import gpio
import serial.protocols.i2c as i2c
import drivers.bme280

main:
    bus := i2c.Bus
        --sda=gpio.Pin.out 21
        --scl=gpio.Pin.out 22
    device := bus.device 0x77
    bme := drivers.Bme280 device

    bme.on
    print "Temperature: $(%.1f bme.read_temperature) C"
    print "Humidity: $(%.1f bme.read_humidity) %"
    print "Pressure: $(%.1f bme.read_pressure / 100) hPa"
    bme.off

Также нам понадобится файл YAML. Файл YAML заботится о планировании кода Toit, то есть о том, когда код должен быть выполнен. Мы даем ему имя «Measure THP», указываем на файл Toit bme280.toit и, наконец, даем системе команду запускать код при установке приложения, а затем каждые пять секунд.



// Filename: bme280.yaml

name: "Measure THP"
entrypoint: bme280.toit
triggers:
    on_install: true
    on_interval: 5s

Код Toit для вывода отформатированной отметки времени в журнале выглядит следующим образом:



// Filename: time.toit

main:
  time := Time.now.local
  print "Current Time: $(%02d time.h):$(%02d time.m):$(%02d time.s) - $(%02d time.day)/$(%02d time.month)"

В файле YAML мы выбираем запускать этот код Toit после установки приложения, а затем каждые пять секунд.



// Filename: time.yaml

name: "Timestamp"
entrypoint: time.toit
triggers:
    on_install: true
    on_interval: 5s

Убедитесь, что вы вошли в свою организацию в консоли Toit, введя следующую команду:


$ toit auth login

Вы сможете увидеть свое устройство, если введете следующую команду:


$ toit ls

Сохранив файлы Toit и YAML, указанные выше, мы можем развернуть эти приложения на ESP32 с помощью следующих команд, учитывая, что вы назвали ESP32 «Toit1» в консоли Toit, а имена файлов YAML - «bme280.yaml» и «time.yaml».



$ toit device -d Toit1 deploy bme280.yaml
successfully deployed the job Measure THP on Toit1
$ toit device -d Toit1 deploy time.yaml
successfully deployed the job Timestamp on Toit1

Перейдите в консоль Toit и выберите свое устройство. Два установленных приложения теперь должны быть перечислены на вкладке APPS. Обратите внимание на кнопки «Uninstall» справа. Их можно использовать для удаления соответствующего приложения.


Распараллеливание приложений на ESP32 с использованием платформы Toit для Интернета вещей

Если мы переключимся на вкладку LOGS, мы должны увидеть данные о температуре, влажности и барометрическом давлении, которые публикуются в журнале.


Распараллеливание приложений на ESP32 с использованием платформы Toit для Интернета вещей

Теперь вы можете попробовать изменить код и повторно развернуть приложение. Обратите внимание, что вам не нужно удалять приложение перед повторным развертыванием.




© digitrode.ru


Теги: ESP32, Интернет вещей




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий