Plataformas atuais de sistemas embarcados para IoT

82
PLATAFORMAS ATUAIS DE SISTEMAS EMBARCADOS PARA IOT Prof.Herculano De Biasi UNOESC

Transcript of Plataformas atuais de sistemas embarcados para IoT

Plataformas Atuais de Sistemas Embarcados para IoT

Plataformas Atuais de Sistemas Embarcados para IoTProf.Herculano De BiasiUNOESC

1

Sistemas EmbarcadosEstudo de Caso: Dimmer Digital com ArduinoEstudo de Caso: Peneira Autonivelante

Plataformas AtuaisArduinoRaspberry PiBeagleBoneCubieBoardIntel GalileoIntel Edison

Estudo de Caso: IoT com Arduino YnEstudo de Caso: Automao Residencial com Raspberry PiTpicos

Bibliografia (1)

Bibliografia (2)

Bibliografia (3)

Controle de Intensidade de Corrente Alternadahttp://blog.eletronlivre.com.br/2010/09/dimmer-futuristico-automacao.html http://blog.eletronlivre.com.br/2011/02/dimmer-digital-futuristico-com-arduino.html Dimmer Digital com Arduino (1)

ATENO!!!Este projeto trabalha com alta tenso e risco potencial de incndio!Nunca desenvolva sozinho nem deixe o aparelho ligado por muito tempoDimmer Digital com Arduino (2)

DemoDimmer Digital com Arduino (3)

Componentes:Sensor InfravermelhoOpto acoplador (MOC3021)Triac (BT138)PotencimetroDetector de passagem porzero (opto acoplador 4N35)ArduinoDimmer Digital com Arduino (4)

TRIAC

Resistores:R1: 100 R2: 2200 R3: 47K de 3WR4: 220 R5: 10K

Mesmo sendo o R3 um resistor que dissipa 3W, ele esquenta muito e corre o risco de incendiar se o equipamento permanecer ligado por muito tempoDimmer Digital com Arduino (5)

R1R2R5R4R3

