Detalhe: Caso não saiba PHP, recomendo o curso gratuito do famoso Gustavo Guanabara ou do link abaixo:
Para com questão do Framework PHP, o Laravel, indico duas (dois mini cursos) playlist no Youtube:
O seguinte tutorial será com o Framework PHP Laravel, vejamos:
Web.php
No grupo das rotas do arquivo das rotas, o web.php adicione uma rota a uma página MQTT para acionar publish para o Embarcado:
// Grupo de rotas que dita todo fluxo de dados do site - web.php
Route::prefix('projetolaravel')->group(function(){
Route::get('/{id}/{var}/{salt}',[nomeController::class, 'mqtt'])->name('projetolaravel-mqtt')->middleware('auth');
});
nomeController.php
Precisamos efetuar a configuração no arquivo responsável pelo Controller, logo, em seu Controller adicione a função abaixo para efetuar um Publish (considerando que ):
// Função que vai publicar um dado via MQTT através da página de IoT
public function mqtt($id, $var, $salt){
$dados = Projetolaravel::where('id',$id)->first();
$key = $dados->key_produto;
$var = "teste";
return view('projetolaravel.publish',['key'=>$key, 'var '=>$var]);
}
publish.blade.php
O arquivo com o qual usaremos para apontar de acordo com essa roda é um .PHP que deve conter as seguintes configurações:
<?php
require('C:/xampp/php/hua/app/Models/phpMQTT.php');
// require('/var/www/html/hua/app/Models/phpMQTT.php');
$server = 'ENDERECOAQUI'; // change if necessary
$port = 1883; // change if necessary
$username = 'USUARIOBROKER'; // set your username
$password = 'SENHABROKER'; // set your password
$client_id = 'phpMQTT-publisher'; // make sure this is unique for connecting to sever - you could use uniqid()
$mqtt = new Bluerhinos\phpMQTT($server, $port, $client_id);
if ($mqtt->connect(true, NULL, $username, $password)) {
$mqtt->publish('fonte/acao/'.$key.'', $var, 0, false);
$mqtt->close();
echo "foi\n";
// echo $key;
} else {
echo "Time out!\n";
}
?>
Repare que na linha abaixo, caso estivermos em Linux (Unix), inverteremos qual linha utiliza comentário, pois precisamos deste phpMQTT.php para trabalhar com MQTT:
require('C:/xampp/php/hua/app/Models/phpMQTT.php');
// require('/var/www/html/hua/app/Models/phpMQTT.php');
Não esqueça de mudar o tópico e o payload em:
publish('fonte/acao/', $var_payload, 0, false)
Não esqueça de mudar o endereço do servidor em:
$server = 'ENDERECOAQUI';
Não esqueça de mudar as credenciais em:
$username = 'USUARIOBROKER';
$password = 'SENHABROKER';
E não menos importante, não esqueça de abrir a porta 1883 de sua VPS.
Um ponto interessante é que este módulo MQTT para o Laravel, só utilizo para Publish e não Subscribe, esse Subscribe será em Python.
Subscribe
Com relação ao subscribe em Python, já foi feito alguns materiais a respeito, vejamos:
IoT - Internet of Things - MQTT na prática (3/3)
Com isso, basta obter um exemplo genérico de como receber estes dados, e depois fazer a conexão com banco de dados com a biblioteca MySQLdb.
Caso ainda haja dúvidas, baixe nosso material e agende uma consultoria para obter uma senha ao baixar os arquivos necessários abaixo:
MQTT no Sketch
Quanto ao Sketch do embarcado, este vai seguir os seguintes scripts:
Repare que: o conteúdo da variável valor será enviado, este sendo um bom tipo de dado para se aprender, já que na maioria das vezes utilizaremos valores iguais a este, como por exemplo, temperatura:
int valor = 7;
Tudo que for para ser recebido, será o que estiver usando mesmo Broker e mesmo tópico.
Nenhum comentário:
Postar um comentário