930|5

64

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

【得捷电子Follow me第1期】+ GPS智能手杖定位器 [复制链接]

 

内容一:3-5分钟短视频

0611

 

内容二: 项目总结报告

1. 项目描述

GPS智能手杖定位器是一款智能化辅助设备,它可以通过GPS技术获取当前位置信息,方便用户了解设备的活动范围和行踪,同时也可以通过设置安全围栏,一旦设备离开围栏区域,会自动向用户发送警报信息,提高用户的安全保障。

 

除了实时定位和安全围栏功能外,GPS智能手杖定位器还具备多项实用功能,如电子时钟、温度预警、SOS求救、低功耗模式等。其中,电子时钟可以显示当前时间,温度预警可以在温度超出设定阈值时发出蜂鸣器警报,SOS求救可以通过设备上的SOS按钮向用户发送求救信息,并提供当前位置信息,低功耗模式可以通过降低功耗延长设备的使用时间,节约能源。

 

在实现这些功能的过程中,我们需要利用PICO相应模块,实现带有网络、显示、声音功能的创意制作,可以增加其它传感器、外设。首先,需要通过网络获取时间,ADC获取温度,配置PWM控制蜂鸣器,UART获取GPS信息,全都打印到屏幕上,这样用户可以一目了然地看到设备的状态信息。其次,在一个while循环里判断是否超出温度、GPS设定的阈值,超出则报警,实现安全围栏和温度预警等功能。

 

在扩展这个项目时,可以考虑增加历史轨迹功能,让用户可以查看设备过去一段时间内的运动轨迹,便于了解设备的活动范围和行踪。同时,也可以进一步优化SOS求救功能,可以通过联网实现将位置信息上传到云端服务器,用户可以在手机或电脑上查看设备所在位置,提高用户的安全保障。

 

此外,为了提高用户的使用体验,可以考虑增加语音播报功能,让设备可以通过声音提示用户当前的状态,如时间、温度、位置等。同时,也可以增加蓝牙功能,将设备与手机或其他智能设备进行连接,方便用户实现更多的操作和功能。

 

此外,还可以考虑增加生物识别功能,如指纹识别、面部识别等,提高设备的安全性和私密性。另外,可以增加心率监测、步数计数等健康监测功能,让设备可以成为用户健康生活的助手。

 

总之,GPS智能手杖定位器是一款实用性强的智能化辅助设备,可以为用户提供多种功能,如实时定位、安全围栏、电子时钟、温度预警、SOS求救、低功耗模式等,同时也可以通过扩展功能,如历史轨迹和云端上传等,进一步提升用户的使用体验和安全保障。未来,随着技术的不断进步,GPS智能手杖定位器也将不断升级和完善,为用户带来更加便利和舒适的使用体验。

 

2. 各功能对应的主要代码片段及说明

配置联网:

#配置联网
ssid = '汤圆和奶茶'
password = 'tangyuan888'

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])

 

配置各种外设

#配置OLED屏幕
#Grove Shield For Pi Pico I2C1
i2c = I2C(1,sda=Pin(6),scl=Pin(7),freq=400000)
oled = SSD1306_I2C(128, 64, i2c)

#配置温度传感器
sensor_temp = machine.ADC(4)
conversion_factor = 3.3/(65535)

#配置蜂鸣器
# Construct PWM object, with BEEP on Pin(16).
pwm = PWM(Pin(16))
# Set the PWM frequency.
pwm.freq(1000)

#配置GPS
#Grove Shield For Pi Pico UART0
uart0 = UART(0, baudrate=9600, tx = Pin(0), rx = Pin(1))
#print(gps_module)
time.sleep(0.1)
rxData = bytes()
my_gps = MicropyGPS()

实时显示温度

  #显示实时温度
    read = sensor_temp.read_u16() * conversion_factor
    temp = 27 - (read - 0.706) / 0.001721
    print("温度:{:.1f}".format(temp))
    oled.fill(0)
    oled.text(f'temp is {temp:.1f}', 0, 12, 1)
    #oled.show()