O site SerialLink comercializa um shield chamado Dimmer AC Bivolt, com funcionalidade idntica (http://www.seriallink.com.br/web/index.php?r=produtos%2Fplacamodulodimmerac)

Note o resistor de 3W (verde) para evitar sobreaquecimento e risco de incndioDimmer Digital com Arduino (6)

Funcionamento: Deteco da passagem por zero e interrupo do ArduinoDimmer Digital com Arduino (7)

Funcionamento: Controle do ngulo (tempo) de disparo do TRIACDimmer Digital com Arduino (8)

Projeto idealizado pelo acadmico Slvito Medeiros da UnC Curitibanos, e desenvolvido com ele na empresa Comercial Cruz Ltda. de Curitibanos

Segundo dados da Conab (Companhia Nacional Abastecimento) a estimativa de produo de soja para safra 2015/2016 de 3.011 kg/ha, outro levantamento feito pela EMBRAPA, apontou desperdcio na colheita mecanizada de 4,2% da soja, ficando em mdia de 120 kg/haColheitadeira Autonivelante (1)

Colheitadeira:Colheitadeira Autonivelante (2)

Peneira:Colheitadeira Autonivelante (3)

Peneira:Colheitadeira Autonivelante (4)

Componentes: Atuador Linear (Pisto com Potencimetro)Colheitadeira Autonivelante (5)

Componentes: IMU (Unidade de Medio Inercial)Acelermetro + Giroscpio + MagnetmetroColheitadeira Autonivelante (6)

Componentes: Joystick, LCD, chaves fim-de-cursoColheitadeira Autonivelante (7)

Plataforma Arduino (1)

Severino: Arduino Uno

Plataforma Arduino (2)

Arduino Mega ADK: Utilizado para desenvolvimento Android

Plataforma Arduino (3)

Arduino Nano

Plataforma Arduino (4)

Arduino TRE: Ainda no lanado

Severino: Arduino nacionalPlataforma Arduino (5)

Arduino na protoboardPlataforma Arduino (5)

Raspberry Pi Modelo A256 MB de RAM, compartilhada com a GPU1 portas USBSem porta ethernetPlataforma Raspberry Pi (1)

Raspberry Pi Modelo B+4 portas USB em vez de 2 portas40 GPIO em vez de 26 (as primeiras 26 portas condizem com as originais)MicroSD card em vez dos SD cards maioresPlataforma Raspberry Pi (2)

Raspberry Pi 2 Modelo BSoC Broadcom BCM2836Quad-core ARM Cortex-7 / CPU: 900MHzGPU Broadcom VideoCore IVMemria RAM: 1GBPlataforma Raspberry Pi (3)

RaspicamPlataforma Raspberry Pi (4)

BeagleBone BlackPlataforma BeagleBone (1)

Display LCD com Touch ScreenPlataforma BeagleBone (2)

Cubiboard 1Plataforma CubieBoard (1)

Cubie TruckPlataforma CubieBoard (2)

Galileo Gerao 2Plataforma Intel Galileo (1)

Desenvolvimento com Visual StudioPlataforma Intel Galileo (2)

Dual-Core Silvermont Atom 500MHz + Quark 100MHz1GB LPDDR3 e 4GB eMMCWiFi 2.4/5GHz 802.11a/b/g/nBluetooth 4.0Yocto Linux v1.6Plataforma Intel Edison (1)

Dimenses do Mdulo

KitsPlataforma Intel Edison (2)

Arduino Breakout KitPlataforma Intel Edison (3)

Fonte: Sparkfun (2015)Comparativo (1)

Fonte: Sparkfun (2015)Comparativo (2)

Fonte: Sparkfun (2015)Comparativo (3)

Fonte: Sparkfun (2015)Comparativo (4)

Fonte: Sparkfun (2015)Comparativo (5)

Fonte: Sparkfun (2015)Comparativo (6)

Hardware Arduino Yn: Combina um Arduino clssico (Leonardo, baseado no processador Atmega32U4) com um SoC WiFi rodando Linino, um sistema GNU/Linux MIPS baseado no OpenWrtEstudo de Caso: IoT com Arduino Yn (1)

Hardware:Estudo de Caso: IoT com Arduino Yn (2)

Gerenciamento web: http://arduino.local Estudo de Caso: IoT com Arduino Yn (3)

Aceso via SSH: ssh [email protected]

Estudo de Caso: IoT com Arduino Yn (4)

Upload via porta serial ou rede sem fio Estudo de Caso: IoT com Arduino Yn (5)

Monitoramento de temperatura e luminosidadeEstudo de Caso: IoT com Arduino Yn (6)

Estudo de Caso: IoT com Arduino Yn (7)

Biblioteca: https://github.com/adafruit/DHT-sensor-libraryO cdigo abaixo serve para testar a leitura do sensor (ligado ao pino 8 do Arduino)Estudo de Caso: IoT com Arduino Yn (8)

Crie uma conta no Temboo para utilizar bibliotecas de IoT https://temboo.com/Estudo de Caso: IoT com Arduino Yn (9)

A aba Activity mostra um dashboard com o nmero de chamadas API Estudo de Caso: IoT com Arduino Yn (10)

Crie uma aplicao chamada aplicacaoYunEstudo de Caso: IoT com Arduino Yn (11)

Cdigo (adaptado do livro Internet of Things with the Arduino Yn)#include #include #include

// Informao sobre a conta no Temboo#include "ContaTemboo.h"

// Variveisint lightLevel;float humidity;float temperature;unsigned long time;

// Processo para obter as medies de tempoProcess date;

// Dados da conta no Google Docsconst String GOOGLE_USERNAME = "herculano.debiasi";const String GOOGLE_PASSWORD = "blablabla";const String SPREADSHEET_TITLE = "Yun";Estudo de Caso: IoT com Arduino Yn (12)

Cdigo (adaptado do livro Internet of Things with the Arduino Yn)#include "DHT.h"// Sensor de umidade e temperatura

#define DHTPIN 8#define DHTTYPE DHT11

DHT dht(DHTPIN, DHTTYPE);

boolean debug_mode = true;

void setup() { // Inicializa Serial if (debug_mode == true) { Serial.begin(115200); delay(4000); while (!Serial); }

// Inicializa sensor DHT dht.begin();Estudo de Caso: IoT com Arduino Yn (13)

Cdigo (adaptado do livro Internet of Things with the Arduino Yn) // Inicia ponte (bridge) Bridge.begin();

// Inicia processo date time = millis(); if (!date.running()) { date.begin("date"); date.addParameter("+%D-%T"); date.run(); }

if (debug_mode == true) { Serial.println("Setup complete. Waiting for sensor input...\n"); }}Estudo de Caso: IoT com Arduino Yn (14)

Cdigo (adaptado do livro Internet of Things with the Arduino Yn) void loop() { // Mede umidade e temperadura humidity = dht.readHumidity(); temperature = dht.readTemperature();

// Mede nvel de luz int lightLevel = analogRead(A0);

if (debug_mode == true) { Serial.println("\nCalling the /Library/Google/Spreadsheets/AppendRow Choreo..."); }

// Adiciona dados planilha do Google Docs runAppendRow(lightLevel, temperature, humidity);

// Repete a cada 10 minutos delay(600000);}Estudo de Caso: IoT com Arduino Yn (15)

Cdigo (adaptado do livro Internet of Things with the Arduino Yn) // Inicia ponte (bridge) Bridge.begin();

// Inicia processo date time = millis(); if (!date.running()) { date.begin("date"); date.addParameter("+%D-%T"); date.run(); }

if (debug_mode == true) { Serial.println("Setup complete. Waiting for sensor input...\n"); }}Estudo de Caso: IoT com Arduino Yn (16)

Cdigo (adaptado do livro Internet of Things with the Arduino Yn)void loop() { // Mede umidade e temperadura humidity = dht.readHumidity(); temperature = dht.readTemperature();

// Mede nvel de luz int lightLevel = analogRead(A0);

if (debug_mode == true) { Serial.println("\nCalling the /Library/Google/Spreadsheets/AppendRow Choreo..."); }

// Adiciona dados planilha do Google Docs runAppendRow(lightLevel, temperature, humidity);

// Repete a cada 10 minutos delay(600000);}Estudo de Caso: IoT com Arduino Yn (17)

Crie uma planilha no Google Docs (ou Google Drive)Estudo de Caso: IoT com Arduino Yn (18)

A planilha dever ter as colunas abaixoEstudo de Caso: IoT com Arduino Yn (19)

Planilha sendo preenchidaEstudo de Caso: IoT com Arduino Yn (20)

Grfico gerado pelo Google SheetsEstudo de Caso: IoT com Arduino Yn (21)

Log do TembooEstudo de Caso: IoT com Arduino Yn (22)

Processo bridge rodandoEstudo de Caso: IoT com Arduino Yn (23)

DomticaEstudo de Caso: Automao Residencial com RPi (1)

Baseado no TCC Automao Residencial com Raspberry Pi do Rodrigo Batistello (curso de Sistemas de Informao da Unoesc Chapec - https://www.youtube.com/watch?v=4PhAngSLeHo )Estudo de Caso: Automao Residencial com RPi (2)

Maquete em MDFEstudo de Caso: Automao Residencial com RPi (3)

MontagemEstudo de Caso: Automao Residencial com RPi (4)

MontagemEstudo de Caso: Automao Residencial com RPi (5)

Componentes:Raspberry PiPlaca de automaoLEDs e resistoresSensor de chuvaSensor PIR (presena)Sensor de alarme magnticoTemperatura (AM2302)Umidade (AM2302)Alarme residencialSirene de alarmeSensor LDR (luminosidade)Quadro VDI para fixaodos componentesFonte de 12 V (alarme)Fonte de 5 V (LEDS)Estudo de Caso: Automao Residencial com RPi (6)

Shield de Automao (http://www.projetoarduino.com.br/raspberry-shield-de-automacao-residencial-p78) Estudo de Caso: Automao Residencial com RPi (7)

Sensor de alarme residencial, LED e LDREstudo de Caso: Automao Residencial com RPi (8)

Estudo de Caso: Automao Residencial com RPi (9)Demo (ligar pra casa e pedir ajuda pra minha irm )

Software:AndroidStudioPythonSocketsNode.jsXMLMySQLEstudo de Caso: Automao Residencial com RPi (10)

Sockets: Implementao em Python ou Node.jsEstudo de Caso: Automao Residencial com RPi (11)

Estudo de Caso: Automao Residencial com RPi (12)

Exemplo em PythonEstudo de Caso: Automao Residencial com RPi (13)

ServidorCliente

Exemplo em Node.jsEstudo de Caso: Automao Residencial com RPi (14)var http = require("http"), porta = 1234; var servidor = http.createServer(function(request, response){ response.writeHeader(200, {"Content-Type": "text/plain"}); response.write("Hello HTTP!"); response.end(); }); servidor.listen(porta); console.log("Servidor Rodando na porta "+porta+"\nLanar http://localhost:"+porta);