MQTT – Conectando seu arduino à nuvem – PARTE 1

Fala galera!
Vou tentar quebrar em vários posts , pois sei que em um único post vai ficar bem chato de entender  e ler !!!
Depois de um tempo parado por falta de idéias, resolvi fazer uma série de posts sobre como colocar seu Arduíno na nuvem, fazendo uma entrada triunfal no enorme mundo da internet das coisas.

Mas ai vocês me perguntam:

O que é Internet das Coisas.
De um modo curto e grosso (até porque o intuito do blog não é vomitar teoria), IOT ou IDC traduzido são todos os periféricos que podem ser comunicáveis através da internet, seja uma caixa de som Bluetooth ,uma geladeira ou até mesmo sua cafeteira que esteja conectada à internet.
Ai que entra o tão famoso MQTT
MQTT obviamente não foi desenvolvido para essa atual finalidade. O MQTT é simplesmente um protocolo M2M lá da década de 90, ou seja comunicação simples e leve entre máquinas, já que não precisa ser nada compreensível à humanos, fica mais fácil enviar pacotes pequenos e leves para serem interpretados do outro lado, obviamente por outro computador.

Na imagem acima, podemos ver um método simples do funcionamento do MQTT, onde , um Arduíno emite para um servidor na nuvem o estado atual de um pino ou uma informação de qualquer tipo de sensor.

Por sua vez o servidor espalha esta informação para todos que estiverem ‘ouvindo’ ou seja , todos as camadas ou os canais que estiverem configurados à receber esta informação.

O que devemos saber antes de começar!

Acho que o principal é conseguir um servidor para instalar o mosquitto que é um ‘message broker’ open source que implementa o protocolo MQTT, facilitando e muito nosso processo de comunicação.

em qualquer linux você pode colocar {comando (yum , apt-get ou sei la o q)} install mosquitto.

Eu particularmente utilizo uma máquina da “Digital Ocean”, por ser um data center bem robusto  e além de ser muito bom , barato (5 dólares o mais básico) , tem um suporte maravilhoso e me ajudou sempre que precisei, caso se interesse entre neste link (Digital Ocean).

caso tenha dado tudo certo é só você ir em  sudo vim  /etc/mosquitto/conf/default.conf  (caso você esteja no raspberry e não tenha o vim instalado, PELAMOR de deus FAÇA, eu particularmente odeio o nano)

Se não existir o arquivo, nele deverá conter as portas que você irá escutar no mosquitto e também configurar o protocolo websockets, para habilitar a conexão via web.

ficará mais ou menos assim

listener 8083
protocol websockets

Se você é uma pessoa que confia no mundo e em todos ao seu redor, você já pode parar por aqui. Mas se você é uma pessoa que desconfia até da sua própria sombra, é melhor colocarmos uma senha para acesso ao protocolo né ?

então utilizaremos o seguinte comando.

sudo mosquitto_passwd -c /etc/mosquitto/senha_mosquitto meuUsuario

onde obviamente “meuUsuario” é um usuário a sua escolha, irá pedir para digitar uma senha, lembre dela com carinho.

agora volte lá no arquivo /etc/mosquitto.conf.d/default.conf

e adicione as seguintes linhas:

allow_anonymous false
password_file /etc/mosquitto/senha_mosquitto

isso fará com que você proteja seu servidor e ninguém fique tentando se conectar diretamente.

quer fazer um teste antes de reiniciar o serviço ? pois se reiniciar todas essas configurações  serão aplicadas.

execute isso no seu console onde está instalado o mosquitto.

mosquitto_pub -h localhost -t “test” -m “raspibr”

muito provavelmente você conseguiu conectar, e é isso que todos os outros clientes pelo mundo tentarão fazer.

agora digite: sudo systemctl restart mosquitto e repita o comando:

mosquitto_pub -h localhost -t “test” -m “raspibr”
Connection Refused: not authorised.
Error: The connection was refused.

Beleza! seu mosquitto está protegido e habilitado ao websockets!

No próximo post colocarei como configurar o arduino para acessar o servidor na nuvem!
Valeu e não se esqueçam de comentar e até mais!