显示实时时间

    #显示实时时间
    timezone=8
    rtc = RTC()
    now = time.time()
    now += timezone * 3600
    t = time.localtime(now)
    year, month, day, hour, minute, second, *_ = t
    time_str = f"{year}-{month:02d}-{day:02d} {hour:02d}:{minute:02d}:{second:02d}"
    print("时间:", time_str)
    oled.text(time_str, 0, 0, 1)
    #oled.show()

温度报警

    #温度超出30度报警
    if temp>32:
        pwm.duty_u16(1000)
        time.sleep(1)
        pwm.duty_u16(0)

显示GPS模块并实现安全围栏

    if uart0.any():
        stat = my_gps.update(uart0.read(1).decode('ascii')) # Note the conversion to to chr, UART outputs ints normally
        if stat:
            #显示GPS信息
            stat = my_gps.update(uart0.read(1).decode("ascii"))  
            # Note the conversion to to chr, UART outputs ints normally
            print("纬度:", my_gps.latitude_string())
            print("经度:", my_gps.longitude_string())
            print(
                "Speed:",
                my_gps.speed_string("kph"),
                "or",
                my_gps.speed_string("mph"),
                "or",
                my_gps.speed_string("knot"),
            )
            lat_disp = my_gps.latitude_string()
            oled.text(lat_disp,0,24,1)
            lon_disp = my_gps.longitude_string()
            oled.text(lon_disp,0,36,1)
            lon_disp = my_gps.speed_string()
            oled.text(lon_disp,0,48,1)
            oled.show()
            
            #安全围栏
            if my_gps.latitude_string()>'30' and my_gps.longitude_string()>'123':
                pwm.duty_u16(1000)
                time.sleep(1)
                pwm.duty_u16(0)


3. 功能展示及说明

  1. 实时定位:可以通过 GPS 技术获取当前位置

  2. 安全围栏:可以设置安全围栏,一旦设备离开围栏区域,会自动向用户发送警报信息。(场地原因无法拍照实现)

  3. 电子时钟:显示屏实时显示当前时间。

  4. 温度预警:超出温度蜂鸣器将会报警。

 
4. 对本活动的心得体会

很高兴参加这样一场面向电子爱好者的活动,通过购买指定的开发板和器件,参与者可以学习到如何使用这些设备实现各种功能,同时还可以获得报销和奖励。这种方式不仅提高了参与者的DIY技能,也推广了这些开发板和器件的使用。希望未来还能有更多这样的活动,让更多人加入到电子爱好者的行列中。

 

内容三:可编译下载的代码

ssd1306.py (4.93 KB, 下载次数: 1)

picozero.py (68.22 KB, 下载次数: 0)

ntptime.py (1.34 KB, 下载次数: 1)

micropyGPS.py (29.63 KB, 下载次数: 1)

main.py (3.21 KB, 下载次数: 1)

 

 

最新回复

这个设计想法挺不错的,要是真做成一个产品还是有卖点的。  详情 回复 发表于 2023-6-13 13:44

赞赏

1

查看全部赞赏

点赞 关注
 
 

回复
举报

6841

帖子

11

TA的资源

版主

沙发
 
大佬 ,温度传感器是在哪里的呀,是片内的吗?
 
 
 

回复

6773

帖子

2

TA的资源

版主

板凳
 

这个设计想法挺不错的,要是真做成一个产品还是有卖点的。

 
 
 

回复

4771

帖子

12

TA的资源

版主

4
 
有摄像头吗~
 
 
 

回复

4771

帖子

12

TA的资源

版主

5
 
忽然一个名字在我的脑海里----“智杖”
 
 
 

回复

1463

帖子

0

TA的资源

五彩晶圆(初级)

6
 
这个设计想法挺不错的,要是真做成一个产品还是有卖点的。
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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