【ESP8266学习记录-2】使用MicroPython给我的鱼缸远程增氧-基于MQTT

我有一个小鱼缸,在鱼缸里面生活着快乐的十多条孔雀鱼。 很多时候我并不能及时的给鱼增氧,只能通过远程控制。 前后我想过很多方法,甚至有想通过NRF24L01模块进行远程控制…… 后来终于选定通过MQTT协议来进行控制。

  1,准备 一个鱼缸,几条鱼,ESP8266模块(博主NodeMcu),一个LINUX 系统的VPS(百度云,腾讯云,阿里云等都可以),一个增氧泵,一个继电器 2,搭建MQTT服务器 博主采用Emq程序来搭建服务器(https://www.emqx.io/cn

2.1,下载

EMQ X 消息服务器每个版本会发布 CentOS、Ubuntu、Debian、FreeBSD、macOS、Windows 、openSUSE 平台程序包与 Docker 镜像。

下载地址: https://www.emqx.io/downloads

2.2 ,安装

具体安装过程建议查阅EMQTT官方文档,博主更倾向于RPM方法,所以在此处只截屏介绍RPM安装方法。中文版文档地址为:https://developer.emqx.io/docs/broker/v3/cn

3,microPython MQTT 代码

#核心代码 from machine import Pin def callback_function(topic,msg):#条件判断后是否进行程序执行–在本程序中功能为:是否开启或者关闭增氧机

a=Pin(4,Pin.OUT)

if msg==b”on”:

a.value(1)

else:

a.value(0)

def mqtt_connect():

from umqtt.simple import MQTTClient as mqtt

c = mqtt(“”,server=”XXX.XXX.XXX.XXX”,port=1883,user=”Your user name”,password=”Your password”)

c.set_callback(callback_function)#执行的功能

c.connect()

c.subscrib(“fish”)#订阅什么主题

try:

while 1:

c.wait_msg()

finally:

c.disconnect()

4,硬件连接 连接方式与普通的继电器连接无异,+,-,in(连接在ESP8266的4号,因为我上面定义的从4号IO输出) 因为增氧泵功率过大,所以单纯一个ESP8266无法满足,所以只能通过继电器来控制增氧泵的通断。如果控制农用水泵,最好再增加一个接触器。 5,调试 电脑上使用MQTT.FX 工具,发布一个topic为on 的信息,增氧泵就会工作啦,发布其他任意信息增氧泵就会停止工作。 未来几周我会将远程控制的功能整合在Help-Hero公众号中……


【ESP8266学习记录-2】使用MicroPython给我的鱼缸远程增氧-基于MQTT
https://www.wicos.me/yingjian/692/
作者
Wicos
发布于
2019年5月23日
许可协议