Internet das coisas com Arduino

61
Ronivaldo Sampaio Mestre em Mecatrônica [email protected] INTERNET DAS COISAS COM ARDUINO

Transcript of Internet das coisas com Arduino

Page 1: Internet das coisas com Arduino

Ronivaldo SampaioMestre em Mecatrô[email protected]

INTERNET DAS COISAS COM ARDUINO

Page 2: Internet das coisas com Arduino

ARPANET

ComputadoresCentros de Pesquisa

Page 3: Internet das coisas com Arduino

Internet

Rede de Pessoas e Comunidades

Page 4: Internet das coisas com Arduino

Internet das Coisas

Interliga dispositivos

Page 5: Internet das coisas com Arduino

Internet das Coisas

“Uma rede de objetos (coisas) dotadas de sensores e/ou atuadores que se comunicam com outros objetos, sistemas e pessoas”

-Torna mais fácil a vida das pessoas-Mudança definitiva

Page 6: Internet das coisas com Arduino

Internet das Coisas

Page 7: Internet das coisas com Arduino

Internet das Coisas

Page 8: Internet das coisas com Arduino

Internet das Coisas

Page 9: Internet das coisas com Arduino

Internet das Coisas

Page 10: Internet das coisas com Arduino

Internet das Coisas

Page 11: Internet das coisas com Arduino

Internet das Coisas

Page 12: Internet das coisas com Arduino

Internet das Coisas

Page 13: Internet das coisas com Arduino

Internet das Coisas

Page 14: Internet das coisas com Arduino

Internet das Coisas

Page 15: Internet das coisas com Arduino

Internet das Coisas

Page 16: Internet das coisas com Arduino

Internet das Coisas

Page 17: Internet das coisas com Arduino

Internet das Coisas

Page 18: Internet das coisas com Arduino

Internet das Coisas

Page 19: Internet das coisas com Arduino

Internet das Coisas

Page 20: Internet das coisas com Arduino

Internet das CoisasMáquina de Vendas Automática

Page 21: Internet das coisas com Arduino

Internet das Coisas

Page 22: Internet das coisas com Arduino

Internet das Coisas

Page 23: Internet das coisas com Arduino

Internet das Coisas

Page 24: Internet das coisas com Arduino

Internet das Coisas

Page 25: Internet das coisas com Arduino

Internet das Coisas

Page 26: Internet das coisas com Arduino

Internet das Coisas

Page 27: Internet das coisas com Arduino

Internet das Coisas

2008

Page 28: Internet das coisas com Arduino

O Que é Arduino?Plataforma para a criação de prototipos– Hardware Livre– Fácil de Usar– Origem em

Wiring• C/C++

Imagem: http://arduino.cc/

Page 29: Internet das coisas com Arduino

É um dispositivo que conecta o mundo físico com o mundo

virtual!

O Que é Arduino?

Page 30: Internet das coisas com Arduino

@plantaiot

Plantas dão uma sensação de leveza e vida– Isso é - é claro - quando você

não se esqueça de regá-las– elas murcham e morrem

As plantas não falam!

Ainda..

Page 31: Internet das coisas com Arduino

@plantaiot

Então vamos dar voz a esta nova planta:– Ela vai poder dizer o que está

sentindo– Esta não vai morrer por falta

de água!

Page 32: Internet das coisas com Arduino

@plantaiot

Uma frase para cada nível de água no solo:– Sem água (Totalmente

seco)– Mínimo (Nível crítico)– Pouca Água (Nível baixo) – Intermediário (Nível

suficiente)– Cheio (Molhado – acabou

de ser regada)

Page 33: Internet das coisas com Arduino

@plantaiot

Page 34: Internet das coisas com Arduino

@plantaiot

Page 35: Internet das coisas com Arduino

Código @plantaiot... int valorSensorAgua = analogRead(sensorAguaPin); int nivelAgua = map(valorSensorAgua, 0, 1023, 0, 4); Serial.print("Nivel de Água [0..4]="); Serial.println(nivelAgua);

