Estou fazendo um projeto de automação residencial com base em topologia em estrela. O que estou tentando conseguir é que um dos nodemcu / ESP8266 atue como um servidor acessível ao mundo externo e outro nodemcu / ESP8266 atue como clientes conectados a relés ou sensores.
Ao receber o comando do servidor, os relés devem ser acionados de acordo e atualizar o status novamente para o servidor. Eu li muitos tutoriais através de métodos diferentes. O MQTT parece bom, mas não quero usar nenhum corretor de terceiros como a Adafruit. Quero hospedar o servidor da web no meu nodemcu ou no meu host. A parte triste é que eu não possuo um Raspberry Pi.
Posso usar um dos meus dispositivos ESP8266 como um broker MQTT ou existe uma alternativa adequada?
smart-home
mqtt
esp8266
Rohit Mathur
fonte
fonte
Respostas:
Tecnicamente falando, sim, um ESP8266 poderia atuar como um intermediário MQTT. De fato, alguém já tentou ! No final de seu projeto , eles alegaram ter um broker que pode fazer a ponte para um broker MQTT em nuvem, com uma interface da web e uma quantidade razoável de tempo de atividade. Nos comentários, eles dizem que o código é proprietário, portanto você não poderá usá-lo exatamente, mas serve como prova de conceito se realmente quiser usar um ESP8266.
No entanto, o uso de um ESP8266 como corretor provavelmente será muito trabalhoso . Usar um Pi, como sugerido por MatsK , seria muito mais fácil e, embora as unidades Raspberry Pi sejam um pouco mais caras (entre £ 5 e £ 25 + postagem, dependendo do modelo escolhido), você economizará muito tempo . Com um Pi, você pode apenas usar um corretor estabelecido como o Mosquitto . Em um ESP8266, não há chance de o Mosquitto ser executado, e você provavelmente teria que escrever seu próprio corretor ou usar um bem menos confiável.
Como alternativa, você pode conectar todos os seus ESP8266s diretamente a um serviço de nuvem como o AWS IoT . Isso simplifica sua configuração, mas significa que todas as solicitações são roteadas pela Internet e você não pode controlar os dispositivos localmente. Se sua conexão à Internet for interrompida usando essa abordagem, você também não terá controle sobre os dispositivos.
fonte
Minha sugestão seria um corretor MQTT de mosquito em um Raspberry Pi.
Há um artigo aqui https://tech.scargill.net/a-christmas-script/ em que Peter Scargill criou um script que instala todos os componentes e dependências necessários.
Dê uma olhada no Node-red. Com ele, você pode criar uma lógica para complementar seu projeto.
Atualizações:
Acabei de encontrar um broker ESP8266 MQTT, disponível gratuitamente. Isso eu tenho que tentar ....
https://www.youtube.com/watch?v=0K9q4IuB_oA
https://github.com/martin-ger/esp_mqtt
fonte
Além das respostas e comentários que recomendam o uso de um Raspberry Pi por causa dos recursos limitados do ESP8266, geralmente faria sentido usar o ESP32 , o sucessor não oficial do ESP8266. Por ser dual-core + 3x mais RAM, ele corrige problemas de conexão WiFi que aumentavam quando o tamanho dos programas do usuário.
Na faixa de preço, é apenas alguns dólares mais caro que o ESP8266 e significativamente mais barato que o do RaspberryPi (pelo menos até que o zero caia no preço). As outras respostas devem ser cobertas pelo lado do software.
fonte
Além do que as outras excelentes respostas já declararam, o uso de um ESP8266 como seu broker MQTT é menos do que o ideal pelo simples motivo de que não possui os requisitos do sistema para executar a velocidade. Alguém no Github estava tentando uma façanha semelhante, e disseram:
Repito as outras ótimas respostas: compre um Raspberry Pi ou outro computador barato para atuar como seu corretor. O ESP simplesmente não possui as especificações para um bom desempenho.
fonte
Existe uma biblioteca compatível com o arduino, agradável e funcional, com um pequeno broker MQTT que roda no ESP8266:
fonte
Você pode usar um ESP8266 como intermediário MQTT. Ele suporta 20 dispositivos, websockets e conexão de ponte a uma instância do MQTT na nuvem que fornece websockets e SSL do MQTT.
Em três minutos, você pode ter um broker MQTT totalmente funcional. Confira a plataforma iotcentral.eu. Faça uma conta e você está pronto.
fonte