IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 2.7 haas506 2.0开发教程-高级组件库-modem -> 正文阅读

[嵌入式]2.7 haas506 2.0开发教程-高级组件库-modem

1.获取与设备相关的信息

案例说明:

  • 使用modem、network、net模块获取与设备有关的信息(插入SIM卡)

main.py

# -*- coding: UTF-8 -*-
import network
import modem
import net
import utime as time
g_connect_status = False

def on_4g_cb(args):
    global g_connect_status
    pdp = args[0]
    netwk_sta = args[1]
    if netwk_sta == 1:
        g_connect_status = True
    else:
        g_connect_status = False

def connect_network():
    global Net,on_4g_cb,g_connect_status
    Net = network.NetWorkClient()
    g_register_network = False
    if Net._stagecode is not None and Net._stagecode == 3 and Net._subcode == 1:
        g_register_network = True
    else:
        g_register_network = False
    if g_register_network:
        Net.on(1,on_4g_cb)
        Net.connect(None)
    else:
        print('网络注册失败')
    while True:
        if g_connect_status:
            print('网络连接成功')
            break
        time.sleep_ms(20)


if __name__=="__main__":
    #连接网络
    connect_network()
    #network模块
    print('网络连接状态:',g_connect_status)
    print("获取当前网络状态(3代表连接成功):",Net.getStatus())
    print("_stagecode(3代表成功):",Net._stagecode)
    print("_subcode(1代表成功):",Net._subcode)
    print("网络类型(0:wifi,1:蜂窝网,2:以太网,3:未知):",Net.getType())

    #modem模块
    print('设备IMEI:',modem.getDevImei())
    print("设备模组:",modem.getDevModel())
    print("设备固件版本",modem.getDevFwVersion())
    print("设备id:",modem.getDevProductId())
    print("ICCID:",modem.sim.getIccid())
    print("IMSI:",modem.sim.getImsi())
    #net模块
    print("信号强度:",net.csqQueryPoll())

日志输出

网络连接状态: True
获取当前网络状态(3代表连接成功): 3
_stagecode(3代表成功): 3
_subcode(1代表成功): 1
网络类型(0:wifi,1:蜂窝网,2:以太网,3:未知): 1
设备IMEI: 867082058707142
设备模组: M601
设备固件版本 amp-v1.16 build on 2021-11-17, 15:18:23
设备id: HaaS506
ICCID: 89860440112170090087
IMSI: 460046042210087
信号强度: 31

2.发短信

  • 注意: ‘yourPhoneNumber’ 需要改成通话号码(字符串格式)

main.py

# -*- coding: UTF-8 -*-
from modem import sms
import utime as time

#暂不支持电信发送短信

def sms_cb(args):
    #字符串
    ind_flag = args[0]
    mes_buf = args[1]
    mes_num = args[2]
    # print("type of mes_buf:",type(mes_buf))
    print('new message:ind_flag:{},mes_buf:{},mes_num:{}'.format(ind_flag,mes_buf,mes_num))

if __name__ == '__main__':
    #实例化
    smss = sms()
    #接收短信回调
    time.sleep(5)
    smss.setCallback(sms_cb)
    smss.sendTextMsg('yourPhoneNumber','welcome to use haas506','GSM')
    smss.sendTextMsg('yourPhoneNumber','欢迎使用haas506','UCS2')
    # GSM 只支持英文内容
    # UCS2 支持中英文,且发送时文件格式保存位utf-8

效果图-发送
在这里插入图片描述
效果图-接收
注意:用手机给haas506发短信时,串口助手不一定能显示中文,此时有两种解决方法:(1)换一个可以设置中文显示的串口助手。(2)将串口日志保存一下,打开日志文件,就会显示中文字符。
在这里插入图片描述

3. 打电话

main.py