if (nivelAgua < NIVEL_SEM_AGUA) { postToTwitter("@ronivaldops Estou morrendo de sede!!"); beep(); delay(20000); } else if (nivelAgua < NIVEL_MINIMO_AGUA) { postToTwitter("@ronivaldops Preciso de Água Urgente!"); delay(21000); } else if (nivelAgua < NIVEL_POUCA_AGUA) {...

Page 36: Internet das coisas com Arduino

Esquemático @plantaiot

Page 37: Internet das coisas com Arduino

Objetivo da @plantaiot

Muito fácil extrair dados do mundo real e transformar em informações úteis que podem ser usadas diretamente para o controle e automação das coisas.

Page 38: Internet das coisas com Arduino

Planta IoT com Regador

Melhoranda a solução:– Planta IoT– Regador IoT– Dados na Nuvem– Histórico dos Eventos– Autônomia

Page 39: Internet das coisas com Arduino

Plataforma IoT

Page 40: Internet das coisas com Arduino

Plataforma IoT

Page 41: Internet das coisas com Arduino

Plataforma IoT

Lugar centralizado com:– Armazenamento de dados de

sensores– Visualização de Dados– Gerenciamento remoto– Tecnologias de computação

em nuvem– Envio/Recebimento de dados

através de API (Application Program Interface)

– Armazenamento seguro– Acessado de qualquer lugar

Page 42: Internet das coisas com Arduino

Principais Plataformas

Page 43: Internet das coisas com Arduino

Xively

Xively– Produto– Device

– Feed• Data Stream• Data Point

Page 44: Internet das coisas com Arduino

Esquemático Sensor de Nível

Page 45: Internet das coisas com Arduino

Esquemático Regador

Page 46: Internet das coisas com Arduino

Código Planta IoT com Xively

...// Xively key para upload e download de dadoschar xivelyKey[] = "fNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX0c";// xively feed ID#define xivelyFeed 899999994// datastreamschar nivelAguaID[] = "nivel_agua";char regadorID[] = "regador";

#define CHANNEL_NIVEL_AGUA 0#define CHANNEL_REGADOR 1...

Page 47: Internet das coisas com Arduino

Código Planta IoT com Xively...// Define o nome dos datastreams do feedXivelyDatastream datastreams[] = { XivelyDatastream(nivelAguaID, strlen(nivelAguaID), DATASTREAM_INT), XivelyDatastream(regadorID, strlen(regadorID), DATASTREAM_INT),};

// Liga os datastreams no feedXivelyFeed feed(xivelyFeed, datastreams, 2 /* número de datastreams */); EthernetClient client;XivelyClient xivelyclient(client); ...

Page 48: Internet das coisas com Arduino

Código Planta IoT com Xively

...

void loop() { processaSensorNivelAgua(); processaRegador(); // delay de 15s entre chamadas delay(15000);}

...

Page 49: Internet das coisas com Arduino

Código Planta IoT com Xively...// le sensor da planta e salva na nuvemvoid processaSensorNivelAgua() { int valorSensorAgua = analogRead(sensorAguaPin); int nivelAgua = map(valorSensorAgua, 0, 1023, 0, 4); Serial.print("Nivel de Água [0..4]="); Serial.println(nivelAgua); // guarda o valor na nuvem datastreams[CHANNEL_NIVEL_AGUA].setInt(nivelAgua); // send value to xively Serial.println("Nivel de Agua"); Serial.println("Uploading it to Xively"); int ret = xivelyclient.put(feed, xivelyKey); // return message Serial.print("xivelyclient.put returned "); Serial.println(ret); Serial.println("");} ...

Page 50: Internet das coisas com Arduino

Código Planta IoT com Xively...// liga regador de acordo com o nivel de agua na plantavoid processaRegador() { // otem dados do feed na nuvem int getReturn = xivelyclient.get(feed, xivelyKey); if(getReturn > 0){ Serial.print("Datastream Nivel de Agua: "); Serial.println(feed[CHANNEL_NIVEL_AGUA]); } else { Serial.println("HTTP Error"); } ...

Page 51: Internet das coisas com Arduino

Código Planta IoT com Xively... // guarda o nivel da agua do feed obtido int nivelAgua = feed[CHANNEL_NIVEL_AGUA].getInt(); // calcula quanto tempo o regado deve ficar ligado int segundosRegadorDeveLigar = 0; if (nivelAgua < NIVEL_SEM_AGUA) { // liga regador por 5 segundo segundosRegadorDeveLigar = 5; } else if (nivelAgua < NIVEL_MINIMO_AGUA) { // liga regador por 3 segundo segundosRegadorDeveLigar = 3; } else if (nivelAgua < NIVEL_POUCA_AGUA) { // liga regador por 1 segundo segundosRegadorDeveLigar = 1; } // liga ou desliga o regador de acordo com o nivel da agua controlaRegador(segundosRegadorDeveLigar); ...

Page 52: Internet das coisas com Arduino

Código Planta IoT com Xively... // guarda o valor do regador a ser salvo na nuvem datastreams[CHANNEL_REGADOR].setInt(segundosRegadorDeveLigar); Serial.print("Datastream Regador: "); Serial.println(feed[CHANNEL_REGADOR]); // send value to xively Serial.println("Regador"); Serial.println("Uploading it to Xively"); int ret = xivelyclient.put(feed, xivelyKey); // return message Serial.print("xivelyclient.put returned "); Serial.println(ret); Serial.println(""); ...

Page 53: Internet das coisas com Arduino

Monitoramento com Xively

Page 54: Internet das coisas com Arduino

Fácil Integração com Xively

Page 55: Internet das coisas com Arduino

Outras Plataformas...// this method makes a HTTP connection to the server:void sendData(int thisData) { // if there's a successful connection: if (client.connect(server, 80)) { Serial.println("connecting..."); // send the HTTP PUT request: client.print("PUT /v2/feeds/"); client.print(FEEDID); client.println(".csv HTTP/1.1"); client.println("Host: api.pachube.com"); client.print("X-PachubeApiKey: "); client.println(APIKEY); client.print("User-Agent: "); client.println(USERAGENT); client.print("Content-Length: ");

// calculate the length of the sensor reading in bytes: // 8 bytes for "sensor1," + number of digits of the data: int thisLength = 8 + getLength(thisData); client.println(thisLength);

// last pieces of the HTTP PUT request: client.println("Content-Type: text/csv"); client.println("Connection: close"); client.println();

// here's the actual content of the PUT request: client.print("sensor1,"); client.println(thisData); } ...

•Outras Plataformas podem ser utilizadas com Arduino sem Biblioteca Específica.

•Deve-se montar a requisição HTTP e enviar através do Ethernet Shield

Page 56: Internet das coisas com Arduino

Rede de Sensores

Um nó responsável pela conexão com a nuvem

Page 57: Internet das coisas com Arduino

Integrações

Page 58: Internet das coisas com Arduino

Dever de casa

Vamos desenvolver um novo Produto?

Page 59: Internet das coisas com Arduino

Fim

Valorize suas ideias, mesmo que elas pareçam simples e com fácil implementação. O que importa é uma ideia legal, não quanto complexa ela é.

Vamos tirar as idéias da cabeça e torná-las realidade.

IoT já está aqui, é presente. Vamos aproveitar!

Page 60: Internet das coisas com Arduino

Fim

Muito Obrigado!

Ronivaldo [email protected]

https://github.com/ronivaldo/plantaIoT

Page 61: Internet das coisas com Arduino

Referênciashttp://www.buildinginternetofthings.comhttp://www.independent.co.uk/life-style/gadgets-and-tech/researchers-hack-cars-to-remotely-control-steering-and-brakes-8733723.htmlhttp://blog.kaspersky.com/internet-of-crappy-things/http://blogs.sap.com/innovation/big-data/what-is-complex-event-processing-031470https://blog.adafruit.com/2012/09/17/ask-an-educator-how-can-i-get-my-arduino-to-use-ipv6/http://www.wired.com/2011/10/nest_thermostat/http://fortune.com/2014/06/12/tony-fadell-nest/http://playground.arduino.cc/code/exositehttp://postscapes.com/what-exactly-is-the-internet-of-things-infographichttp://arduino-tweet.appspot.com/http://xively.com/http://open.sen.se/http://go.sap.com/solution/internet-of-things.htmlhttp://www.youtube.com/user/NICbrvideoshttp://www.youtube.com/user/fwthinkinghttp://www.theinternetofthings.eu/sebastian-lange-iot-project-proud-present-you-iot-movie-%E2%80%9C-internet-things-architecture%E2%80%9Dhttps://software.intel.com/en-us/iothttp://www-01.ibm.com/software/info/internet-of-things/cla.calpoly.eduhttp://pixgood.com/arpanet.htmlhttp://www.businessinsider.com/growth-in-the-internet-of-things-2013-10http://postscapes.com/glowcapshttp://www.supplymanagement.com/news/2014/internet-of-things-will-significantly-alter-supply-chainshttp://www.engadget.com/2014/06/03/apple-connected-homekit/http://www.cin.ufpe.br/~kiev/IF682/02_MotivacaoProjeto_IoT.pdfhttp://www.youtube.com/watch?v=9rvu453WtMEhttp://www.cisco.com/web/about/ac79/docs/innov/IoT_IBSG_0411FINAL.pdfhttp://arduino.cc/http://br.freepik.com/fotos-gratis/planta-em-vaso_522235.htmhttp://twitter.com/http://www.electronics-eetimes.comhttp://thingspeak.com/https://www.exosite.com/http://www.nimbits.com/http://nest.comhttp://www.wired.com/2014/01/googles-3-billion-nest-buy-finally-make-internet-things-real-us/http://postscapes.com/wi-fi-plant-sensor-koubachihttp://pt-br.facebook.com/hackerspace.ce