回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页
best-icon

#成长营第五期#基于微信小程序物联掌控板监控月龄婴儿夜间哭闹 简单

头像 _深蓝_ 2024.02.26 226 2

#成长营第五期#基于微信小程序物联掌控板监控月龄婴儿夜间哭闹

图片.png

【缘起】

 

月龄婴儿频繁夜间啼哭,对于任何父母来说都是一个巨大的挑战。长时间的夜间哭闹不仅扰乱了家庭的宁静,更使得父母无法得到充足的休息,从而陷入疲劳过度的状态。这种疲惫不仅影响了父母的身心健康,更间接地影响了对宝宝的照顾质量。在疲惫的驱使下,父母可能无法给予宝宝最细致、最周到的关怀,这无疑对宝宝的成长和发育产生了一定的负面影响。因此,我们需要寻找有效的解决方案,帮助宝宝减少夜间啼哭,从而让父母也能得到充分的休息,确保宝宝能够得到最优的照顾。

 

【探究】

 

月龄宝宝夜间频繁啼哭的原因可能有很多,主要分为生理性因素和病理性因素。健康的宝宝排除病理性因素,只有生理性因素,包括饥饿、尿布湿了、室内空气不好、过冷或过热,排除室内空气和室温(这些因素是父母可以控制的),只有宝宝饥饿以及宝宝排便后尿布湿了造成的宝宝啼哭,而这个是有规律的。因此我们可以实时纪录婴儿哭闹的时间以及哭闹的原因可以找到这个规律。而夜间纪录对于本来疲惫不堪的宝宝父母而言,精力有限。为何不用掌控板的声音传感器纪录宝宝夜间啼哭的规律呢,并画出折线图易于观察。

说干就干,我们使用掌控板的声音传感器和光强传感器物联微信小程序,将夜间的数值传递到微信小程序中,并通过折线图显示。

 

【器材】

材料清单

材料清单

  • 手机 X1

器材只需要一部掌控板即可,它集成了我们需要的声音传感器。手机一部,操作微信小程序做好小程序的配置。

 

【步骤】

 

一、打开并配置微信小程序

 

1.打开微信搜索“掌控板物联网”小程序进行授权,微信小程序会自动获取手机号码进行登录

2321df74-aca6-4893-a8fa-eb6f7d2052a6.jpg

 

0d49d2d0-dfad-40dd-98f4-c377b2c3db70.jpg
296d2f60-dc85-4068-9093-2d595694abbc.jpg

2.添加掌控板,给掌控板取个名字,填上掌控板的mac地址

7d32b6d6-4d98-47a8-87f4-05036c89b396.jpg

 

8d232a01-eb0e-4d6e-9a2f-9402c19f390a.jpg

3.配置掌控板,并添加应用,应用添加两个折线图name分别为noise和lights

Screenshot_20240226_092224.jpg
Screenshot_20240226_092640.jpg

到这里微信小程序配置完成,请注意现在还没有和掌控板连接,所以还是显示“离线”,我们需要通过mPython 给掌控板刷入程序。

Screenshot_20240226_092812.jpg

二、电脑连接掌控板,编写调试程序

 

首先使用mind+ v1.80使用iot物联网,编写了程序,刷入掌控板后报WIFI连接错误,问技术无果后,果断放弃这种方法,图形代码如下

图片.png

通过查看帖子,发现mpython X集成了微信小程序,可是最新版的mpython X V0.60却找不到。

图片.png
a46e9f18-67b6-41ae-9b51-47ece9e95653.png

记得mpython集成了微信小程序,那么最后使用mpython干一波!

1.安装mpython最新版

图片.png

2.3.打开后插入掌控板、并烧录最新固件

方法是设置--》烧录固件》掌控板官方固件即可

图片.png
图片.png

 

3.编写程序

图片.png

代码
from mpython import *

import network

my_wifi = wifi()

my_wifi.connectWiFi("ChinaNet-Q4Yt", "gyqwnfpt")

from umqtt.simple import MQTTClient

from machine import Timer

import machine

import ubinascii

def OneNET_recv(_msg):pass
_OneNET_msg_list = []
def OneNET_callback(_topic, _msg):
    global _OneNET_msg_list
    try: _msg = _msg.decode('utf-8', 'ignore')
    except: print(_msg);return
    OneNET_recv(_msg)
    if _msg in _OneNET_msg_list:
        eval('OneNET_recv_' + bytes.decode(ubinascii.hexlify(_msg)) + '()')

tim14 = Timer(14)

_iot_count = 0
def timer14_tick(_):
    global _iot, _iot_count
    _iot_count = _iot_count + 1
    if _iot_count == 1000: _iot.ping(); _iot_count = 0
    try: _iot.check_msg()
    except: machine.reset()

_iot = None
def OneNET_setup():
    global _iot
    _iot = MQTTClient('1198060789', '183.230.40.39', 6002, '221628', 'z4wAV=monF==SrNAdbkUp=7kt=U=', keepalive=300)
    _iot.set_callback(OneNET_callback)
    if 1 == _iot.connect(): print('Successfully connected to MQTT server.')
    tim14.init(period=200, mode=Timer.PERIODIC, callback=timer14_tick)

noise = None

lights = None

import json

def pubdata(_dic):
    print(_dic)
    _list = []
    for _key in list(_dic.keys()):
        _d = {'id':_key,'datapoints':[{'value':_dic[_key]}]}
        _list.append(_d)
    _data = {'datastreams': _list}
    j_d = json.dumps(_data)
    j_l = len(j_d)
    arr = bytearray(j_l + 3)
    arr[0] = 1
    arr[1] = int(j_l / 256)
    arr[2] = j_l % 256
    arr[3:] = j_d.encode('ascii')
    return arr

import time
OneNET_setup()
while True:
    noise = sound.read()
    lights = light.read()
    oled.fill(0)
    oled.DispChar(str(str('光照强度:') + str(lights)), 0, 0, 1)
    oled.DispChar(str(str('噪声:') + str(noise)), 0, 16, 1)
    oled.show()
    _iot.publish('$dp', pubdata({'light':light}))
    _iot.publish('$dp', pubdata({'noise':noise}))
    time.sleep(1)

三、运行程序与改进方式

 

程序运行效果

 

点击运行或者按住Ctrl键点击刷入,运行程序,即可看到掌控板上出现噪声和光照强度的等级。并且每隔一秒将此数据发送到微信小程序,微信小程序根据该数据绘制折线图。

以下是通过摩擦声音传感器,我们可以发现屏幕出现声音强度信息以及小程序中折现有明显偏高。我们可以将该掌控板放到婴儿床跟前,夜间实时监控婴儿的哭闹情况。

IMG_20240226_111126.jpg
Screenshot_20240226_111110.jpg

 

改进方式

 

该项目中掌控板的外观需要进行优化,使其更加美观。同时,应该加入温湿度传感器,以监测室温,确保婴儿舒适。为了方便携带和使用,将充电宝和掌控板整合到一个盒子内。确保产品的功能性和美观性

 

 

评论

user-avatar
  • 罗罗罗

    罗罗罗2024.04.07

    666

    0
    • DeadWalking

      DeadWalking2024.03.10

      这个很实用!

      0