PRECISAMOS ENTENDER O QUE NOS ESPERA…
▸ Em 2020> quase todas as coisas vão tá conectadas na internet.
▸ Cada vez mais existe mais dispositivos consumindo e alimentando nossos sistemas corporativos.
SISTEMAS EMPRESARIAIS
▸ Software para servidores potentes, datacenters, etc.
▸ Desenvolvimento em uma plataforma unificada.
▸ Programação com alto nível de abstração.
SISTEMAS EMBARCADOS
▸ Software para dispositivos de várias configurações.
▸ Desenvolvimento para plataformas diferentes.
▸ Programação de baixo nível de abstração
ISSO "NÓIS" ENTENDE!
IOT É BASICAMENTE UM SISTEMA DE MENSAGENS COM:
▸ Mensagens assíncronas
▸ Mensagens pequenas
▸ Bastante mensagens
É COMUM USAR VÁRIOS PROTOCOLOS PRA UMA ÚNICA SOLUÇÃO…
IPv4/IPv6, RPL, EPC, uCode, IPv6,
URIs, Wifi, Bluetooth, ZigBee,
NFC, Physical Web, mDNS, UPnP,
MQTT, CoAP, AMQP, Websocket,
XMPP, DDS, REST, SOAP…
PRECISAMOS PAGAR PRA USAR ALGUNS SERVIÇOS, COMO CELULAR, WIFI, ETC…
PARECE ÓBVIO MAS POUCOS LEMBRAM DISSO!
É PRECISO SOBREVIVER NAS CONDIÇÕES ADVERSAS DO AMBIENTE DE PRODUÇÃO
CHUVA, CALOR, FRIO, VENTO, VIBRAÇÃO, GPS SEM SINAL…
BACKEND DO IOT
ARDUINO▸ Open-Hardware
▸ Linguagem própria
▸ Plug'n'play
▸ Comunidade madura
▸ Paixão mundial
▸ Fácil de aprender
▸ Coringa pra prototipar
BACKEND DO IOT
RASPBERRY PI▸ Open-Hardware(quase)
▸ Mini PC
▸ Ótimo para multimídia
▸ Comunidade madura
▸ GPIOs via software
▸ Barato
▸ Serve pra produção
BANANA PI
C.H.I.P
WIFI + BLE
PI ZERO
WIFI + BLE CUSTOM SHIELDS
RECEPTOR IR
8GB INTERNO
4GB INTERNO
5 USD
9 USD
35 USD
BACKEND DO IOT
ESP8266▸ Open-Hardware
▸ Usa pouca energia
▸ WiFi
▸ Comunidade madura
▸ Pequeno
▸ Barato
▸ Ótimo pra produção
BACKEND DO IOT
FALCON▸ Focado para microservices
▸ Minimalista
▸ Rápido, Leve e Flexível
▸ Simples
▸ Fácil
▸ Roda em qualquer WSGI server
▸ Focado pra arquitetura REST
▸ 20% mais rápido se tiver Cython
▸ Suporta muito bem Unicode
▸ Intuitivo
▸ Suporta Python 2.6~2.7 e 3.3~3.5
▸ Compatível com PyPy e Jython
https://falconframework.org/
Falcon Framework# oi.py import falcon
class Hello(object): def on_get(self, req, resp): resp.status = falcon.HTTP_200 resp.body = ('\nHello World! ' ‘\n…de cima! HUE.')
app = falcon.API() oi = Hello() app.add_route('/oi', oi)
Guia Rápido!
BACKEND DO IOT
RETHINKDB▸ Open-Source
▸ Rethink Query Language(ReQL)
▸ Escalável
▸ Fácil de Instalar e Usar
▸ Feito em C++ na unha
▸ Admin Dashboard é legal
▸ Sob licença AGPL v3
BACKEND DO IOT
CLIENT DRIVERS OFICIAIS▸ Ruby
▸ Python
▸ Javascript/NodeJS
▸ Java
CLIENT DRIVERS MANTIDOS PELA COMUNIDADE▸ C++
▸ C#
▸ R, etc..
BEM DOCUMENTADOS
MAIS OU MENOS DOCUMENTADOS
RethinkDB Query LanguageReQL
r.table('users').run(conn)
r.table(‘users').pluck('last_name').run(conn)
r.table(‘users').pluck('last_name').distinct().run(conn)
r.table('users').pluck('last_name').distinct().count().run(conn)
Chainable
RethinkDB Query LanguageReQL
query = r.table('users').pluck('last_name').distinct()
query.run(conn)
Execução Server-side
RethinkDB Query LanguageReQL
r.table('users').filter(lambda user: user['age'] > 30).run(conn)
# ou sem lambda
r.table('users').filter(r.row['age'] > 30).run(conn)
Query avançada
RethinkDB Query LanguageReQL
#matematica
(r.expr(2) + 2 / 2).run(conn)
#condicional
(r.expr(2) > 3).run(conn)
Divertido
RethinkDB Query LanguageReQL
r.table_create('fib').run(conn) r.table('fib').insert([{'id': 0, 'value': 0}, {'id': 1, 'value': 1}]).run(conn) r.expr([2, 3, 4, 5, 6, 7, 8, 9, 10, 11]).for_each(lambda x: r.table('fib').insert({'id': x, 'value': (r.table('fib').order_by('id').nth(x - 1)['value'] + r.table('fib').order_by('id').nth(x - 2)['value']) })).run(conn) r.table('fib').order_by('id')['value'].run(conn)
Divertido #fibonacci
BACKEND DO IOT
COMENTÁRIOS SOBRE O RETHINKDB▸ É preciso criar o banco e as tabelas manualmente
▸ Não existe o .stats() como no mongodb.
▸ Prioriza consistência em vez de velocidade
▸ Não tem muito suporte pra rodar em Windows
▸ NASA tá usando pra integração de dados
▸ A empresa que criou e estava por trás do projeto faliu
▸ Agora o projeto é mantido 100% pela comunidade
CASES
HACKED VENDING MACHINE
ESP8266
INTERNET
ARDUINO
MOTORES
CHUTE SENSOR
TELEGRAM API
CHAT BOT
USUÁRIO
Celular
Vending Machine
ESTRUTURA
CASES
PONTOS CEGOS
SD CARD
PARSING & UPLOAD
ARDUINO
LEDS
SENSORES
TELEGRAM API
CHAT BOT
USUÁRIO
Celular
Capacete
ESTRUTURA
BOTÃO
GPS
RETHINKDB
OPEN STREET MAPS
CASES
PLUVI.ONESTRUTURA
ESP8266TEMPERATURA
HUMIDADE
TELEGRAM API
CHAT BOT
USUÁRIO
Celular
Pluviometro
CHUVA
RETHINKDB
FALCON
Consumo da API Rest
MAPS APPS
SITES
TELEGRAM BOTS
CONSUMINDO A API
PHP PYTHON JAVA
C#
RUBY
GO
LUA
NODEJS
HASKELL
JAVA
TELEGRAMBOTS
TELEGRAM.BOT
TELEGRAMBOT
TBOTAPI
LUA-TELEGRAM-BOT
TELEGRAM-NODE-BOT
HASKELL-TELEGRAM-API
TELEGRAMBOTS
TWX.BOTAPI
TELEPOT
TELEGRAM BOT SERVICE
HELLOBOT
SIMPLE POLL BOT
BOT API PHP SDK
TÁ TUDO NO GITHUB!
Top Related