ESP32连接云服务器【WebSocket】

news2024/9/22 13:43:01

ESP32连接云服务器【ESP32+宝塔面板】


在这里插入图片描述


文章目录

    • ESP32连接云服务器【ESP32+宝塔面板】
    • 👨‍🏫内容1:背景
    • 👨‍⚖️内容2:服务器配置
    • 👨‍💻内容3:ESP32配置


👨‍🏫内容1:背景


ESP32-WROOM-32
👉ESP32 是一款由 Espressif Systems 开发的低功耗、高性能、可扩展的嵌入式微控制器,可用于构建各种物联网 (IoT) 应用。ESP32 芯片基于 ARM Cortex-M 内核,具有 32 位地址空间,支持 Wi-Fi、蓝牙和其他无线连接,以及多种外设接口,如 GPIO、定时器、PWM、串口等。

相关设备
🙋‍♀️ESP32+云服务器+Arduino IDE

🌸🌸🌸🌷🌷🌷💐💐💐🌷🌷🌷🌸🌸🌸

👨‍⚖️内容2:服务器配置


1️⃣配置第一步:
👉因为本次我们需要通过宝塔面板,将脚本挂上去
👨‍💻因此,有关云服务器和宝塔面板的初始配置,这里将直接跳过👋

2️⃣配置第二步:
🎈首先是本次需要挂在服务器上的脚本代码➡️Server.py⬇️

import socket
import datetime

server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)

server.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
server.bind(('xxx.xxx.xxx.xxx',xxxx)) #这里是绑定要监听的地址(内网ip)和端口
server.listen(5) #开始监听 表示可以使用五个链接排队
print('listen')
while True: #conn就是客户端链接过来而在服务端为期生成的一个链接实例
   conn,addr = server.accept() #等待链接,多个链接的时候就会出现问题,其实返回了两个值
   print(conn, addr)
   try:
       data = conn.recv(1024)  #接收数据
       if data:
           print('recive:',data.decode()) #打印接收到的数据
   except ConnectionResetError as e:
       print('关闭了正在占线的链接!')
       break
   # conn.close()

3️⃣配置第三步:
🎈接着,在宝塔面板的软件商店中导入➡️➡️Python项目管理器⬅️⬅️

在这里插入图片描述
🎁然后新建一个文件夹【例如下图中的esp】,并将脚本文件放入文件夹中在这里插入图片描述
🏖️之后,我们在Python项目管理器中添加一个Python项目
🗽其中项目路径等内容,可以参照下图填写⬇️

在这里插入图片描述


在这里插入图片描述

4️⃣配置第四步:
🎠首先查看并复制刚才文件的MD5_venv⬇️

在这里插入图片描述
🎡接着打开终端连续输入下方代码⬇️

cd /xxx/xxx/   #先转到所在目录
btpython -m venv MD5_venv   #这里有些人用python3 -m 但是我报错了,就用了btpython -m

在这里插入图片描述
🚂到这里,你可以到文件夹中的bin目录中,可以找到已经存在了activate文件
🚈此时你已经可以将脚本挂到定时任务中执行
在这里插入图片描述

5️⃣配置第五步:
🎉最后,我们将添加脚本任务
🎍脚本的内容自行修改⬇️

在这里插入图片描述
在这里插入图片描述
✨至此,服务器端的配置结束

🌻🌻🌻🌼🌼🌼🌺🌺🌺🌼🌼🌼🌻🌻🌻

👨‍💻内容3:ESP32配置


🎯相关代码:

#include <Arduino.h>
#include <WiFi.h>
#include <WiFiClient.h>

const char* ssid     = "xxxx";     //WIFI名称
const char* password = "xxxx";   //WIFI密码

const char* host = "xxx.xxx.xxx.xxx";    //服务器的IP地址
const int port = 8081;    //端口号
int num=0;  
void setup()
{
   Serial.begin(115200);
   Serial.print("Connecting to ");
   Serial.println(ssid);
   /* connect to your WiFi */
   WiFi.begin(ssid, password);
   /* wait until ESP32 connect to WiFi*/
   while (WiFi.status() != WL_CONNECTED) {
       delay(500);
       Serial.print(".");
   }
   Serial.println("");
   Serial.println("WiFi connected with IP address: ");
   Serial.println(WiFi.localIP());
}
void loop()
{
   delay(1000);
   Serial.print("connecting to ");
   Serial.println(host);
   /* Use WiFiClient class to create TCP connections */
   WiFiClient client;
   
   if (!client.connect(host, port)) {
       Serial.println("connection failed");
       return;
   }
   String msg ="test:"+String(num++);
   Serial.println(msg);
   client.println(msg);
   //client.stop();
}

