X
首页
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
最能打国产芯
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
最能打国产芯
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
最能打国产芯
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
最能打国产芯
DigiKey得捷技术专区
[作品提交] 【得捷电子Follow me第3期】任务4:连接WiFi网络并联网获取地区温度
SeasonMay
2023-11-16 10:18
楼主
XIAO开发板板载完整的WiFi子系统:符合IEEE 802.11b/g/n协议,支持Station模式、SoftAP模式、SoftAP+Station模式、混杂模式 在MicroPython中,`network.WLAN` 类提供了对Wi-Fi功能的访问。`network.WLAN(network.STA_IF)` 表示创建一个支持Wi-Fi站点(station)模式的WLAN对象。 在Wi-Fi通信中,有两种常见的模式: 1. **AP模式(Access Point,热点模式):** 在这种模式下,设备充当Wi-Fi网络的访问点,允许其他设备连接到它并访问其提供的服务。 2. **Station模式:** 在这种模式下,设备通过Wi-Fi连接到现有的Wi-Fi网络,就像智能手机或计算机一样。设备可以获取IP地址,然后使用Wi-Fi访问互联网或局域网。 下面用station模式进行联网并通过OpenWeather获取南京地区的温度信息: ```python import urequests import json import machine import time from machine import Pin, SoftI2C import ssd1306 from time import sleep import network import ujson # 设置I2C总线并初始化OLED i2c = SoftI2C(scl=Pin(7), sda=Pin(6)) oled_width = 128 oled_height = 64 oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c) oled.text('Connecting', 10, 10) oled.show() # 连接到Wi-Fi网络: station = network.WLAN(network.STA_IF) station.active(True) wifi_ssid = "WIFI 名称" wifi_password = "WIFI 密码" print("Scanning for WiFi networks, please wait...") while not station.isconnected(): print("Connecting...") station.connect(wifi_ssid, wifi_password) time.sleep(10) # 连接成功后提示 print("Connected!") print("My IP Address:", station.ifconfig()[0]) oled.text('IP Address:', 10, 20) oled.text(f'{station.ifconfig()[0]}', 10, 30) oled.show() # OpenWeatherMap API配置 api_key = '91b11ec3b5e472da6de9ea15948f05d3' city = 'Nanjing' country_code = 'CN' unit = 'metric' # 使用摄氏度 # 构建API请求URL weather_url = 'http://api.openweathermap.org/data/2.5/weather?q={},{}&units={}&appid={}'.format(city, country_code, unit, api_key) # 发送HTTP GET请求 response = urequests.get(weather_url) weather_data = json.loads(response.text) print(weather_data) # 解析响应并获取温度 if 'main' in weather_data and 'temp' in weather_data['main']: temperature = weather_data['main']['temp'] print('Current Temperature in Nanjing:', temperature, 'Celsius') oled.text(f'NJ: {temperature} C', 10, 40) oled.show() else: print('Failed to retrieve temperature data') ``` 成功联网显示IP地址(我连的是手机热点):
后续联网成功后会调用api获取天气信息,我这里是获取的南京当前的温度信息
本帖最后由 SeasonMay 于 2023-11-16 10:21 编辑
点赞
回复评论 (2)
沙发
Jacktang
用station模式进行联网并通过OpenWeather获取好像好操作一些
点赞
2023-11-18 09:48
板凳
chejm
楼主辛苦了,感谢楼主提供的这么好的技术分享,顶起来
点赞
2023-11-18 21:16
最新活动
免费申请 | 上百份MPS MIE模块,免费试用还有礼!
TI 有奖直播 | 使用基于 Arm 的 AM6xA 处理器设计智能化楼宇
Follow me第二季第3期来啦!与得捷一起解锁高性能开发板【EK-RA6M5】超能力!
报名直播赢【双肩包、京东卡、水杯】| 高可靠性IGBT的新选择——安世半导体650V IGBT
30套RV1106 Linux开发板(带摄像头),邀您动手挑战边缘AI~
安世半导体理想二极管与负载开关,保障物联网应用的稳健高效运行
随便看看
目前SensorTile可加入生物识别传感器平台吗?
家电零售双寡头可能共谋
一个奇怪的问题,一个有符号的32位数与一个无符号的32号位比较大小的结果 是错误的
认识一下PADS 9.3
DZK后缀的文件用什么软件开
理解下一代数据采集技术
launchpad 按键控制LED
数字信号处理的FPGA实现(好书共享)
关于步进电机的疑问
便携设备的供电问题如何解决
关于没有通电的FPGA自动工作的奇怪现象
ADS803的用法
电容的基本知识(致初学者)
集成电路运算放大器
关于msp430 Timer_A定时器中断溢出
求一张PCB图,原理图已给出,急!急!急!
arm9 自己编译的2.6.12内核 屏幕整体左移
模拟电路基础教程
谁用DSP做过无线识别方面的东西??
【武汉华嵌】Ubuntu下各网络服务器配置小结
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复