转载请注明文章来源,更多教程可自助参考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)

  1. import socket #导入socket通信库
  2. import machine
  3. from machine import Pin
  4.  
  5. g4 = Pin(4,Pin.OUT)
  6. g5 = Pin(5,Pin.OUT)
  7. g12 = Pin(12,Pin.OUT)
  8. g13 = Pin(13,Pin.OUT)
  9.  
  10. def Go():
  11. g4.value(1)
  12. g5.value(0)
  13. g12.value(1)
  14. g13.value(0)
  15. def Back():
  16. g4.value(0)
  17. g5.value(1)
  18. g12.value(0)
  19. g13.value(1)
  20.  
  21. def Left():
  22. g4.value(1)
  23. g5.value(0)
  24. g12.value(0)
  25. g13.value(0)
  26. def Right():
  27. g4.value(0)
  28. g5.value(0)
  29. g12.value(1)
  30. g13.value(0)
  31. def Stop():
  32. g4.value(0)
  33. g5.value(0)
  34. g12.value(0)
  35. g13.value(0)
  36. #-----------------------HTTP Server-----------------------#
  37. #ap模式下,默认ip地址为192.168.4.1
  38. addr = ('192.168.4.1',80) #定义socket绑定的地址,ip地址为本地,端口为80
  39. s = socket.socket() #创建一个socket对象
  40. s.bind(addr) #绑定地址
  41. s.listen(5) #设置允许连接的客户端数量
  42. print('listening on:', addr)
  43. while True:
  44. cl, addr = s.accept() #接受客户端的连接请求,cl为此链接创建的一个新的scoket对象,addr客户端地址
  45. print('client connected from:', addr)
  46. cl_file = cl.makefile('rwb', 0) #返回与socket对象关联的文件对象。rwb:支持二进制模式的读写操作 0:默认值,不支持缓存
  47. req = b''
  48. while True:
  49. line = cl_file.readline() #读取发送过来的数据,直到\r\n换行结束
  50. if not line or line == b'\r\n':
  51. break
  52. req += line
  53. print("Request:")
  54. req=req.decode('utf-8').split('\r\n')
  55. #http header 解析
  56. req_data=req[0].lstrip().rstrip().replace(' ','').lower()
  57. print(req_data)
  58. if req_data.find('favicon.ico')>-1:
  59. cl.close()
  60. continue
  61. else:
  62. req_data=req_data.replace('get/?','').replace('http/1.1','')
  63. index = req_data.find('key=')
  64. value = req_data[index+4:index+6].lstrip().rstrip()
  65. print('key:',value)
  66. if value == 'go':
  67. Go()
  68. elif value == 'ba':
  69. Back()
  70. elif value == 'le':
  71. Left()
  72. elif value == 'ri':
  73. Right()
  74. else:
  75. Stop()
  76. with open("control.html", 'r') as f:
  77. for line in f:
  78. cl.send(line)
  79. #cl.send(response) #返回html网页的数据
  80. 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远控小车的更多相关文章

  1. [Micropython]TPYBoard v202 利用单片机快速实现家庭智能控制平台

    一提到智能家庭,大家可能首先想到的是各种大佬级公司搞的牛逼产品,或者说是创新产品.想想就觉得很复杂,有的用工控机,有的用树莓派,还有的用arduino,不管用什么,都绕不过服务器进行控制,比如yeel ...

  2. [Micropython]TPYBoard v202 v102+v202 家庭无线温湿度检测

     一.实验器件 1.TPYBoard v102 1块 2.TPYBoard v202 1块 3.Nokia 5110LCD显示屏 1块 4.DHT11温湿度传感器 1个 5.micro USB 数据线 ...

  3. micropython TPYBoard v202 超声波测距

    实验目的 了解超声波模块的工作原理 学习使用超声波模块测量距离 实验器材 TPYBoard v202 1块 超声波模块(HC-SR04)1个 micro USB数据线 1条 杜邦线 若干 超声波模块的 ...

  4. 小试牛刀 WiFi 远控 + wendu

    废话 少说 直接上代码 DH11三根线  信号线 接2 WiFi 模块  r-------t t--------r en&vcc------3.3v 剩下的 共地的啦 double Fahre ...

  5. 邪恶改装:TPYBoard制作廉价WIFI干扰器

    转载请注明:@小五义http://www.cnblogs.com/xiaowuyi 0X01 引言 想不想搞个WIFI干扰器?网上搜集了一下资料,发现用esp8266可以实现简单的干扰功能,包括断网. ...

  6. Python3实现ICMP远控后门(上)

    这几天一直在研究远控木马的一些通信协议,比如TCP,UDP,ICMP,DNS,HTTP等等,对于TCP,UDP这两种就不讲解了,因为太常见了. 大家可能对采用ICMP,DNS的木马不是很熟悉,其实这两 ...

  7. Python3实现ICMP远控后门(上)_补充篇

    ICMP后门(上)补充篇 前言 在上一篇文章Python3实现ICMP远控后门(上)中,我简要讲解了ICMP协议,以及实现了一个简单的ping功能,在文章发表之后,后台很多朋友留言,说对校验和的计算不 ...

  8. Python3实现ICMP远控后门(中)之“嗅探”黑科技

    ICMP后门 前言 第一篇:Python3实现ICMP远控后门(上) 第二篇:Python3实现ICMP远控后门(上)_补充篇 在上两篇文章中,详细讲解了ICMP协议,同时实现了一个具备完整功能的pi ...

  9. Python3实现ICMP远控后门(下)之“Boss”出场

    ICMP后门 前言 第一篇:Python3实现ICMP远控后门(上) 第二篇:Python3实现ICMP远控后门(上)_补充篇 第三篇:Python3实现ICMP远控后门(中)之"嗅探&qu ...

