[Micropython]TPYBoard v202 智能WIFI远控小车
转载请注明文章来源,更多教程可自助参考docs.tpyboard.com,QQ技术交流群:157816561,公众号:MicroPython玩家汇
前言
----------------------
之前有过用TPYBoard v102制作的各种各样功能的智能小车,比如自动寻迹、自动避障、手机蓝牙遥控等。想着还缺个WIFI控制的,那就用TPYBoard v202做一个吧。
设计思路
-------------------------
WIFI是目前最有广泛运用的一项无线网络传输技术,覆盖范围广,可远程。本次实现了远程WIFI控制,不仅可以在家里操作,还可以接入一些云平台,实现远程操控。具体思路如下:
1、TPYBoard v202作为整个小车的核心控制部分,连接L298N电机驱动模块,实现小车的基本方向控制;
2、TPYBoard v202接入网络,开启Socket服务实现web服务器功能;
3、手机接入同一局域网,可通过浏览器访问控制页面,进行小车控制。
所需器件
---------------------------------
- TPYBoard v202开发板 1块
- USB数据线(MicroUSB) 1条
- L298N电机驱动模块 1个
- 小车套件包(底板、电机等) 1个
- 18650电池 2节
- 18650电池盒 1个
程序源码
----------------------------------
TPYBoard v202 源代码(main.py)
import socket #导入socket通信库
import machine
from machine import Pin g4 = Pin(4,Pin.OUT)
g5 = Pin(5,Pin.OUT)
g12 = Pin(12,Pin.OUT)
g13 = Pin(13,Pin.OUT) def Go():
g4.value(1)
g5.value(0)
g12.value(1)
g13.value(0)
def Back():
g4.value(0)
g5.value(1)
g12.value(0)
g13.value(1) def Left():
g4.value(1)
g5.value(0)
g12.value(0)
g13.value(0)
def Right():
g4.value(0)
g5.value(0)
g12.value(1)
g13.value(0)
def Stop():
g4.value(0)
g5.value(0)
g12.value(0)
g13.value(0)
#-----------------------HTTP Server-----------------------#
#ap模式下,默认ip地址为192.168.4.1
addr = ('192.168.4.1',80) #定义socket绑定的地址,ip地址为本地,端口为80
s = socket.socket() #创建一个socket对象
s.bind(addr) #绑定地址
s.listen(5) #设置允许连接的客户端数量
print('listening on:', addr)
while True:
cl, addr = s.accept() #接受客户端的连接请求,cl为此链接创建的一个新的scoket对象,addr客户端地址
print('client connected from:', addr)
cl_file = cl.makefile('rwb', 0) #返回与socket对象关联的文件对象。rwb:支持二进制模式的读写操作 0:默认值,不支持缓存
req = b''
while True:
line = cl_file.readline() #读取发送过来的数据,直到\r\n换行结束
if not line or line == b'\r\n':
break
req += line
print("Request:")
req=req.decode('utf-8').split('\r\n')
#http header 解析
req_data=req[0].lstrip().rstrip().replace(' ','').lower()
print(req_data)
if req_data.find('favicon.ico')>-1:
cl.close()
continue
else:
req_data=req_data.replace('get/?','').replace('http/1.1','')
index = req_data.find('key=')
value = req_data[index+4:index+6].lstrip().rstrip()
print('key:',value)
if value == 'go':
Go()
elif value == 'ba':
Back()
elif value == 'le':
Left()
elif value == 'ri':
Right()
else:
Stop()
with open("control.html", 'r') as f:
for line in f:
cl.send(line)
#cl.send(response) #返回html网页的数据
cl.close() #关闭socket
硬件的连接
----------------------------
网页效果
-------------------------
演示效果
-------------------------
`点击观看视频 <http://mpvideo.qpic.cn/0bf2hqaaeaaaveaa3ui5h5pfapgdai6aaaqa.f10002.mp4?dis_k=75bc9f531e0fe018cfc344a63c5fdc1d&dis_t=1579070805>`_
源码下载
--------------
`下载源码 <https://github.com/TPYBoard/TPYBoard-v202/tree/master/12.%E6%99%BA%E8%83%BDWIFI%E8%BF%9C%E6%8E%A7%E5%B0%8F%E8%BD%A6>`_
[Micropython]TPYBoard v202 智能WIFI远控小车的更多相关文章
- [Micropython]TPYBoard v202 利用单片机快速实现家庭智能控制平台
一提到智能家庭,大家可能首先想到的是各种大佬级公司搞的牛逼产品,或者说是创新产品.想想就觉得很复杂,有的用工控机,有的用树莓派,还有的用arduino,不管用什么,都绕不过服务器进行控制,比如yeel ...
- [Micropython]TPYBoard v202 v102+v202 家庭无线温湿度检测
一.实验器件 1.TPYBoard v102 1块 2.TPYBoard v202 1块 3.Nokia 5110LCD显示屏 1块 4.DHT11温湿度传感器 1个 5.micro USB 数据线 ...
- micropython TPYBoard v202 超声波测距
实验目的 了解超声波模块的工作原理 学习使用超声波模块测量距离 实验器材 TPYBoard v202 1块 超声波模块(HC-SR04)1个 micro USB数据线 1条 杜邦线 若干 超声波模块的 ...
- 小试牛刀 WiFi 远控 + wendu
废话 少说 直接上代码 DH11三根线 信号线 接2 WiFi 模块 r-------t t--------r en&vcc------3.3v 剩下的 共地的啦 double Fahre ...
- 邪恶改装:TPYBoard制作廉价WIFI干扰器
转载请注明:@小五义http://www.cnblogs.com/xiaowuyi 0X01 引言 想不想搞个WIFI干扰器?网上搜集了一下资料,发现用esp8266可以实现简单的干扰功能,包括断网. ...
- Python3实现ICMP远控后门(上)
这几天一直在研究远控木马的一些通信协议,比如TCP,UDP,ICMP,DNS,HTTP等等,对于TCP,UDP这两种就不讲解了,因为太常见了. 大家可能对采用ICMP,DNS的木马不是很熟悉,其实这两 ...
- Python3实现ICMP远控后门(上)_补充篇
ICMP后门(上)补充篇 前言 在上一篇文章Python3实现ICMP远控后门(上)中,我简要讲解了ICMP协议,以及实现了一个简单的ping功能,在文章发表之后,后台很多朋友留言,说对校验和的计算不 ...
- Python3实现ICMP远控后门(中)之“嗅探”黑科技
ICMP后门 前言 第一篇:Python3实现ICMP远控后门(上) 第二篇:Python3实现ICMP远控后门(上)_补充篇 在上两篇文章中,详细讲解了ICMP协议,同时实现了一个具备完整功能的pi ...
- Python3实现ICMP远控后门(下)之“Boss”出场
ICMP后门 前言 第一篇:Python3实现ICMP远控后门(上) 第二篇:Python3实现ICMP远控后门(上)_补充篇 第三篇:Python3实现ICMP远控后门(中)之"嗅探&qu ...
随机推荐
- activiti工作流-概述
1 应用场景 1.1 业务流程 采购系统完成了企业的日常采购管理,包括采购单管理.采购单审核.入库.结算等模块. 用户角色包括:员工.部门经理.总经理.财务. 基本业务流程如下: 1.2 ...
- Vue之webpack的安装与配置及其简单应用
一.文件结构 二.index.html <!DOCTYPE html> <html lang="en"> <head> <meta cha ...
- LINUX内核参数调优集锦
1.linux内核参数注释 2.两种修改内核参数方法 3.内核优化参数生产配置 1.linux内核参数注释 以下表格中红色字体为常用优化参数 根据参数文件所处目录不同而进行分表整理 下列文件所在目录: ...
- css页面去除滚动条
注:滚动条是导致页面切换标签页闪动的原因 html{ /*隐藏滚动条,当IE下溢出,仍然可以滚动*/ -ms-overflow-style:none; /*火狐下隐藏滚动条*/ overflow:-m ...
- H3C网络监测工具命令
1.Debugging 2.Display debugging 3.Display diagnostic-information display diagnostic-information 命令用来 ...
- ES6/ES7/ES8新特性
ES6 变量的改变 let const 2. 字符串新增方法 let str = 'react'; str.includes('re') // true str.repeat(3) // reactr ...
- 备战省赛组队训练赛第六场(UPC)
传送门 外来博客题解1:戳这里 外来博客题解2:戳这里 CRWG全方位题解:戳这里
- CodeForces 1096D(线性dp)
传送门 •题意 给出一个长度为n的字符串s,对于每个$s_{i}$有$a_{i}$的价值 让你删除最小的价值,使得字符串中不存在$hard$这个子序列 •思路 设dp[1]是不存在以$h$为前缀的最小 ...
- <Standard Template Library>标准模板库专项复习总结(一)
看了看博客园的申请时间也一年多了...想想自己一年多以来一直处于各种划水状态,现在又要面临ACM的冲击... 还是要抓紧时间赶紧复习一下了- -毕竟校园新生赛还是有奖金的.. 1.栈 先进后出(LIF ...
- 找不到 javax.servlet.http.HttpServletResponse 和 javax.servlet.http.HttpServletRequest 问题解决
时隔3个月,我又回来了!在做完毕设之后,由于对此过程中学到的一些东西疏于整理,所以当再次打开我的project时有些手足无措,以至于出现一些问题也要解决好半天,我知错! 今天的问题是: 开始搜到的解决 ...