jeanvillete / fiap-iot-test Goto Github PK
View Code? Open in Web Editor NEWFIAP; Repositório para avaliação da matéria IoT; Professor Ricardo Ogliari
FIAP; Repositório para avaliação da matéria IoT; Professor Ricardo Ogliari
No payload de exemplo abaixo, o código de pareamento é o "4444" e o tipo do participante é "web" (web browser).
payload para testes da função
/* registerPairCode */
{
"requestContext": {
"connectionId": "abc123"
},
"body": "{\"data\": { \"pairCode\": \"4444\", \"partyType\": \"web\" }}"
}
cenário; device recebe evento de pareamento
- led de conexão informa status ativado (led verde)
- leds do código ficam todos desligados
cenário; device começa a enviar eventos
- os eventos devem ser de status dos sensores e/ou
atuadores conectados ao device
- GIVEN; o device têm o status de pareado
- o comando SERIAL para informar o device que o pareamento foi
estabelecido com um cliente remoto, o código do comando é o
11, sendo assim o comando seria;
:11:
No payload de exemplo abaixo, o código de pareamento é o "4444" e o tipo do participante é "web" (web browser).
payload para testes da função
/* sendMessage */
{
"requestContext": {
"connectionId": "abc123"
},
"body": "{ \"data\": { \"pairCode\": \"4444\", \"targetPartyType\": \"web\", \"message\": { \"heartBeat\": \"beat\" } } }"
}
...implementado no issue #6 ;
- device dispara mensagem/evento na porta SERIAL, que deve
possibilitar a inferência para requisitar o rest service, que
calcula e registra o código em tabela específica
...e o que deve ser implementado neste issue;
Estrutura para websocket, na AWS
Montar circuito de acordo com o esquema disponível no arquivo/imagem fiap-iot-test.png;
Checkout e deploy do código Arduino na placa;
como fazemos utilização do sensor de distância ultrasonico hc-sr04, se faz necessário importar a biblioteca correspondente na IDE Arduino
-- obter biblioteca do sensor em; https://github.com/filipeflop/Ultrasonic
-- importar biblioteca na IDE Arduino
agora sim, fazer checkout do código do trabalho corrente, compilar e deployar para a placa; https://github.com/jeanvillete/fiap-iot-test/tree/master/arduino/Main
Dependência de ordem de execução, se for executar com as ferramentas utilizadas aqui no teste;
plugar a placa arduino ao cabo usb, para que o device seja registrado, i.e; /dev/ttyACM0
o device supracitado está sob permissões do usuário ROOT, então sugiro permitir que o usuário corrente possa utilizá-la inclusive para deployar o código Arduíno na placa
$ sudo chmod u+rw /dev/ttyACM0
(se ainda não tiver feito) deployar o código Arduíno na placa, se já tiver deployado uma vez, este passo é facultativo
iniciar a imagem docker com privilégios de comunicação com o device do host;
$ docker run -p 1880:1880 --privileged -v /dev/ttyACM0:/dev/ttyACM0 --name fiap-iot-test --rm nodered/node-red
com a página do node-red carregada no webbrowser (http://localhost:1880/), instale o Plugin/Palette node-red-node-serialport
ainda na aplicação node-red, importe o arquivo com o fluxo; ./node-red/fiap-iot-test-flow.json
-- mencionar que está hardcoded no fluxo do node-red o endpoint do websocket que eu expus via a minha conta AWS
Página com a interação web (web party na comunicação websocket)
:91:4324
91
significa o comando de leitura do código de paeamento, e o valor 4324
é o código do pareamento propriamente dito.payload para testes da função
/* connect */
{
"requestContext": {
"connectionId": "abc123"
}
}
:19:
Sensor de distância: Ultrasonic
{
"device": {
"name": "sensor ultrasônico",
"model": "hc-sr04",
"distance": {
"unit": "cm",
"value": 40.4
}
}
}
payload para testes da função
/* disconnect */
{
"requestContext": {
"connectionId": "abc123"
}
}
- o código de pareamento é formado por 4 dígitos, que devem
ir de 1 a 4, e.g; 1234, 1144, 4444, etc.
premissa; leds para código de pareamento
- o esquema de apresentação de determinado código de
pareamento é formado de 4 leds, onde cada um dos leds
representa um dígito, ou seja, led_1, led_2, led_3 e led_4,
- quando o código de pareamento for recepcionado,
exemplo, 4324, o led_4 irá acender por 2 segundos e então
apagar, logo depois o led_3 irá acender por 2 segundos
e apagar, então o led_2 irá acender por 2 segundos e
apagar, e por último o led_4 voltará acender por 2 segundos
e apagar novamente, então todos os leds ficam apagados por
outros dois segundos, e o ciclo se repete enquanto o código
de pareamento estiver disponível para ser printado.
premissa; definição alocação dos pinos
- leds para o código de pareamento;
led_cod_dig_1_pin_12
led_cod_dig_2_pin_11
led_cod_dig_3_pin_10
led_cod_dig_4_pin_9
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.