PhD Work for IoT Class (2020).
PIP no Debian/Ubuntu
$ sudo apt-get install python-pip #python 2
CoAPthon no Debian/Ubuntu
$ sudo pip install CoAPthon
Diagrama de operação da aplicação com CoAP
Teste (test.py)
Arquivo responsável pela realização dos testes das operações POST, GET e DELETE sem necessidade do emulador.
- POST
$ python test.py -P POST -p coap://<server-ip-here>:<server-port-here>/<resource> -P <payload>
- GET
$ python test.py -P GET -p coap://<server-ip-here>:<server-port-here>/<resource>
Ambiente (environment.py)
Com a ajuda do emulador Sense HAT, simula sensores de temperatura e pressão em um determinado ambiente.
O usuário pode setar um ambiente cujos recursos (temperatura e pressão) já estejam adicionados ao servidor, como também pode criar um novo ambiente.
Um ambiente nada mais é do que uma virtualização dos sensores de temperatura e pressão. Logo, a criação de um ambbiente consiste em adicionar recursos para esses sensores no servidor.
- Inicializar
Antes de inicializar o programa, o emulador Sense HAT deve estar rodando na máquina. Se for da preferência do usuário, testes podem ser executados através do arquivo test.py, sem a necessidade do emulador.
$ python environment.py <server-ip-here> <server-port-here>
O programa irá pedir para que informe o ID do ambiente ou se deseja criar outro.
Durante a execução do programa, o usuário pode mudar de ambiente ou criar um outro..
Servidor (server.py)
O servidor é inicializado com apenas um META-resource (ADD) responsável pela criação de novos resources (recursos) referentes aos sensores dos ambientes.
Através de um método POST para o resource '/add' do servidor, passando como payload um ID, estamos, então, criando um novo resource '/'. Agora podemos acessar esse novo recurso através dos métodos POST, GET...
O servidor escuta as aplicações AMBIENTE, criando recursos para novos sensores e recebendo valores de temperatura e pressão. Por outro lado, recebe requisições das aplicações CLIENTE, requisitando valores de temperatura e pressão de um determinado ambiente.
- Inicializar
$ python server.py <server-ip-here> <server-port-here>
Cliente (client.py)
As aplicações CLIENTE acessam o servidor requisitam os valores dos sensores de temperatura e pressão do AMBIENTE escolhido.
Cliente em estado IDLE
Caso os valores ultrapassem os limiares predeterminados, os LEDs se acendem na cor vermelha, conforme imagem abaixo.
Valores de temperatura e/ou pressão acima do THRESHOLD
- Inicializar
Antes de inicializar o programa, o emulador Sense HAT deve estar rodando na máquina.
$ python client.py <server-ip-here> <server-port-here>
O programa irá pedir para que informe o ID do ambiente que deseja vigiar. A seguir, irá pedir que o usuário sete os limiares (THRESHOLD) de temperatura e pressão.
Durante a execução do programa, o usuário pode mudar de ambiente ou reconfigurar os THRESHOLDS.
- IP do servidor: 192.168.25.4
- Porta do servidor: 5683
- Inicializa servidor
$ python server.py 192.168.25.4 5683
- Crie sensor para temperatura com ID t1
$ python test.py -P POST -p coap://192.168.25.4:5683/add -P t1
- Sete temperatura em t1 para 40 graus
$ python test.py -P POST -p coap://192.168.25.4:5683/t1 -P 40
- Crie sensor para pressão com ID 'p1'
$ python test.py -P POST -p coap://192.168.25.4:5683/add -P p1
- Sete pressão em p1 para 1000 hPa
$ python test.py -P POST -p coap://192.168.25.4:5683/p1 -P 1000
- A temperatura e pressão podem ser alteradas pelo método POST.
- Inicialize o Sense HAT Emulator
- Inicialize o simulador de ambiente
$ python environment.py 192.168.25.4 5683
- A temperatura e pressão podem ser alteradas pelo emulador
- Inicialize o Sense HAT Emulator
- Inicialize aplicação cliente
$ python client.py 192.168.25.4 5683
- Sete ID do ambiente: 1
- Sete threshold de temperatura: 50
- Sete threshold de pressão: 1100
Os LEDs não acenderão.
- Sete threshold de temperatura: 30 ou
- Sete threshold de pressão: 900
Os LEDs acenderão.