悦跑圈网:

鱼缸插排维修继电器乱跳开关鱼缸无线继电器

   时间:2024-11-29 阅读:

上一期聊了如何通过树莓派控制继电器开关水泵,一方面成本有点高, 二是通过有线连继电器可能不方便, 本次就是解决这两个问题,通过手机或电脑无线控制继电器开关水泵. 上 图是原理图, 下图是我的采购清单(超低成本).

上图中第一个是无线模块esp8266+相应的继电器. 无线模块用来连路由器及继电器.继电器在上篇说过,不再赘述. 上图中第二个是无 线模块烧写器. 也就是把无线模块连接烧写模块, 再把烧写模块连到电脑上烧写程序.

不要被上边的描述唬住,其实很简单,过程图如下:

采购元件参考第2张图,总价不超20元

esp8266-01sesp-01s继电器ch340C烧录器连接电脑把esp8266-01s插入 到ch340c,并把ch340c插入到电脑 ,如下

烧写程序敲黑板,这是本文的重点.

安装thonny下载地址:https://thonny.org/

根据自己的操作系统下载后, 直接安装就行.

下载并烧写固件下载地址: https://micropython.org/resources/firmware/esp8266-1m-20220618-v1.19.1.bin

这个固件你可以理解为esp8266-01的操作系统. 可以用thonny来安装

Port如果不知道,可以先把ch340c拔下来,看好列表里的项, 再插上, 看多出来的就是了. 最后点install or update MicroPython

firmware选刚才下载的固件的位置, 点install等待完成即可

烧写自己的控制代码在thonny中新建文件,保存到设备上即可.注意文件命名为main.py, 代码如下:

需要修改SSID为你的路由器名,及路由PWD改为你的路由器密码

import utime

import socket

from machine import Pin

from re import search

#开继电器 http://ip/relay?code=111&status=0

#关继电器 http://ip/relay?code=111&status=1

#关LED灯 http://ip/light?code=111&status=1

SSID="qingty9"

PWD="xxx;"

SECURE_CODE="t111w"

PORT=80

HEAD200='HTTP/1.1 200 OKrnServer: twEsp8266rn'

HEAD200+='Content-Type: text/html;charset=UTF-8rnConnection: closernrn'

#conntect to wifi

def doconnect():

import network

wlan=network.WLAN(network.STA_IF)

wlan.active(True)

if not wlan.isconnected():

print('connecting to network...')

wlan.connect(SSID,PWD)

start = utime.time()

while not wlan.isconnected():

utime.sleep(1)

if utime.time()-start>5:

print('connect time out !')

break

if wlan.isconnected():

print('network config:',wlan.ifconfig())

return wlan

#parse params to map

def parm_parse(qs):

parameters = {}

ampersandSplit = qs.split("&")

for element in ampersandSplit:

equalSplit = element.split("=")

parameters[equalSplit[0]] = equalSplit[1]

return parameters

wlan=doconnect()

webserver=socket.socket()

webserver.bind(('0.0.0.0',PORT))

webserver.listen(1)

relay=Pin(0,Pin.OUT)

led=Pin(2,Pin.OUT)

while True:

conn,addr = webserver.accept()

request=conn.recv(1024)

if len(request)>0:

request=request.decode()

result=search("(.*?) (.*?) HTTP/1.1",request)

url=result.group(2)

if url=='/favicon.ico':

pass

else:

print(url)

uri=url.split('?')[0]

param=parm_parse(url.split('?')[1])

if 'code' in param and param['code']==SECURE_CODE:

if uri=='/light':

if 'status' in param and param['status']=='0':

led.value(0) #或led.off()

else:

led.value(1)

conn.send(HEAD200+uri+'操作成功!')

elif uri=='/relay':

if 'status' in param and param['status']=='0':

relay.value(0)

else:

relay.value(1)

conn.send(HEAD200+uri+'操作成功!')

else:

conn.send(HEAD200+'未识别的指令!')

else:

conn.send(HEAD200+'安全码错误!')

else:

print('no request')

conn.close()

四.独立运行烧写好程序后,就可以脱离电脑,单独供电,放在它需要它的地方了.比如控制 水泵的开关. 把esp8266从ch340ch上拔下来,插到配套的继电器上,

具体接线,找一个不用的USB充电线剪开,为继电器和无线模块供电,一定要区分正负极,可参考<<如何区分手机充电线的正负极>> (或者用几节5号电池可以供电,方便随处移动)

接好通电后,可用手机或电脑访问局域网地址http://ip/relay?code=t111w&status=0 修改status为0或1来开关水泵了

那么问题来了,如果不在家如何控制它远程开关呢. 下期见!

-----------------end-----------------

欢迎各位补充指正! 如有疑问请留言!

原创不易,感谢各位 关注、点赞、评论、转发 !

网页设计的布局分为哪几类

怎么知道你优化关键词的难易程度

为什么网站要做301跳转有哪些好处

更多>最新资讯
全站最新
热门内容
百科知识 |  风水起名 |  健康养生 |  科技科学 |  法律知识 |  生活维修 |  旅游休闲 |  综合资讯 |