物联网开发笔记(59)- 使用Micropython开发ESP32开发板之控制合宙4g Air724U模块

news2024/12/24 9:27:55

一、目的

        这一节我们学习如何使用我们的ESP32开发板来控制合宙4g Air724U模块。

二、环境

        ESP32 + 合宙4g Air724U模块 + Thonny IDE + 几根杜邦线

接线方法:

注意连接方式:

ESP32的RX2----->4G模块的TX

ESP32的TX2----->4G模块的RX

三、介绍

        1,数据流通图

ESP32----->4G模块----->服务器(腾讯云、华为云等)

        2,服务端

        我们需要一个连接外网的服务器,大家可以用阿里、腾讯、华为等的服务器。

        可以使用LinuxWindows,如果有经验就用Linux,如果想更快速的测试4G功能 所以可以在Windows上使用网络调试助手

  1. 服务器安装Windows系列的系统
  2. 下载安装网络调试助手 NetAssist网络调试助手 V5.0.3-软件工具-野人家园
  3. 修改防火墙的规则,允许某些用到的端口(在本节课中服务器端我用的是8080端口,因此防火墙一定要放行这个端口,否则收不到数据)
  4. 运行网络调试助手

         3、客户端

             3.1 控制方式

        ESP32与4G模块的通信使用的是UART串口通信协议。ESP32---->UART串口---->4G模块

           3.2 UART怎样用?

        MicroPython已经提供了对UART协议的支持,且ESP32上有对应的UART串口引脚,链接上就可以直接用(是不是超级简单)。ESP32开发板上的串口0/2是可以直接用的,串口1用来链接电脑的Thonny了,所以不要用。

四、配置4G模块连接服务器

        购买的4G模块厂家不同,配置方式肯定不同,一定要问商家要具体的配置文档。下面我以我自己购买的设备进行讲解。

1、验证SIM卡插的是否合适,运行下面代码:

from machine import UART


uart = UART(2, 115200)
uart.write("config,get,imei\r\n")  # 向4G设备发送数据
print(uart.read())  # 从4G设备读取数据

如果看到下面的信息 表示SIM安装成功

2、配置IP和port,以下是购买的4G模块厂家给的文章中的部分内容

设置通道 1,绑定串口为 ttluart,打开心跳包,心跳数据为字符串,数据为hello,心跳间隔为60 秒,服务器地址为 47.106.167.188,端口为 80,无数据前置字段,无数据前置字段,无注册信息

config,set,tcp,1,ttluart,1,1,hello,60,47.106.167.188,80,0,0,0,0,0,0\r\n

应答 \r\nconfig,tcp,ok\r\n

        核心意思,将47.106.167.188改为自己服务器的ip,将8080改为自己服务器的端口,其它不变

config,set,tcp,1,ttluart,1,1,hello,60,115.28.208.190,8080,0,0,0,0,0,0\r\n

        Thonny中测试如下:

3、保存配置。如果配置了ip、port,不进行保存是不会生效的,所以需要保存。

config,set,save\r\n

4、检查服务器端连接:

 发送数据

五、购买

某宝链接如下:
https://item.taobao.com/item.htm?spm=a230r.1.14.6.2f7f5261wJ5emS&id=621549212058&ns=1&abbucket=8#detail

注意固件选择:AT固件

在没插 SIM 卡的时候,观察 NET LED,如果 NET LED 为慢闪烁,表示是 AT 透传固件,否则为 DTU 透传
固件。

我用的4G模组购买链接(比较贵):

https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-24500067207.15.fab823f4efxE7K&id=680033328839​https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-24500067207.15.fab823f4efxE7K&id=680033328839

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/80710.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JSP ssh机房学生上机管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

一、源码特点 JSP SSH机房学生上机管理系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采 用B/S模式开发。开发环境为TOMCA…

SpringBoot 注解方式快速整合Mybatis

序言:使用MyBatis3提供的注解可以逐步取代XML,例如使用Select注解直接编写SQL完成数据查询,使用SelectProvider高级注解还可以编写动态SQL,以应对复杂的业务需求。 一. 基础注解 MyBatis 主要提供了以下CRUD注解: Se…

Spring Cloud Alibaba Nacos Config - - - >@RefreshScope动态获取刷新后的配置内容

初学者不知道有没有这个疑惑:我明明已经在 SpringBoot 应用的 bootstrap.yml 配置文件中,通过 spring.cloud.nacos.config.refresh-enabledtrue 开启配置文件动态刷新了,为什么在 Controller 控制类中使用 Value 注解无法获取到配置文件修改后…

猿如意中的【取色器】效率工具详情介绍

目录 一、工具名称 二、下载安装渠道 2.1 什么是猿如意? 2.2 如何下载猿如意? 2.3 如何在猿如意中下载取色器? 三、取色器介绍 四、软件安装过程 五、软件界面 六、取色器功能特点介绍 七、取色器使用/体验感受 一、工具名称…

Typescript学习(第三弹)

