• 【物联网开发】机智云App远程监控温湿度+人体感应


    一、实现的功能描述App远程监控开发板上的温湿度传感器的值以及开发板周围是否有人体出现,并在开发板上的OLED屏幕上显示温湿度值和人体是否出现的信号。


    二、 UI配置描述

    本例程中所包含的UI配置代码如下:
    1. UI = "[1_Temp_C_-30_100][1_Humi_%_0_100][2_Human]"
    复制代码
    例程中用了两个类型为 “1” 的控件用来上传温度值(范围-30~100度)和湿度值(范围0%~100%)。用了一个类型为 “2” 的控件来上传人体检测布尔值(0:未发现人体,1:发现人体)。关于这些类型控件的具体描述可以参看官网中关于ShineBlink云的教程。
    基于以上UI配置,当设备上电后,我们在小程序中可以看到系统为我们自动生成的小程序页如下:


    三、本实验教学目的

    掌握基于ShineBlink的:
    • 基于WiFi或4G接入ShineBlink免开发云,也支持连接机智云物联网平台,并自动生成微信小程序
    • GPIO信号输入(D7引脚读取人体红外传感器输出的电平信号)
    • SHT3X温湿度传感器的使用(传感器占用SDA0和SCL0引脚)
    • OLED屏幕显示(OLED屏幕用SDA1和SCL1引脚)
       


    四、本实验涉及的模块

    人体感应,温湿度传感器,OLED屏幕在开发板上的位置如下:


    五、完整源代码(WiFi版本)

    1. --配置红外人体感应的GPIO为输入(D7)
    2. LIB_GpioInputConfig("D7","NOPULL")
    3. --设置sht3x传感器占用SCL0和SDA0引脚,并启动传感器以10Hz频率工作,"HIGH"精度最高
    4. LIB_Sht3xConfig("IIC0","10","HIGH")
    5. --设置0.96寸oled模块占用SCL1和SDA1引脚
    6. LIB_0_96_OledConfig("IIC1")
    7. --设置UI配置,该配置决定了小程序页面显示的控件具体有哪些什么,名字是什么
    8. UI = "[1_Temp_C_-30_100][1_Humi_%_0_100][2_Human]"
    9. --设置C2开发板自带的WiFi连接云
    10. ssid = "MyWiFiName" --修改成您的WiFi路由器账号
    11. pswd = "abc123" --修改成您的WiFi路由器密码
    12. LIB_CloudConfig("S0", "WIFI_C2", 0, "SBK_01", UI, ssid, pswd)
    13. timer_cnt = 0
    14. --定义10毫秒定时器的回调函数,函数名字必须是LIB_10msTimerCallback
    15. function LIB_10msTimerCallback()
    16.     timer_cnt = timer_cnt + 10
    17. end
    18. --使能系统10毫秒定时器开始工作
    19. LIB_10msTimerConfig("ENABLE")
    20. hu = 0
    21. t = 0.0
    22. h = 0.0
    23. while(GC(1) == true)
    24. do
    25.     --实时获取人体红外感应结果
    26.     hu = LIB_GpioRead("D7")
    27.     --在oled的第三行分别显示人体是否出现(0:未出现,1:出现)
    28.     LIB_0_96_OledPuts("3","1",string.format("human: %d", hu))
    29.     --实时获取温湿度结果
    30.     flag,tt,hh = LIB_Sht3xGetResult()
    31.     if flag == 1 then
    32.         t = tt
    33.         h = hh
    34.         --在oled的第一行和第二行分别显示温度(摄氏度)和湿度(百分比)
    35.         LIB_0_96_OledPuts("1","1",string.format("temprature: %.2f", t))
    36.         LIB_0_96_OledPuts("2","1",string.format("humidity: %.2f", h))
    37.     end
    38.     --每隔3秒向云端发送温湿度值和人体感应结果
    39.     if timer_cnt >= 3000 then
    40.         timer_cnt = 0
    41.         Send_Str = string.format("{\"Temp\":%.2f, \"Humi\":%.2f, \"Human\":%d}",t,h,hu)
    42.         LIB_CloudSend(Send_Str)
    43.     end
    44. end
    复制代码

    六、实验现象

    将上面代码中的ssid和pswd改成您的路由器账号和密码,然后将代码复制到开发板中并运行十几秒之后,我们用微信扫描开发板背后的二维码,在弹出的微信小程序中我们就可以远程监控开发板上的温湿度传感器值和人体感应传感器的输出值了。


    七、4G版本

    4G版本和WiFi版本的代码几乎一样,我们只需做如下两处调整即可实现4G远程:
    (1)将4G模块插入开发板上的4G插槽,如下图:

    (2)将代码中WIFI初始化改成4G初始化即可,调整如下:
    将原来WiFi的:
    1. --设置C2开发板自带的WiFi连接云
    2. ssid = "abcdef" --修改成您的WiFi路由器账号
    3. pswd = "123456" --修改成您的WiFi路由器密码
    4. LIB_CloudConfig("S0", "WIFI_C2", 0, "SBK_01", UI, ssid, pswd)
    复制代码
    调整成4G后的:
    1. --设置外部4G模块连接云
    2. LIB_CloudConfig("S0", "4G_ML302", 0, "SBK_01", UI, "NO_GPS")
    复制代码
  • 相关阅读:
    掌握Linux技能:关键命令与测试题解析
    git导出log日志记录到本地文件
    系统架构设计师考试题库重点案例:系统分析与设计方法
    ZXMPS330 全新原装产品 规格及开局设置
    mysql详细安装步骤图解
    腾讯出品小程序自动化测试框架【Minium】系列(七)测试框架的设计和开发
    【Java】Groovy 语言应用场景以及积累
    优化爬虫效率:利用HTTP代理进行并发请求
    一次OpenJDK Bug导致线上问题的排查实践
    HMS Core 机器学习服务打造同传翻译新“声”态,AI让国际交流更顺畅
  • 原文地址:https://blog.csdn.net/gizwits_csdn/article/details/127652257