from modem import voiceCall
from audio import Audio
#赞不支持电信拨打电话
def voice_callback(args):
  if args[0] == 10:
      print('voicecall incoming call, PhoneNO.: ', args[6])
  elif args[0] == 11:
      print('voicecall connected, PhoneNO.: ', args[6])
  elif args[0] == 12:
      print('voicecall disconnect')
  elif args[0] == 13:
      print('voicecall is waiting, PhoneNO.: ', args[6])
  elif args[0] == 14:
      print('voicecall dialing, PhoneNO.: ', args[6])
  elif args[0] == 15:
      print('voicecall alerting, PhoneNO.: ', args[6])
  elif args[0] == 16:
      print('voicecall holding, PhoneNO.: ', args[6])

if __name__ == '__main__':
  #实例化
  vc = voiceCall()
  ad = Audio()
  #电话功能需要预先开启功放
  ad.set_pa()
  #设置音量
  ad.setVolume(10)
  # 设置监听回调函数
  vc.setCallback(voice_callback)
  # 设置自动应答时间 ms
  #(1)自动应答
  vc.setAutoAnswer(5000)
  # 拨打电话
  vc.callStart('phonenumber')
  #(2)非自动接听,挂断
  # # 当电话来时接听电话
  # vc.callAnswer()
  # #挂断电话
  # vc.callEnd()

4.Class-modem

modem

getDevImeigetDevModelgetDevProductIDgetDevFwVersionrebootsimvoiceCallsms
获取设备的IMEI获取设备model获取设备id获取设备固件版本号设备重启打电话实现短信发送功能

modem.sim()

getImsigetIccidsetSimDetgetSimDet
获取IMSI获取ICCID配置SIM卡热插拔相关参数获取SIM卡热插拔相关配置参数

modem.voiceCall()

setAutoAnswecallStartcallAnswercallEndsetCallback
设置自动应答时间拨打电话接听电话挂断电话设置监听回调函数

modem.sms()

setCallbackssendTextMsg
设置接收短信回调函数实现短信发送功能

modem

  • modem.getDevImei()
    • 作用:获取设备的IMEI(国际移动设备识别码)
    • 返回:IMEI
  • modem.getDevModel()
    • 作用:获取设备model
    • 返回:设备model
  • modem.getDevProductId()
    • 作用:获取设备id
    • 返回:设备id
  • modem.getDevFwVersion()
    • 作用:获取设备固件版本号
    • 返回:固件版本号
  • modem.reboot()
    • 作用:设备重启

  • modem.sim()
  • 实例化:s=modem.sim()
    • s.getImsi()
      • 作用:获取IMSI(国际移动用户识别码)
      • 返回:IMSI
    • s.getIccid()
      • 作用:获取ICCID(集成电路卡识别码)
      • 返回:ICCID
    • s.setSimDet(detenable, insertlevel)
      • 作用: 设置SIM卡热插拔相关配置
      • 参数: detenable-开启或者关闭SIM卡热插拔功能,0:关闭 1:打开;insertlevel-高低电平配置(0/1)
      • 返回:0成功
    • s.getSimDet()
      • 作用: 获取SIM卡热插拔相关配置
      • 返回:一个元组数据,即(detenable,detenable)

  • modem.sms()
  • 实例化:smss=modem.sms()
    • smss.setCallbacks()
      • 作用: 实现接收短信功能
    • smss.sendTextMsg()
      • 作用: 实现短信发送功能

  • modem.voiceCall()
  • 实例化:vc=modem.voiceCall()
    • vc.setCallback()
      • 作用: 设置监听回调函数
    • vc.setAutoAnswer(ms)
      • 作用: 设置自动应答时间
      • 参数: 自动应答时间,单位ms
    • vc.callStart()
      • 作用: 拨打电话
    • vc.callAnswer()
      • 作用: 打电话来时接听电话
    • vc.callEnd()
      • 作用: 挂断电话

5.总结

本节介绍了如何使用haas506高级组件库中的sms、voiceCall、sim模块,实现了获取设备信息、发送短信、拨打电话功能。当前版本不支持sim卡的热插拔功能。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-03-13 21:59:21  更:2022-03-13 22:00:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 6:25:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码