这节让esp32通过wifi自己建立一个web server,就是自己建立一个网站服务器,就会有一个ip地址,在手机或电脑和esp32连接同一个wifi的情况下,让手机或电脑登录那个ip地址的网站就可以给esp32发送相应信息,esp32收到不同的信息执行不同操作,本代码就是实现控制开灯与关灯。
手机有一个快捷指令的应用,通过那里的设置可以改变siri的功能,选择添加项目,选文稿→文本,输入网站地址,如http://192.168.1.7/?led=on,再添加网络→获取URL内容,就可以通过siri控制esp32上的灯的亮灭。

try:import usocket as socket
except:import socketfrom machine import Pin
import network
'''
import esp
esp.osdebug(None)
'''
import gc
gc.collect()ssid = '***'             #wifi名称
password = '***'         #wifi密码station = network.WLAN(network.STA_IF)station.active(True)
station.connect(ssid,password)
while station.isconnected() == False:passprint('Connection successful')
print(station.ifconfig())led = Pin(12,Pin.OUT)def web_page():html = """<html><head><meta name="viewport"
content="width=device-width, initial-scale=1"></head><body><h1>Ojay Server</h1><a
href=\"?led=on\"><button>ON</button></a>&nbsp;<a
href=\"?led=off\"><button>OFF</button></a></body><html>"""return htmls = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('',80))
s.listen(5)while True:conn, addr = s.accept()print('Got a connection from %s' % str(addr))request = conn.recv(1024)request = str(request)print('Content = %s' % request)led_on = request.find('/?led=on')led_off = request.find('/?led=off')if led_on == 6:print('LED ON')led.value(1)if led_off == 6:print('LED OFF')led.value(0)response = web_page()conn.send('HTTP/1.1 200 OK\n')conn.send('Content-Type: text/html\n')conn.send('Connection: close\n\n')conn.send('HTTP/1.1 200 OK\n')conn.sendall(response)conn.close()

代码改一个wifi的名称和密码就可以用了,运行后upycraft会打印出当前的ip地址,可以试着电脑登上该ip地址,你会发现可以在网页上控制灯的开关,那你已经成功了!改一下siri即可。


 
附上其他文章的链接:
《吃白菜一样用micropython玩esp32(一)—— 搭建环境》
《吃白菜一样用micropython玩esp32(二)—— 点灯大师》
《吃白菜一样用micropython玩esp32(三)—— 触摸按键、ADC》

吃白菜一样用micropython玩esp32(四)—— siri远程控制点灯相关推荐

  1. 吃白菜一样用micropython玩esp32(二)—— 点灯大师

    基础点灯 按上一节一般新建好文件夹选好串口后,输入下面的代码 import time #引入时间模块,才可以用延时函数 from machine import Pin #引入引脚模块,才可以控制esp ...

  2. 利用CH340C制作MicroPython ESP8266,ESP32的下载器-改进型

    简 介: 本文给出了利用CH340C芯片制作ESP32,ESP8266下载器的方法,并进行了实测测试. 关键词: ESP32,CH340C,MicroPython,下载器 ▌01 ESP的MicroP ...

  3. 物联网开发笔记(25)- 使用Micropython开发ESP32开发板之控制LCD1602显示屏

    这一节我们讲解了如何控制LCD1602显示屏,显示两行字. 一.目的 使用MicroPython开发ESP32开发板控制LCD1602显示屏 二.环境 ESP32 + LCD1602显示屏 + Tho ...

  4. 物联网开发笔记(64)- 使用Micropython开发ESP32开发板之控制ILI9341 3.2寸TFT-LCD触摸屏进行LVGL图形化编程:控件显示

    一.目的 这一节我们学习如何使用我们的ESP32开发板来控制ILI9341 3.2寸TFT-LCD触摸屏进行LVGL图形化编程:控件显示. 二.环境 ESP32 + ILI9341 3.2寸TFT-L ...

  5. 物联网开发笔记(77)- 使用Micropython开发ESP32开发板之使用MAX7219驱动控制8x8LED点阵模块(续)

    一.目的 这一节我们继续学习如何使用我们的ESP32开发板控制带MAX7219驱动的8x8LED点阵模.我们使用库来显示,更加方便. 二.环境 ESP32 + MAX7219驱动的8x8LED点阵模块 ...

  6. 物联网开发笔记(84)- 使用Micropython开发ESP32开发板之控制LCD12864液晶屏和AHT10温度传感器

    一.目的 这一节我们学习如何使用我们的ESP32开发板来学习LCD12864液晶屏和AHT10温度传感器的操作.  二.环境 ESP32 + Thonny + LCD12864液晶屏 + AHT10温 ...

  7. 物联网开发笔记(68)- 使用Micropython开发ESP32开发板之使用官方工具esptool烧录

    一.目的 这一节我们学习如何使用我们的ESP32开发板来烧录. 二.环境 ESP32 + esptool + Win10 + python3.10 + 其他工具. ESP32开发板购买地址: http ...

  8. 物联网开发笔记(27)- 使用Micropython开发ESP32开发板之控制240x240的oled屏幕(ST7789芯片)

    这一节我们讲解了如何控制240x240的oled屏幕,该oled屏幕驱动芯片是ST7789,我们控制屏幕显示两行字. 一.目的 使用MicroPython开发ESP32开发板控制240x240的ole ...

  9. 物联网开发笔记(24)- 使用Micropython开发ESP32开发板之控制8x8点阵屏

    上一节我们讲解了如何控制4位数码管,这一节我们来一起学一下如何控制8x8点阵屏显示流水灯和爱心. 一.目的 使用MicroPython开发ESP32控制8x8点阵屏 二.环境 ESP32 + 8x8点 ...

最新文章

  1. 为博客园博文添加目录的两种方法
  2. java 图片压缩100k_如何将图片压缩到100K以内,教你几种免费方法
  3. javascript闭包_JavaScript闭包教程–带有JS闭包示例代码
  4. maxN - 返回数组中N个最大元素 minN - 返回数组中N个最小元素
  5. python reduce函数_Python reduce()函数的用法小结
  6. raspberry pi_庆祝Raspberry Pi的14天
  7. Cortex-M3学习笔记(一)
  8. USACO section1.3 Barn Repair 修理牛棚(贪心)
  9. python抓取网站图片_利用python抓取网站图片
  10. Volley源码学习2--Error类
  11. RDS数据库全量恢复方案
  12. cnn初学者—从这入门_使用Tensorflow为初学者使用CNN进行简单图像分类
  13. 自学Python 57 多线程开发(七)使用 Connection对象和共享对象 Shared
  14. 深度学习中优化算法小结
  15. “追梦五年”主题征文『51CTO五周年庆』
  16. mysql show-warnings_MySQL-show warnings
  17. java利用ffmpeg将amr、caf转mp3格式
  18. 苹果id登录_英雄联盟手游是用苹果ID好还是拳头好 账号选择建议
  19. 数字信号处理基础----FM的调制与解调(1)
  20. eclipse自动关闭解决方案

热门文章

  1. 春招秋招笔试面试时间(2020年)
  2. Redis资料汇总(二) 数据类型
  3. linux编译obs,如何在Ubuntu 18.04/16.04中安装OBS Studio 21.1
  4. Codeforces 1292C Xenon's Attack on the Gangs
  5. 360浏览各模式及内核的使用说明
  6. Dev的panelcontrol
  7. JAVA虚拟机、Dalvik虚拟机和ART虚拟机
  8. 如何使用SRT字幕,导入字幕到视频中
  9. js正则表达式 URL格式匹配详解
  10. 嵌入式软硬件模块化开发和工具性总结