964|2

6

帖子

2

TA的资源

一粒金砂(中级)

楼主
 

【得捷电子Follow me第1期】项目总结 [复制链接]

  本帖最后由 极致创客 于 2023-6-30 20:32 编辑

树莓派pico通过MQTT接入homeassistant控制板载led

 

 

7b243cd04884caf1effe1b4f6ed173b8

任务1:熟悉micropython的基本语法

感谢EEWorld和得捷电子联合举办的本次Follow Me活动,希望与各位电子爱好者共同交流,一起学习RP2040 Pico W 这款开发板。

  1. 固件下载

首次使用micropython编写代码时,需要烧录micropython固件给树莓派pico,固件如下图所示。

 

  1. 开发环境搭建

本次IDE选用MuEditor编辑器,安装包如下图.msi后缀文件,安装过程简单,一路默认选项即可,初次打开时,需要等待初始化完成

 其模式选择RP2040,如下图所示

 将电脑上的文件拖动到设备上,参考:【得捷电子Follow me第1期】任务1:补充分享下Mu editor如何加载包 - DigiKey得捷电子技术专区 - 电子工程世界-论坛 (eeworld.com.cn)

其中加载和文件功能是将需要的源文件拖动到硬件设备中,

 编写完成后点击运行即可。

  1. Micropython的基本用法

      MicroPython,是Python3编程语言的一个完整软件实现,用C语言编写,被优化于运行在微控制器之上。MicroPython是运行在微控制器硬件之上的完全的Python编译器和运行时系统。提供给用户一个交互式提示符(REPL)来立即执行所支持的命令。除了包括选定的核心Python库,MicroPython还包括了给予编程者访问低层硬件的模块。虽然第一次接触MicroPython,但是有C语言基础,能够快速上手。

micropython的基本语法可以参考相关文档:Pico Python SDK使用手册

任务2:驱动外设

Raspberry Pico W在PICO的基础上添加了WIFI功能,使用英飞凌(Infineon)CYW43439 添加了板载单频2.4GHz 无线接口 (802.11n),同时保留了 Pico 外形。板载2.4GHz无线接口具有以下特点:

  • 无线 (802.11n),单频段 (2.4 GHz)
  • WPA3
  • 最多支持四个客户端的软接入点

当 MicroPython 第一次启动时,它会等待您连接并告诉它该做什么。您可以将 .py 文件从您的计算机加载到开发板上,但与其交互的更直接的方式是通过所谓的read-evaluate-print loop或 REPL。有两种方法可以连接到这个 REPL;因此可以通过 USB 或通过 Raspberry Pi Pico W GPIO 上的 UART 串行端口与开发板上的 MicroPython 固件通信。

通过shell查看time类函数及其参数如下

 以下是间隔2秒点亮熄灭LED

from machine import Pin

import time

led = Pin("LED",Pin.OUT)

while True:

    led.value(1)

    time.sleep(2)

    led.value(0)

    time.sleep(2)

任务3:同步网络时间

导入network和ntptime模块

 # 在这里写上你的代码 :-)

import machine

import time

import network

import urequests

import ntptime

from machine import RTC

ssid = "chen"

password = "11111111"

wlan = network.WLAN(network.STA_IF)

wlan.active(True)

wlan.connect(ssid, password)

max_wait = 10

while max_wait > 0:

    if wlan.status() < 0 or wlan.status() >= 3:

        break

    max_wait -= 1

    print("等待连接")

    time.sleep(1)

if wlan.status() != 3:

    raise RuntimeError("联网失败")

else:

    print("网络已连接")

    status = wlan.ifconfig()

    print("ip = " + status[0])

r = urequests.get("https://www.digikey.cn/zh")

print(r.status_code)

print(r.headers)

r.close()

def show_local_time(timezone=8):

    rtc = RTC()

    now = time.time()

    now += timezone * 3600

    t = time.localtime(now)

    print(t)

    print(f"{t[0]}-{t[1]:02d}-{t[2]:02d} {t[3]:02d}:{t[4]:02d}:{t[5]:02d}")

print("开始NTP校时...")

ntptime.host = "cn.pool.ntp.org"

ntptime.settime()

print(f"校时后系统时间:")

show_local_time()

获得网络时间为国际标准时间

 

任务4:实现定位功能

本地定位测试使用Seed推出的Air530模块,支持GPS / Beidou / Glonass / Galileo / QZSS / SBAS等多种定位卫星,功能强大,能够获取经纬度信息,还有时间,速度等信息,但是室内测试效果一般,需要在室外才能获得最佳定位精度。
from machine import UART, Pin

import time

from micropyGPS import MicropyGPS

uart0 = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))

time.sleep(0.1)

rxData = bytes()

my_gps = MicropyGPS()

while True:

    if uart0.any():

        stat = my_gps.update(uart0.read(1).decode("ascii"))

        # Note the conversion to to chr, UART outputs ints normally

        if stat:

            print("Latitude:", my_gps.latitude_string())                                #读取经度、纬度信息

            print("Longitude:", my_gps.longitude_string())

            print("Speed:",my_gps.speed_string("kph"),"or",my_gps.speed_string("mph"),"or", my_gps.speed_string("knot"),)  #读取速度信息

            print("Date (Long Format):", my_gps.date_string("long"))                                                                  #读取时间信息

            print("Date (Short D/M/Y Format):", my_gps.date_string("s_dmy"))

            print("timestamp (Short [H,M,S] Format):", my_gps.timestamp)

            stat = None

项目总结

通过本次活动,虽然首次接触micorpython,但是通过学习大佬的帖子,掌握了树莓派Pico w的开发,感谢EEWORD和得捷电子联合举办的本次活动,充分激发了学习单片机的兴趣,同时也拓展了对新事物的了解,希望能够更多的举办类似的活动,

 

mqtt_test.py

2.37 KB, 下载次数: 0

simple.py

6.26 KB, 下载次数: 0

GPS_test.py

1.25 KB, 下载次数: 0

network_test.py

1016 Bytes, 下载次数: 0

最新回复

通过 USB 或通过 Raspberry Pi Pico W GPIO 上的 UART 串行端口与开发板上的 MicroPython 固件通信,这个方法很可以   详情 回复 发表于 2023-7-3 07:30
点赞 关注
 
 

回复
举报

6974

帖子

11

TA的资源

版主

沙发
 

通过本次活动,虽然首次接触micorpython,但是通过学习大佬的帖子,掌握了树莓派Pico w的开发,感谢EEWORD和得捷电子联合举办的本次活动,充分激发了学习单片机的兴趣,同时也拓展了对新事物的了解,希望能够更多的举办类似的活动,

也祝楼主学有所成呀!

 
 
 

回复

6807

帖子

0

TA的资源

五彩晶圆(高级)

板凳
 

通过 USB 或通过 Raspberry Pi Pico W GPIO 上的 UART 串行端口与开发板上的 MicroPython 固件通信,这个方法很可以

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

开源项目 更多>>
    随便看看
    查找数据手册?

    EEWorld Datasheet 技术支持

    相关文章 更多>>
    关闭
    站长推荐上一条 1/9 下一条

     
    EEWorld订阅号

     
    EEWorld服务号

     
    汽车开发圈

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表