terça-feira, 15 de fevereiro de 2022

Aplicativos paralelos em um u-BLOX NINA W106 usando a plataforma Toit para IoT

Aplicativos paralelos em um u-BLOX NINA W106 usando a plataforma Toit para IoT

Aplicativos paralelos  usando a plataforma Toit para IoT

Com a plataforma Toit, os desenvolvedores podem tratar o u-BLOX NINA W106 como um computador comum, instalando aplicativos tão facilmente quanto em um computador ou telefone. Usando a linguagem de alto nível Toit, é fácil implementar funcionalidades e aplicativos, enquanto a plataforma Toit garante que o dispositivo continue funcionando, não importa o que aconteça. Este projeto testa a plataforma Toit conectando um sensor BME280 a um u-BLOX NINA W106 e lendo os dados deste sensor. Os dados são publicados no log do console Toit.

Secure the code on your microcontrollers with lightweight containers and orchestrate them through our cloud API.

Hardware necessário

Para este projeto, você precisa de u-blox NINA W106. 

Além disso, precisamos de um sensor BME280. O sensor no link abaixo é uma escolha adequada para este projeto:

BME280

- O Sensor de Pressão BME280 é um exclusivo modelo capaz de realizar a medição de pressão atmosférica, umidade e temperatura, também conhecido como barômetro é um módulo digital de alta capacidade e resolução, utilizado nas mais diversas aplicações junto a microcontroladores, entre eles, o Arduino.
- Utilizado em projetos de estações meteorológicas e aperfeiçoamento de navegação GPS, ele apresenta grande potencial e mostra ser um produto de grande auxílio para projetistas que procuram um exclusivo produto capaz de executar as três funcionalidades principais sem ocupar muito espaço.
- Através de seu padrão de conexão por I2C, o Sensor de Pressão BME280 aumenta a sua praticidade de utilização, além de contribuir na maior precisão da obtenção de resultados.
- Desenvolvido com base no sensor Bosh ME280, o Sensor possui design simplificado com pequenas dimensõe que tornam este pequeno módulo um produto de fácil adaptação nos mais diversificados projetos, além de contar com 2 exclusivos furos para melhorar a fixação do mesmo junto aos mais diversificados projetos.

CARACTERÍSTICAS:

- Sensor de Pressão BME280;
- Sensor de Umidade;
- Sensor de Temperatura;
- Produto pequeno de fácil utilização;
- Sistema de comunicação I2C;
- Compatível com diversos modelos de microcontroladores;
- Acompanha barra de pinos 180º;

ESPECIFICAÇÕES:

- Modelo:BME280;
- Tensão de operação: 1,8 a 3,6VDC;
- Faixa de Umidade: 0 a 100%;
- Faixa de Temperatura: -40 a 85ºC;
- Faixa de Pressão: 300 a 1100hPa;
- Precisão da umidade: 0,008%;
- Precisão da temperatura: 0,01ºC;
- Precisão da pressão: +/- 1Pa;
- Comunicação: I2C (até 3,4MHz) e SPI (até 10MHz);
- Dimensões (CxLxA): 15,5x11,5x2,5mm;
- Peso: 1,5g.

Tenha acesso à plataforma Toit

Uma conta gratuita pode ser criada em toit.io. Os primeiros 100 MB de dados que fluem do u-BLOX NINA W106 para a plataforma são gratuitos. Siga o link abaixo e clique em " Experimentar gratuitamente " na página da web:

https://toit.io/

Ao se inscrever, uma organização é criada no console do Toit e você receberá um e-mail para definir sua senha. Você pode fazer logon no console e ver seus dispositivos depois de reivindicá-los (consulte a próxima seção).

Provisione e reivindique seu u-BLOX NINA W106

Um guia rápido sobre como instalar o software Toit necessário em seu computador, provisionar seu u-BLOX NINA W106 e, posteriormente, reivindicá-lo para que ele apareça no console Toit pode ser encontrado aqui:

https://docs.toit.io/

Depois de reivindicar o dispositivo, ele deve aparecer na lista de dispositivos em alguns segundos. Clique no dispositivo para obter mais informações sobre ele.





Aplique o RESET


Conectando o HW

Conectar o sensor BME280 ao u-blox NINA W106. 

  • SDA -> GPIO17
  • SCL -> GPIO18

Finalmente, é claro que precisamos conectar 3,3V e GND.

Código Toit e arquivo YAML para BME280

Para implantar um aplicativo, precisamos de algum código Toit e de um arquivo de agendamento YAML.

