Arduino e Internet das Coisas: conceitos básicos e demonstrações
description
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