泛型 定义 不预先确定的数据类型,具体的类型在使用的时候才确定,把泛型理解为代表类型的参数 泛型函数 泛型函数类型 泛型接口 引用泛型接口要指定一个类型,否则会报错 或者在泛型接口里指定一个默认类型 泛型类 泛型放在类的后面这样…

项目上线后我是如何通过慢查询和索引让系统快起来的

1、前言 最近对mysql的操作比较多一些,主要是项目上线以后,难免会有一些数据上的问题。开始的时候还主要由后端来处理,后面数据问题确实比较多,于是我就找后端要来服务器的账号密码,连上数据库顺便来看看数据的问题。…

C语言小项目-----员工管理系统

目录 项目要求: 考虑点: 实现过程 所用知识点 最终效果如下: 项目要求: 考虑点: 服务器端用select监听多个客户端,考虑点在于,公司内部的系统管理系统,不会有太多人每天都登陆&a…

【web前端开发】CSS的元素显示模式

前言 元素的显示模式可以更好的帮助我们布局页面,了解元素的显示模式,可以让我们布局页面时更加简单清晰 什么是元素显示模式 元素显示模式就是元素(标签)以什么样的方式进行显示 HTML元素一般分为块元素和行内元素两种类型 以下是块级元素和行内元素在网页中的显示: 块元…

3.神经网络-深度学习入门

3.神经网络 深度学习入门 本文的文件和代码链接:github地址 1.激活函数 sigmoid h(x)11e−xh(x) \frac{1}{1 e^{-x}} h(x)1e−x1​ def sigmod(x):return 1 / (1 np.exp(-1 * x))ReLU h(x){x:x>00:x≤0h(x) \left\{ \begin{array}{lr} x & : x > …

CMake静态库和动态库构建实例

任务 建⽴⼀个静态库和动态库,提供 HelloFunc 函数供其他程序编程使⽤,HelloFunc 向终端输出 Hello World 字 符串。安装头⽂件与共享库。 构建过程 构建动态库 目录结构 jyhlinuxubuntu:~/share/makefile_cmake/cmake01$ tree . ├── build #在…

m基于多用户MIMO系统的分布式可重构注水算法的matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 在单用户MIMO场景中,空间复用技术能够带来高数据速率的传输,但是也需要一些前提条件,比如发射端的预编码或者接收端的信道估计与信号检测。然而,在…

java项目-第169期ssm二手交易平台网站-ssm毕业设计_计算机毕业设计

java项目-第169期ssm二手交易平台网站-ssm毕业设计 【源码请到下载专栏下载】 《ssm二手交易平台网站》 该项目分为3个角色,管理员、用户、商家。 用户可以浏览前台商品并且进行购买。在个人后台可以看到自己的商品。 商家可以对商品进行商品分类管理、商品信息管理…

React 学习笔记:组件通信

组件通信 组件为什么需要通信呢?这是因为组件是独立且封闭的单元,默认情况下,组件只能使用自己的数据,但是多个组件之间不可避免的要共享某些数据,为了实现这些功能,就需要打破组件的独立封闭性&#xff0…

深度学习入门(五十九)循环神经网络——通过时间反向传播

深度学习入门(五十九)循环神经网络——通过时间反向传播前言循环神经网络——通过时间反向传播教材1 循环神经网络的梯度分析1.1 完全计算1.2 截断时间步1.3 随机截断1.4 比较策略2 通过时间反向传播的细节3 小结前言 核心内容来自博客链接1博客连接2希…

基于java+springboot+vue+mysql的甜品蛋糕销售商城网站

项目介绍 随着社会的快速发展,计算机的影响是全面且深入的。人们生活水平的不断提高,日常生活中用户对网上蛋糕商城方面的要求也在不断提高,网上蛋糕商城得到广大用户的青睐,使得网上蛋糕商城的开发成为必需而且紧迫的事情。本系…

Docker笔记--使用数据卷实现容器与宿主机的数据交互

1--数据卷的介绍和作用 在 Docker 架构中,宿主机系统和容器之间不能直接传递数据,同时当容器被删除时,容器所有的数据都会被清除; 数据卷能够在宿主机与容器、容器与容器之间搭建数据传输和共享的通道,当容器内的目录与…

C++ 快速复习-数据类型

内置数据类型 int、unsigned int 、long、unsigned long 、short、char、signed char、bool、 long long float、double、long double 等 无符号的数据类型 主要在于 不在区分 -,数据波动范围变大。另外,值得注意的是 unsigned 类型的数据 不建议在输出…

玩以太坊链上项目的必备技能(变量作用域-Solidity之旅五)

在前文我们讲过 Solidity 是一种静态类型的语言,这就意味着在声明变量前需先指定类型。 而 Solidity 对变量划分了以下三种作用域范围: 状态变量(State Variable): ​ 该变量的值被永久地存放在合约存储中&#xff…

JS新年倒计时

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:前端案例分…

Java---线程详解

目录 一、线程的介绍 二、线程的使用 (1)多线程的实现 1:继承Thread类 2:实现Runnable接口 (2)设置和获取线程名称 1:继承Thread类 2:实现Runnable接口 (3)线程…