Arduino e Internet das Coisas: conceitos básicos e demonstrações

download Arduino e Internet das Coisas: conceitos básicos e demonstrações

of 61

description

Arduino e Internet das Coisas: conceitos básicos e demonstrações

Transcript of Arduino e Internet das Coisas: conceitos básicos e demonstrações

  • Ronivaldo SampaioMestre em [email protected]

    INTERNET DAS COISAS COM ARDUINO

  • ARPANET

    ComputadoresCentros de Pesquisa

  • Internet

    Rede de Pessoas e Comunidades

  • Internet das Coisas

    Interliga dispositivos

  • 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 fcil a vida das pessoas-Mudana definitiva

  • Internet das Coisas

  • Internet das Coisas

  • Internet das Coisas

  • Internet das Coisas

  • Internet das Coisas

  • Internet das Coisas

  • Internet das Coisas

  • Internet das Coisas

  • Internet das Coisas

  • Internet das Coisas

  • Internet das Coisas

  • Internet das Coisas

  • Internet das Coisas

  • Internet das Coisas

  • Internet das CoisasMquina de Vendas Automtica

  • Internet das Coisas

  • Internet das Coisas

  • Internet das Coisas

  • Internet das Coisas

  • Internet das Coisas

  • Internet das Coisas

  • Internet das Coisas

    2008

  • O Que Arduino?Plataforma para a criao de prototipos

    Hardware Livre Fcil de Usar Origem em

    Wiring C/C++

    Imagem: http://arduino.cc/

  • um dispositivo que conecta o mundo fsico com o mundo

    virtual!

    O Que Arduino?

  • @plantaiot

    Plantas do uma sensao de leveza e vida

    Isso - claro - quando voc no se esquea de reg-las

    elas murcham e morrem

    As plantas no falam!

    Ainda..

  • @plantaiot

    Ento vamos dar voz a esta nova planta:

    Ela vai poder dizer o que est sentindo

    Esta no vai morrer por falta de gua!

  • @plantaiot

    Uma frase para cada nvel de gua no solo:

    Sem gua (Totalmente seco)

    Mnimo (Nvel crtico) Pouca gua (Nvel baixo) Intermedirio (Nvel

    suficiente) Cheio (Molhado acabou

    de ser regada)

  • @plantaiot

  • @plantaiot

  • Cdigo @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) {...

  • Esquemtico @plantaiot

  • Objetivo da @plantaiot

    Muito fcil extrair dados do mundo real e transformar em informaes teis que podem ser usadas diretamente para o controle e automao das coisas.

  • Planta IoT com Regador

    Melhoranda a soluo: Planta IoT Regador IoT Dados na Nuvem Histrico dos Eventos Autnomia

  • Plataforma IoT

  • Plataforma IoT

  • Plataforma IoT

    Lugar centralizado com: Armazenamento de dados de

    sensores Visualizao de Dados Gerenciamento remoto Tecnologias de computao

    em nuvem Envio/Recebimento de dados

    atravs de API (Application Program Interface)

    Armazenamento seguro Acessado de qualquer lugar

  • Principais Plataformas

  • Xively

    Xively Produto Device

    Feed Data Stream Data Point

  • Esquemtico Sensor de Nvel

  • Esquemtico Regador

  • Cdigo 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...

  • Cdigo 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 /* nmero de datastreams */); EthernetClient client;XivelyClient xivelyclient(client); ...

  • Cdigo Planta IoT com Xively...

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

  • Cdigo 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("");} ...

  • Cdigo 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"); } ...

  • Cdigo 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); ...

  • Cdigo 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(""); ...

  • Monitoramento com Xively

  • Fcil Integrao com Xively

  • 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 Especfica.

    Deve-se montar a requisio HTTP e enviar atravs do Ethernet Shield

  • Rede de Sensores

    Um n responsvel pela conexo com a nuvem

  • Integraes

  • Dever de casa

    Vamos desenvolver um novo Produto?

  • Fim

    Valorize suas ideias, mesmo que elas paream simples e com fcil implementao. O que importa uma ideia legal, no quanto complexa ela .

    Vamos tirar as idias da cabea e torn-las realidade.

    IoT j est aqui, presente. Vamos aproveitar!

  • Fim

    Muito Obrigado!

    Ronivaldo [email protected]

    https://github.com/ronivaldo/plantaIoT

  • Refernciashttp://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

    Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24Slide 25Slide 26Slide 27Slide 28Slide 29Slide 30Slide 31Slide 32Slide 33Slide 34Slide 35Slide 36Slide 37Slide 38Slide 39Slide 40Slide 41Slide 42Slide 43Slide 44Slide 45Slide 46Slide 47Slide 48Slide 49Slide 50Slide 51Slide 52Slide 53Slide 54Slide 55Slide 56Slide 57Slide 58Slide 59Slide 60