随机推荐

  1. 如何用简单易懂的例子解释条件随机场(CRF)模型?它和HMM有什么区别?

    https://www.zhihu.com/question/35866596/answer/418341940

  2. H3C 帧中继基本配置命令(续)

  3. spark mllib docs,MLlib: RDD-based API

    MLlib: RDD-based API This page documents sections of the MLlib guide for the RDD-based API (the spar ...

  4. poj 2993

    跟poj 2996反过来了,这里比较麻烦的就是处理白棋和黑棋各棋子对应的位置 还有在最后打印棋盘式|,:,.的时候会有点繁琐(- - ACMer新手 ): 直接看代码吧: #include<cs ...

  5. [转]vue router基本使用

    第一步:安装 cnpm install vue-router --save 路由配置基本语法 router下index.js引入 import Vue from "vue"; im ...

  6. electron-vue 窗口拖拽及自定义边框,及关闭缩小放大化方法

    1.窗口的最小化按钮和关闭按钮以及标题栏自定义,不使用 electron 自身携带的原生标题栏 在src文件夹下main下index.js文件添加 mainWindow = new BrowserWi ...

  7. 浏览器的内核分别是什么?经常遇到的浏览器的兼容性有哪些?原因,解决方法是什么,常用hack的技巧 ?

    * IE浏览器的内核Trident. Mozilla的Gecko.google的WebKit.Opera内核Presto: * png24为的图片在iE6浏览器上出现背景,解决方案是做成PNG8. * ...

  8. 裁剪nutch 8步骤

    裁剪nutch 8步骤

  9. 游戏《Minecraft》或其他应用程序 实现 自动更新 客户端版本

    本渣又来写(水)博客了. 先说一下,我这个解决方案的安全性并不是企业级的,咱们就是一群穷开服的Minecraft玩家. 如果你要投入到企业级应用(容易被黑客攻击的场景),请自己写,思路凑合看看.不然安 ...

  10. Java虚拟机-字节码执行引擎

    概述 Java虚拟机规范中制定了虚拟机字节码执行引擎的概念模型,成为各种虚拟机执行引擎的统一外观(Facade).不同的虚拟机引擎会包含两种执行模式,解释执行和编译执行. 运行时帧栈结构 栈帧(Sta ...