上传到ESP32开发板上,可以看见连接成功!
在这里插入图片描述

在这里插入图片描述

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

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

相关文章

3.5.核函数的定义和使用

目录 前言1. 核函数2. 核函数案例总结 前言 杜老师推出的 tensorRT从零起步高性能部署 课程&#xff0c;之前有看过一遍&#xff0c;但是没有做笔记&#xff0c;很多东西也忘了。这次重新撸一遍&#xff0c;顺便记记笔记。 本次课程学习精简 CUDA 教程-核函数 课程大纲可看下面…

使用infura创建以太坊网络

创建账号 https://www.infura.io/zh 进入控制台Dashboard&#xff0c;选择CREATE API KEY 创建成功后&#xff0c;进入API KEY查看&#xff0c;使用PostMan测试 返回result即为当前区块。

Linux安装配置Oracle+plsql安装配置(超详细)

注意&#xff1a;本文有大量的界面截图&#xff0c;如观看效果不佳可前往文字版&#xff1a; 目录 1 安装虚拟机系统 1.1 安装虚拟机 2.配置虚拟机 2.1 设置机器名 2.2 修改域名映射 2.3 固定IP地址 ​ 2.4 关闭防火墙 2.5 更改安全机制 2.6 重启reboot 3 修改配置 3.1 …

2.深度学习:用Python实现深度神经网络(简单易懂)

深度学习是人工智能领域中的一个热门话题&#xff0c;也是目前业界最具前景和发展潜力的领域之一。本文将会介绍如何用Python实现深度神经网络&#xff0c;编写自己的深度学习模型。作为一篇简单易懂的教程&#xff0c;本文将会从以下两个方面进行讲解&#xff1a;1. 基础知识介…

java环境搭建2-idea安装激活

windows环境装Java开发环境与idea安装激活 安装jdk安装idea激活idea新建项目开启Java学习 java环境搭建2-idea安装激活 之前安装了wslLinux子环境的Java开发环境,但是再许多地方没有人使用vscode进行Java开发,因为环境配置很麻烦,还有各种插件. windows环境装Java开发环境与ide…

尚无忧多城市共享自助台球室台球厅预约开灯开门小程序源码

1、定位功能&#xff1a;可定位附近是否有店 2、能通过关键字搜索现有的店铺 3、个性轮播图展示&#xff0c;系统公告消息提醒 4、个性化功能展示&#xff0c;智能排序&#xff0c;距离、价格排序 5、现有店铺清单展示&#xff0c;订房可查看房间单价&#xff0c;根据日期、…

在 FPGA 上通过 2D CNN 进行高效视频理解的 TSM 网络

在这个项目中&#xff0c;将在线和离线 TSM 网络部署到 FPGA&#xff0c;通过 2D CNN 执行视频理解任务。 介绍 在这个项目中&#xff0c;展示了 Temporal-Shift-Module ( https://hanlab.mit.edu/projects/tsm/)在 FPGA 上解决视频理解问题的实用性和性能。 TSM 是一种网络结构…

C++常用库函数 2.字符分类函数

函数名&#xff1a;isalnum 函数原型&#xff1a;int isalnum(int c)&#xff1b; 所需头文件&#xff1a;<cctype> 功能&#xff1a;测试 c 是否字母或数字。 返回值&#xff1a;如果 c 在 A&#xff5e;Z、a&#xff5e;z 或0&#xff5e;9的范围内&#xff0c;则返回…

002-集成Dubbo

目录 集成架构架构分析 Spring boot 集成引入依赖提供API 调用桥梁添加Dubbo服务服务提供者-服务实现服务提供者-添加配置服务消费者-添加配置服务消费者-配置消费端请求任务服务调用 扩展为什么要新增Dubbo协议 集成 架构 架构分析 Dubbo作为一个RPC调用框架作用就是让服务具…

使用Yfinance和Plotly分析金融数据

