树莓派和esp8266在局域网下使用UDP通信,esp8266采集adc数据传递给树莓派,树莓派在web上显示结果
树莓派和esp8266需要在同一局域网下
esp8266使用arduino开发:
接入一个电容土壤湿度传感器,采集湿度需要使用adc
#include <ESP8266WiFi.h>
#include <WiFiUdp.h> const char* ssid = "litianmenzhenbu";
const char* password = "LT12345678";
const char* serverIp = "192.168.0.110";
const int serverPort = 5005;
const int adcPin = A0; WiFiUDP udp; void setup() {
Serial.begin(115200); WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi"); udp.begin(udp.localPort());
} void loop() {
int adcValue = analogRead(adcPin);
Serial.print("adcValue:");
Serial.println(adcValue);
udp.beginPacket(serverIp, serverPort);
udp.write((byte*)&adcValue, sizeof(adcValue));
udp.endPacket(); delay(1000);
}
树莓派使用python开发:
from flask import Flask, render_template
import socket
import threading app = Flask(__name__) # 设置树莓派的IP地址和端口
raspberry_pi_ip = '192.168.0.110'
raspberry_pi_port = 5005 adc_value = 0 # 接收UDP数据
def receive_udp_data():
global adc_value
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
udp_socket.bind((raspberry_pi_ip, raspberry_pi_port))
while True:
data, _ = udp_socket.recvfrom(1024)
adc_value = 70 - int.from_bytes(data, byteorder='little')
# 在这里处理ADC数据,例如将其存储到数据库或进行其他操作 # 启动接收UDP数据的线程
udp_thread = threading.Thread(target=receive_udp_data)
udp_thread.daemon = True
udp_thread.start() # 网页主页
@app.route('/')
def index():
# 在这里获取ADC数据,例如从数据库中读取最新的ADC值
return render_template('index1.html', adc_value=adc_value) if __name__ == '__main__':
app.run(host='0.0.0.0', port=8888)
index.html
<!DOCTYPE html>
<html>
<head>
<title>ADC Data</title>
</head>
<body>
<h1>ADC Data: {{ adc_value }}</h1>
</body>
</html>
效果:

树莓派和esp8266在局域网下使用UDP通信,esp8266采集adc数据传递给树莓派,树莓派在web上显示结果的更多相关文章
- qt在windows下的udp通信(最简单)
qt编程:windows下的udp通信 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:win7 开发环境:qt 功能: 用udp进行收发 ...
- 局域网内通过UDP协议进行传输接受数据——AsyncUdpSocket
在相同的局域网内,可以通过Udp协议进行数据的传输和接收,Udp协议与Http协议不同,Udp更加方便快捷,省去了很多步骤,但是也有很多传输问题,在局域网内小范围传输数据时Udp还是非常能够胜任的. ...
- 8-51单片机ESP8266学习-AT指令(单片机采集温湿度数据通过8266发送给C#TCP客户端显示)
http://www.cnblogs.com/yangfengwu/p/8785516.html 先写单片机端的程序 先把源码和资料链接放到这里 链接: https://pan.baidu.com/s ...
- DNS分别在什么情况下使用UDP和TCP
DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类.但很少有人知道DNS分别在什么情况下使用这两种协议. 如果用wiresha ...
- 【swoole】如何在docker+swoole环境下测试udp服务
前面几篇文章讲了使用 docker+swoole 环境来测试tcp服务以及如何测试,但是当我开始学习udp服务那块的时候,发现使用原来的方式在 docker+swoole 环境下行不通啦,后来发现如果 ...
- advanced ip scanner —— 局域网下 ip 及设备的扫描
advanced ip scanner 下载地址:Advanced IP Scanner - Download Free Network Scanner. 用于扫描当前局域网下全部设备及其 ip,构建 ...
- RedHat7局域网下安装离线Ambari
1 Ambari介绍.安装与应用案例介绍 1.1 Ambari Ambari 跟 Hadoop 等开源软件一样,也是 Apache Software Foundation 中的一个项目,并且是顶级项目 ...
- CentOS7局域网下安装离线Ambari
1 Ambari介绍.安装与应用案例介绍 1.1 Ambari Ambari 跟 Hadoop 等开源软件一样,也是 Apache Software Foundation 中的一个项目,并且是顶级项目 ...
- vue-cli启动本地服务,局域网下通过ip访问不到的原因
1.问题描述: 新开发了一个vue-cli项目,想通过手机查看效果,发现访问不到,ip地址和端口号都没错但是手机访问不到,在本机电脑浏览器输入ip端口号一样访问不到,只能通过localhost:808 ...
- ESP8266 station模式下建立client、server TCP连接
程序实现内容: 1.在station模式下,ESP8266作为client.server进行TCP连接2.实现数据的发送.接收(同时回传)实现思路:TCP网络通信分层为:应用层.网络层.数据链路层.物 ...
随机推荐
- [.Net 6]写一个简单的文件上传控件后端
此项目是配合上一篇文章[Vue]写一个简单的文件上传控件 - 林晓lx - 博客园 (cnblogs.com) 的后端程序,使用.Net 6项目框架搭建,开发前请安装Visual Studio 20 ...
- logon scripts后门
Windows登录脚本,当用户登录时触发,Logon Scripts能够优先于杀毒软件执行,绕过杀毒软件对敏感操作的拦截 注册表位置:HKEY_CURRENT_USER\Environment 在命令 ...
- FastGithub.UI64位中文版V2.1.4绿色版 - 软件推荐
推荐理由 相对于改hosts,这个更好用 FastGithub.UI64位中文版V2.1.4绿色版 https://www.cr173.com/soft/670733.html
- day07-IO流应用02
Java坦克大战07 8.IO流应用02 8.3记录退出游戏时敌人坦克坐标/方向,存盘退出 8.3.1思路分析 在Recorder类中,增加一个Vector集合,用来接收从MyPanel类中传入的en ...
- Android富文本开发
基础概念目录介绍 01.业务需求简单介绍 02.实现的方案介绍 03.异常状态下保存状态信息 04.处理软键盘回删按钮逻辑 05.在指定位置插入图片 06.在指定位置插入输入文字 07.如果对选中文字 ...
- LocalDate获取指定月的上个月的第一天和最后一天
LocalDate date = LocalDate.of(2022, 8, 30); LocalDate lastMonth = date.minusMonths(1); // 当前月份减1 Loc ...
- KingbaseES sys_bulkload数据加载工具错误处理
一.关于sys_bulkload数据加载工具 sys_bulkload是KingbaseES提供的快速加载数据的命令行工具.用户使用sys_bulkload工具能够把一定格式的文本数据简单.快速的加载 ...
- HashMap的三种遍历方式--Java--小白必懂
初学Hash Map总感觉它的遍历很麻烦,其实看懂后总结一下就是:集合+泛型,没啥特别的 总结一下HashMap的三种遍历方法如下: 保证一看就会>>> 1 // 对HashMap的 ...
- python爬虫配置随机请求头headers伪装User-Agent
python爬虫随机headers伪装fake_useragent fake_useragent 库 调用方法ua.random可以随机返回一个headers(User-Agent) from fak ...
- Python flask框架 request.json和request.form的区别
一.fetch请求时,request.json能获取到数据,request.form获取不到数据 1 var data = {'name':'test'}; 2 3 fetch('http://loc ...