【MQTT】mqtt + go + M5Stack + SSR 远程灯控程序
1. mqtt服务搭建
参考上一篇文章【MQTT】mqtt 服务器部署--go 生产和消费demo_平静不绝望的博客-CSDN博客
2. M5stack 烧录和编程
详细文档:m5-docs
mac 需要安装USB驱动 和 m5burner 如下图
3. flow ui 编程 + SSR
4. go web远程代码
s.Router.HandleFunc("/switch_light", middlewares.SetMiddlewareJSON(s.SwitchLight)).Methods("GET")
func (server *Server) SwitchLight(w http.ResponseWriter, r *http.Request) {
switchOpen := make(map[string]string)
switchCount = switchCount + 1
text := fmt.Sprintf("%d", switchCount)
token := mqtt.ProducerMqtt.Publish("topic/test", 0, false, text)
token.Wait()
switchOpen["switchCount"] = text
if token.Error() != nil {
switchOpen["error"] = token.Error().Error()
} else {
switchOpen["success"] = "good!"
}
responses.JSON(w, http.StatusOK, switchOpen)
}
5. 实测效果
web访问:http://144.xx.99.xx:3000/switch_light
0:关灯
再次访问: http://144.xx.99.xx:3000/switch_light
1:开灯
6. 小结
- 远程控制开关,就想计算机界的0和1,虽然简单但链路完整;
- 后面拓展图形化UI控制家居,其实思路就打开了;
- SSR只是其中一个单元,有几十种单元可以使用;
- M5Stack Plus 139¥价格还是不亲民,SSR 49 也是有点小贵的;