大家好&#xff0c;今天我们用Python分析金融数据&#xff0c;使用Yfinance和Plotly绘制图表&#xff0c;带你了解在Python中使用Plotly制作图表&#xff0c;利用Plotly强大的图表功能来分析和可视化金融数据。 导语 在本文中&#xff0c;我们将深入研究Plotly&#xff0c;从…

Linux安装配置Oracle+plsql安装配置(详细)

如果觉得本文不够详细&#xff0c;没有效果图&#xff0c;可移步详细版&#xff1a; Linux安装配置Oracleplsql安装配置&#xff08;超详细&#xff09;_超爱慢的博客-CSDN博客 目录 1.安装虚拟机系统 1.安装虚拟机 2.配置虚拟机 1.设置机器名 2.修改域名映射 3.固定IP…

I.MX RT1170之FlexSPI(4):HyperRAM手册分析和参数配置详解

在上一篇文章中我分析了NOR Flash的手册和FlexSPI的相关配置&#xff0c;在这篇文章中&#xff0c;我将以HyperRAM为例&#xff0c;看看八线的HyperRAM在硬件设计和软件配置上有增加什么引脚和参数&#xff0c;然后以ISIS型号为IS66WVH64M8DALL/BLL的HyperRAM为例&#xff0c;看…

402 · 连续子数组求和

链接&#xff1a;LintCode 炼码 - ChatGPT&#xff01;更高效的学习体验&#xff01; 题解&#xff1a; 九章算法 - 帮助更多程序员找到好工作&#xff0c;硅谷顶尖IT企业工程师实时在线授课为你传授面试技巧 九章算法 - 帮助更多程序员找到好工作&#xff0c;硅谷顶尖IT企业…

微信小程序开发与应用——字体样式设置

要求&#xff1a;设置字体样式。 1、打开微信开发者工具&#xff0c;创建一个小程序&#xff0c;如下&#xff1a; 2、设置小程序的项目名称和路径&#xff0c;并选择开发语言为JavaScript&#xff0c;如下&#xff1a; 3、小程序的主体部分由三个文件组成&#xff0c;且都要…

2023.07.08力扣6题

167. 两数之和 II - 输入有序数组 给你一个下标从 1 开始的整数数组 numbers &#xff0c;该数组已按 非递减顺序排列 &#xff0c;请你从数组中找出满足相加之和等于目标数 target 的两个数。如果设这两个数分别是 numbers[index1] 和 numbers[index2] &#xff0c;则 1 < …

Carla与Ros联合仿真教学与踩坑经历

Carla与Ros联合仿真教学与踩坑经历 前言 本人需要用到carla进行仿真&#xff0c;做实验&#xff0c;研究了这个平台几个月。 需要注意的是&#xff0c;本人没有保留所有的ros包&#xff0c;而是选择一些进行使用&#xff0c;其他大家可以进行扩展。 carla0.9.5版本和carla0.…

雅思口语考试的顺序与技巧?

雅思口语的考试顺序&#xff0c;也是学生们在开始考试前要了解的信息。雅思的口语考试到底有怎样的考试顺序&#xff1f;下面就听小编讲讲它的考试顺序&#xff0c;以及考试中的技巧。 一、雅思口试考试顺序 众所周知&#xff0c;雅思考试分为笔试和口试。正常情况下&#xff…

YOLOV5-Lite轻量化部署与训练

文章目录 前言项目下载项目运行自定义数据集训练使用LabelImg标注制作数据集划分训练文件生成标签聚合操作辅助脚本需要运行的脚本 开始训练 总结 前言 没啥意思&#xff0c;很简单&#xff0c;需要实现一个目标检测&#xff0c;但是&#xff0c;不能占用太多运算资源&#xf…

【双指针】977. 有序数组的平方

977. 有序数组的平方 解题思路 思路: 设置前后指针最大的元素一定是存在再前后位置,然后因为负数平方之后可能大于整数的平方每次比较前后指针指向的元素的平方 然后存下较大的元素平方 然后移动指针 class Solution {public int[] sortedSquares(int[] nums) {// 设置前后指…

Git--远程操作

文章目录 前言一、理解分布式版本控制系统二、远程仓库1.新建远程仓库2.克隆远程仓库3.向远程仓库推送4.拉取远程仓库5.配置Git忽略特殊文件 给命令配置别名 总结 前言 正文开始!!! 一、理解分布式版本控制系统 我们目前所说的所有内容(工作区,暂存区,版本库等等),都是在本地…