O código Toit é relativamente autoexplicativo, veja abaixo. Primeiro, precisamos de bibliotecas para GPIO, I2C e acesso a sensores. Na função principal configuramos o barramento I2C com endereço 0x77 e configuramos GPIO 17 e 18 para serem SDA e SCL, respectivamente. Também criamos um objeto sensor que contém métodos para ler dados do sensor. O comando print imprime os dados no log no console do Toit, com formatação.

// Filename: bme280.toit

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

main:
bus := i2c.Bus
--sda=gpio.Pin.out 17
--scl=gpio.Pin.out 18
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

Também precisamos de um arquivo YAML. O arquivo YAML cuida do agendamento do código Toit, ou seja, quando o código deve ser executado. Damos o nome de " Measure THP ", apontamos para o arquivo Toit bme280.toit e, finalmente, instruímos o sistema a executar o código quando instalamos o aplicativo e, posteriormente, a cada cinco segundos.

// Filename: bme280.yaml

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

Código Toit e arquivo YAML para impressão da hora

O código Toit para imprimir um carimbo de hora formatado no log é o seguinte:

// 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)"

No arquivo YAML, optamos por executar esse código Toit assim que instalamos o aplicativo e, em seguida, a cada cinco segundos.

// Filename: time.yaml

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

Como implantar os aplicativos

Com os arquivos Toit e YAML acima salvos, podemos implantar esses aplicativos no u-BLOX NINA W106 usando os seguintes comandos, desde que você nomeou o u-BLOX NINA W106 como " Toit1 " no console do Toit e que os nomes dos arquivos YAML são " bme280.yaml " e " 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

Vá para o console do Toit e clique no seu dispositivo. Os dois aplicativos instalados agora devem estar listados na guia APPS. Observe os botões "Desinstalar" na extrema direita. Eles podem ser usados ​​para desinstalar o aplicativo correspondente:

Se mudarmos para a guia LOGS, devemos ver os dados de temperatura, umidade e pressão barométrica sendo publicados no log.

Agora você pode tentar modificar o código e reimplantar o aplicativo. Observe que você não precisa desinstalar um aplicativo antes de reimplantá-lo.

Abaixo um exemplo mais simples!


Click em RUN Device


Execute Setup Toit Tools para Visual Code Studio e tenha uma excelente IDE programação do Toit



Utilizando Toit com Visual Studio Code - Você deve estar LOGADO no server Toit

Dois programas disparados

// Copyright (C) 2021 Toitware ApS.
// Use of this source code is governed by a Zero-Clause BSD license that can
// be found in the examples/LICENSE file.

main:
  while true:
    print "Hello, World!"
    sleep --ms=10000

e

import gpio

// The ESP DevKit V1 has an LED connected to pin 2.
LED ::= 4

main:
    pin := gpio.Pin.out LED
    while true:
      pin.set 1
      sleep --ms=10000
      pin.set 0
      sleep --ms=10000

Enquanto o LED pisca é impresso também uma mensagem Hello,World!


Executando GPIO a cada 5 segundos (remova o While), mesmo depois do BOOT.


gpio.yaml

name: "GpioApp"
entrypoint: gpio.toit
triggers:
  on_boot: true
  on_install: true
  on_interval: 5s

PS C:\toit-master\examples> toit device -d boolean-wind deploy gpio.yaml


Instalação via CLI

toit serial reinstall -p wifi.ssid="Andreia Oi Miguel 2.4G" -p wifi.password="xxxxxxxx"

Questões: suporte@smartcore.com.br

FONTES: 


Sobre a SMARTCORE

A SmartCore fornece módulos para comunicação wireless, biometria, conectividade, rastreamento e automação.
Nosso portfólio inclui modem 2G/3G/4G/NB-IoT/Cat.M, satelital, módulos WiFi, Bluetooth, GNSS / GPS, Sigfox, LoRa, leitor de cartão, leitor QR code, mecanismo de impressão, mini-board PC, antena, pigtail, LCD, bateria, repetidor GPS e sensores.

Mais detalhes em www.smartcore.com.br  

Nenhum comentário:

Postar um comentário

U-BLOX NINA W106 SENDO PROGRAMADO COM .NET nanoFramework - Amazon ALEXA - Mandando Temperatura e Umidade

U-BLOX NINA W106 SENDO PROGRAMADO COM .NET nanoFramework - Amazon ALEXA  Mandando Temperatura e Umidade para Assistente Alexa falar Testado ...