树莓派和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上显示结果的更多相关文章

  1. qt在windows下的udp通信(最简单)

    qt编程:windows下的udp通信 本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:win7 开发环境:qt 功能: 用udp进行收发 ...

  2. 局域网内通过UDP协议进行传输接受数据——AsyncUdpSocket

    在相同的局域网内,可以通过Udp协议进行数据的传输和接收,Udp协议与Http协议不同,Udp更加方便快捷,省去了很多步骤,但是也有很多传输问题,在局域网内小范围传输数据时Udp还是非常能够胜任的. ...

  3. 8-51单片机ESP8266学习-AT指令(单片机采集温湿度数据通过8266发送给C#TCP客户端显示)

    http://www.cnblogs.com/yangfengwu/p/8785516.html 先写单片机端的程序 先把源码和资料链接放到这里 链接: https://pan.baidu.com/s ...

  4. DNS分别在什么情况下使用UDP和TCP

    DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类.但很少有人知道DNS分别在什么情况下使用这两种协议.     如果用wiresha ...

  5. 【swoole】如何在docker+swoole环境下测试udp服务

    前面几篇文章讲了使用 docker+swoole 环境来测试tcp服务以及如何测试,但是当我开始学习udp服务那块的时候,发现使用原来的方式在 docker+swoole 环境下行不通啦,后来发现如果 ...

  6. advanced ip scanner —— 局域网下 ip 及设备的扫描

    advanced ip scanner 下载地址:Advanced IP Scanner - Download Free Network Scanner. 用于扫描当前局域网下全部设备及其 ip,构建 ...

  7. RedHat7局域网下安装离线Ambari

    1 Ambari介绍.安装与应用案例介绍 1.1 Ambari Ambari 跟 Hadoop 等开源软件一样,也是 Apache Software Foundation 中的一个项目,并且是顶级项目 ...

  8. CentOS7局域网下安装离线Ambari

    1 Ambari介绍.安装与应用案例介绍 1.1 Ambari Ambari 跟 Hadoop 等开源软件一样,也是 Apache Software Foundation 中的一个项目,并且是顶级项目 ...

  9. vue-cli启动本地服务,局域网下通过ip访问不到的原因

    1.问题描述: 新开发了一个vue-cli项目,想通过手机查看效果,发现访问不到,ip地址和端口号都没错但是手机访问不到,在本机电脑浏览器输入ip端口号一样访问不到,只能通过localhost:808 ...

  10. ESP8266 station模式下建立client、server TCP连接

    程序实现内容: 1.在station模式下,ESP8266作为client.server进行TCP连接2.实现数据的发送.接收(同时回传)实现思路:TCP网络通信分层为:应用层.网络层.数据链路层.物 ...

随机推荐

  1. centos 磁盘满

    1.使用命令:df -lk 找到已满磁盘 2.使用命令:du --max-depth=1 -h 查找大文件,删除

  2. crypto-js DES加密 base64 post传输

    演示地址: http://pengchenggang.gitee.io/crypto-js-des/ 开源地址: https://gitee.com/pengchenggang/crypto-js-d ...

  3. 【预训练语言模型】使用Transformers库进行GPT2预训练

    基于 HuggingFace的Transformer库,在Colab或Kaggle进行预训练. 本教程提供:英文数据集wikitext-2和代码数据集的预训练. 注:可以自行上传数据集进行训练 目的: ...

  4. 【2311. 小于等于 K 的最长二进制子序列】贪心

    class Solution { public static void main(String[] args) { Solution solution = new Solution(); System ...

  5. 【虚拟仿真】3DCAT虚拟仿真在化工安全方面的应用

    随着中国经济的快速发展,石油化工企业的生产事故也在频繁发生.国家目前对生产安全的重视程度提高到前所未有的高度.企业也在安全管理上做了许多工作,如:进行安全培训,制定安全手册等.但这些方式的效果不明显, ...

  6. App启动页面优化

    目录介绍 01.存在白屏问题 1.1 问题描述 1.2 问题分析 02.解决白屏的办法 2.1 解决方案分析 2.2 第一种解决方案 2.3 第二种解决方案 2.4 注意要点 03.Applicati ...

  7. jsonb操作符

    json类型以文本方式存储json对象,把输入的数据原封不动的存放到数据库中,会保留多余的空格,保留重复的Key,保留Key的顺序. jsonb类型转换文本格式json对象为二进制格式,不保留多余的空 ...

  8. archlinux xfce未中文化 goldendict不能显示中文

    下载个中文字体包就好了 https://wiki.archlinuxcn.org/wiki/简体中文本地化

  9. Scala 特质(Trait)

    1 package chapter06 2 3 object Test13_Trait { 4 def main(args: Array[String]): Unit = { 5 val studen ...

  10. 03-【HAL库】STM32实现SYN6288模块语音播报.md

    一.什么是SYN6288模块 1.概述 ​ SYN6288 中文语音合成芯片是北京宇音天下科技有限公司于2010 年初推出的一款性/价比更高,效果更自然的一款中高端语音合成芯片.SYN6288 通过异 ...