【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公众号中……

00:00/00:00

歪克士

每一个人都是一座孤岛,你,我,和他们……

发表评论

电子邮件地址不会被公开。 必填项已用*标注

微信扫一扫,分享到朋友圈

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

显示

忘记密码?

显示

显示

获取验证码

Close