智能垃圾桶 Linux和树莓派-网络编程(总结)

基于Linux全志H3开发板的智能垃圾桶 Linux智能垃圾桶 阅读详情

前期准备:

1.OLED液晶显示模块
2.L9110马达驱动模块
3.HC-SR04超声波模块
4.SG90舵机驱动模块
5.DS18B20温度检测模块
6.树莓派3B

模块原理:

  • OLED液晶显示屏:
    液晶显示是点阵显示,就是一个一个的点显示在屏幕上,靠这些点的亮灭组合来完成我们想要的目标。
    1.那么我们 要想显示就得先创建一个用来初始化屏幕的数组。
    2.我们创建一个能显示内容在屏幕上的数组。
    3.创建一个函数使数组内容能显示在液晶屏上。

  • L9110马达驱动模块:
    L9110驱动马达原理就是改变引脚高低电平的变化,使电机驱动,改变BWM 控制转速。

  • HC-SRO4超声波:
    (1)采用 IO 口 TRIG 触发测距,给至少 10us 的高电平信号;
    (2)模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回;
    (3)有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2;

  • SG90舵机
    1.初始化引脚
    2.创建一个使舵机转到90的pwm输出信号
    3.将pwm输出复写为使舵机转到0

  • DS18B20 温度显示模块
    读取在"/sys/bus/w1/devices/cd 28-00000xxx"目录下的 w1_slave 来获取温度

  • 树莓派3B
    wiringPi 库的使用。

具体实现:

1.在Linux上创建客户端,树莓派上创建服务端
2.Linux上发送指令,树莓派接受
3.树莓派执行指令使垃圾桶移动

遇到难点,如何攻克

1.在树莓派上创建多线程实现垃圾桶的移动和温度显示还有垃圾桶盖自动打开的过程中,多线程之间的关系不知道怎么处理。  

	如何解决: 感觉线程之间没什么关系,所以就简单的创建了多个线程,并没用到锁的互斥和条件判断。(好像是没解决 ,哈哈)

2.Linux远程控制垃圾桶移动时总会发生树莓派的断开连接。

	如何解决:马达供电不足,单独给L9110模块供电就可以了。(还是困扰了我好一会的)

3.OLED上显示温度有时会乱码,有时又不会 。
	
	如何解决:没解决 ,总感觉是模块的问题。

多线程的原理

1.在一个进程里创建多个线程来处理不同或相同的事
2.父子进程的调用

像在这次的智能垃圾桶项目里,就是在树莓派上创建多个线程,分别做垃圾桶的移动、盖子的智能开关、温度显示。
树莓派——http、tcp、socket协议 第四次挥手 客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态,但此时TCP连接还未终止,必须要经过2MSL后(最长报文寿命),当客户端撤销相应的TCB后,客户端才会进入CLOSED关闭状态,服务器端接收到确认报文后,会立即进入CLOSED关闭状态,到这里TCP连接就断开了,四次挥手完成。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。 阅读详情

相关推荐

基于树莓派的智能垃圾桶

基于树莓派的智能垃圾桶项目 预计所需要实现的功能 通过感应能够实现垃圾桶盖子的自动开关。 垃圾桶上装载OLED屏,屏幕上需要显示,温度,时间。 远程控制通过电脑端实现控制垃圾桶的移动。 功能模块: 1树莓派3B开发板一块 2OLED显示屏一块 3超声波模块 4SG90舵机 5直流电机,轮子,电机驱动板 6清洁桶 程序代码: 服务端程序(写在树莓派上的) include <stdio.h&gt...

qq_42014326的博客 4550

智能垃圾桶项目:Linux环境下

这一个项目让我发现了非常多的问题,比如上面提到的使用条件变量时,要注意mutex必须要被及时获取到。然后项目中有许多的优化点,比如写入文件和写入数据库的时候,会发现写入的数据不对。

GS8FG的博客 492

智能垃圾桶(七)——SG90舵机的介绍与使用(树莓派pico实现)

SG90舵机的介绍与使用(树莓派pico实现)

河海大学研究生在读的学习笔记 9053

基于Linux的智能垃圾桶项目

garbage.py# 引入依赖包import osimport io# 创建AccessKey ID和AccessKey Secret,请参考https://help.aliyun.com/document_detail/175144.html。# 如果您用的是RAM用户的AccessKey,还需要为RAM用户授予权限AliyunVIAPIFullAccess,请参考https://help.aliyun.com/document_detail/145025.html。

m0_73510889的博客 1283

Allegro PCB设计小技巧:如何用Shift键快速平移复制走线和过孔?

本文深入解析了Allegro PCB设计中利用Shift键进行平移复制的核心技巧。通过对比传统复制粘贴流程,详细演示了如何高效、精准地批量复制走线和过孔,尤其适用于创建等间距电源总线、过孔阵列等场景,能显著提升PCB设计效率与准确性。

pz89012345的博客 554

时空数据建模的跨节点联邦图神经网络:KDD21 Cross-Node Federated Graph Neural Network for Spatio-Temporal Data Modeling

前言 联邦学习(FL)虽然已经被广泛研究,但是对复杂的时空依赖关系进行建模以提高预测能力仍然是一个开放的问题。此外目前最优的时空预测模型假定对数据的访问不受限制,忽略了对数据共享的限制。基于此,本文提了一个基于图联邦学习的时空数据模型 Cross-Node Federated Graph Neural Network (CNFGNN),该模型在跨节点联邦学习的约束下,使用基于图神经网络(GNN)的架构对底层图结构进行编码,属于结构化联邦的一种,每个本地模型利用私有数据进行学习,并保持分散性。CNFGNN

qq_56027260的博客 1810

11.【Orangepi Zero2】基于Linux的智能垃圾桶项目

语音接入控制垃圾分类识别,并触发垃圾桶的开关盖回顾二阶段的Socket编程,实现Sockect发送指令远程控制垃圾分类识别,并触发垃圾桶的开关盖图像识别垃圾分类功能语音播报垃圾物品类型OLED显示垃圾物品类型根据垃圾类型开关不同类型垃圾桶图像处理使用阿里SDK支持Python和Java接口,目的是引入C语言的Python调用,感受大厂做的算法bug。此接口是人工智能接口,阿里云识别模型是通过训练后的模型,精准度取决于训练程度,人工智能范畴 在常规嵌入式设备负责执行居多。

黄色的拉拉的博客 1210

psasp和matlab,PSASP与Matlab/SimPowerSystems联合仿真接口方法研究

[1]李亚楼,吴中习.Matlab模型接入PSASP暂态稳定计算模块的方法[J].电网技术,2008,32(19):31-36.Li Yalou,Wu Zhongxi.An Approach to Interface Matlab Model with PSASP Transient Stability Module [J].Power System Technology,2008,32(19):...

weixin_39636245的博客 1081

树莓派控制的智能垃圾桶项目

技术不断的革新,对于生活的享受也越来越注重了。下面我们开始今天的主题。 项目用到的硬件: 树莓派3b HC-SRO4超声波模块 sg90舵机 ds18b20温度模块 oled模块 两个电机 l9110s桥两路直流电机驱动板 垃圾桶一个 项目总体步骤和规划: 架构: 树莓派(服务端) linux虚拟机(客户端) 功能设计: 1移动的功能: 通过虚拟机的指令来操控垃圾桶的移动 2 oled显示屏功能...

weixin_43664986的博客 1986

小白跑WRF第五天,安装WPS和静态地理数据

小白跑WRF第四天,安装WPS一、WPS简介二、下载和安装WPSV4.0第一步、进入Build_WRF文件夹第二步、下载WPSV4.0第三步、解压WPS安装包第四步、修改intmath.f(必须执行)第五步、安装WPS三、修改namelist.wps 一、WPS简介 二、下载和安装WPSV4.0 第一步、进入Build_WRF文件夹 cd Build_WRF 第二步、下载WPSV4.0 下载WPSV4.0的安装包有以下三种方式: 利用Linux命令下载。 进入网站https://www2.mmm.uca

weixin_42372313的博客 2万+

机器人示教器方案昆仑通态脚本实现( 三菱FX3U+昆仑通态3轴联动))

项目应用场景:最终客户需要自由的修改程序流程,如检测什么信号,多少时间,再进入下一步,轴定位轨迹可以自由修改,方便最终可以在不修改PLC程序的情况下,自由示教程序。3.指令数量可以自行添加,在内存足够的情况下,无限制,只需要在PLC框架里面写好每个指令执行的内容就可以了,不需要在程序里面重复写相同类容;4.模板有延时指令,输入指令,输出指令,伺服定位指令,焊钳控制指令,自动修磨指令,转矩模式指令,结束指令等(可自行添加);1.有类似示教器编程功能,可以任意位置插入指令,可以任意位置删除指令;

huanyuecuiyu的博客 969

从零打造智能垃圾桶:Arduino与传感器实战入门指南

嵌入式系统是现代智能设备的核心,它通过传感器感知环境、微控制器处理逻辑、执行器做出动作,构成了物联网的底层基础。其技术价值在于将软件逻辑与物理世界连接,实现自动化控制。在智能家居、环境监测等应用场景中,嵌入式开发是关键技术。本文以热门的Arduino平台和超声波传感器为例,通过一个完整的智能垃圾桶项目,详细解析了从硬件选型、电路搭建到代码编写的全流程。项目涉及舵机控制、PWM信号原理以及常见的电源噪声问题排查,为初学者提供了从概念到实践的清晰路径,是嵌入式开发入门的绝佳实践案例。

weixin_34345753的博客 315

【STM32项目】基于AI技术的多功能消防机器人(完整工程资料源码)

机器人通过巡逻扫描环境空间与障碍物、定位导航、探测物体/环境进行建模/自动地图测绘、扫描火焰、获取温湿度大小、获取空气安全情况来判断当前环境地点是否安全,检测到温度过高或检测到易燃、烟雾、有毒气体或摄像头识别到火焰时能够通过高压水泵喷射器来实现火焰隔离工作,蜂鸣器进行现场鸣笛报警,同时将当前环境温湿度大小、空气情况、环境地图、是否安全信息,将各个传感器来接收获取到的信息,实时发送到用户手机中的微信小程序,实现与用户远程监视功能,用户同时也能通过手机与电脑远程下发命令来操控机器人来实现交互功能

嵌入式技术开发 1万+

嵌入式开发-各种干货

1、Jar包上传到FTP 2、登录Ubuntu,修改jar包的属性sudo chmod 777 xxxxx.jar 3、运行jar nohup java -jar xxxxxx.jar 4、结束服务: ps -e | grep java 查看java的进程号 5、sudo kill 进程号 nohup java -jar /srv/ftpdata/smu/www/shared_device_service-1.0-SNAPSHOT.jar & #后台运行 目录第一章 C语言基础注意事项1.1链

DSK_981029的博客 4036

创建 Fiori Space 时看不到传输请求的根因与排查路径

摘要: 在创建Fiori Space时,若Transport字段下拉列表为空,通常是因为系统未找到符合要求的传输请求。主要原因是: 请求类型不匹配:需使用Customizing request而非Workbench request。 用户权限问题:当前用户需在请求下有可用的task。 客户端或系统不一致:请求需在当前客户端和正确系统(如后端)中创建。 解决方法: 在当前客户端和系统中新建Customizing request,确保包含用户task。 检查是否为前后端分离架构,确保请求创建在正确的系统。 验证

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 107

大模型对齐的核心引擎:RLHF三阶段完整技术体系详解——从InstructGPT到ChatGPT与Claude 4.6的工程实践

RLHF从InstructGPT起步,经由ChatGPT、Claude系列的工程实践,已演变为现代大语言模型不可或缺的对齐基础设施。其三阶段流程——SFT构建基础能力基线,奖励模型将人类偏好编码为可微信号,PPO以KL约束驱动策略向偏好分布优化——构成了当代对齐技术的核心骨架。OpenAI的路线侧重于以海量人工标注和多目标奖励建模持续精细化RLHF流程,在规模与工程深度上持续推进;

nmdbbzcl的博客 1062

CnOpenData 线上招聘网站信息数据

CnOpenData线上招聘网站信息数据库是一个覆盖中国主流招聘平台、时间跨度长、更新频率高的劳动力市场需求侧大数据集合。本数据库汇集了,为学术界和业界提供了一扇实时观察中国劳动力市场动态的窗口。

CnOpenData_wj的博客 2602

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

在linux/centos中构建一个“垃圾桶”

人类犯错误时因为我们不是一台电脑,所以在使用rm命令时要额外注意,不要在 任何时候使用rm -rf *当你使用rm命令时,它会永久删除文件,不会像文件管理器那样将这些文件移动到“垃圾箱” 将文件移动到“垃圾箱”是一个好主意,当你无意中运行rm命令时候,可以拯救你i;但是很少有人会说这是个好习惯,如果你不注意“垃圾桶”,它可能会在一段时间内被文件和目录堆积起来。在这种情况下,建议你按照你的意愿去做...

blackcloud 858

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Linux垃圾桶

部署一个垃圾桶,防止删错文件 #下载GitHUB上的垃圾桶项目,并把服务添加至系统级 #yum -y install git #git clone https://github.com/lagerspetz/linux-stuff #mv linux-stuff/scripts/saferm.sh /usr/bin/ #设置 “rm” 的别名为 saferm.sh &lt;在文件末尾添加&gt;...

weixin_43214808的博客 1328

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

树莓派开发

下载 Raspberry Pi Imager(比较省事,不用下载 SD Card Formatter、Win32DiskImager)Raspberry Pi Image下载网址:树莓派官网下载合适的镜像准备刷机工具:下载 SD Card Formatter、Win32DiskImager格式化SD卡烧录镜像到SD卡。

z398613041的博客 1362

Python 树莓派编程学习指南(一)

所以,你已经有了一台树莓派迷你电脑,你在想:“现在怎么办?”也许这是一个礼物。也许你听说过这个“覆盆子馅饼”,并决定找出所有的骚动是怎么回事。也许你已经对计算机有经验了,但对 Linux 或 Python 却没有。也许你是一个 Linux 极客,从来没有用几行代码和正确安装的硬件和软件做过伺服运动或点亮过 LED。或者,也许你对电脑的熟悉程度只达到了查看邮件和上网冲浪的程度,但却渴望了解更多。或者(这是我最喜欢的场景之一)你是一名教育家,对教育下一代计算机、编程和一般技术感兴趣。不管是什么情况,欢迎!

龙哥盟 3601

树莓派与网络编程笔记

树莓派简单小车入门:http://shumeipai.nxez.com/2015/11/08/raspberry-pi-car-diy-tutorials-by-sunny.html树莓派学习(博客):http://blog.youkuaiyun.com/xukai871105/article/category/1436049 Socket通信原理简介:https://www.jianshu.com/p/90...

Kachuan的博客 1607

树莓派之linux网络编程:socket非阻塞模式实现,方便调试PID

最近开始左pid调节了,多环串级PID,总共6个参数,每次都要改参数,重新启动太麻烦,于是计划用pythonGUI编程结合socket通信,做一个假单多pid调节。花了几天时间,功能实现了,虽然bug还不少,能用了。 界面很简单,里面用到了python,tkinter,socket,多线程等库。由于socket默认是阻塞多,这里需要做成非阻塞的形式,才不至于等待数据多接收而等待,这样程序没有意义...

weixin_42866931的博客 585

如何使用 Python 进行 Raspberry Pi 树莓派硬件编程、网络配置等详细教程

01、流水灯的实现 树莓派实验板的实现流水灯: [Pin(i, Pin.OUT) for i in range(0,8)] 这是列表生成器,在基础研究篇讲到过,迭代器的思想。 from machine import Pin from utime import sleep # 定义LED 管理 leds = [Pin(i, Pin.OUT) for i in range(0,8)] while True: for n in range(0,8): leds[n].value(1)

唤醒手腕 8353

Xbee、树莓派和 Arduino 传感器网络编程(三)

原文:Beginning Sensor Networks with XBee, Raspberry Pi, and Arduino 协议:CC BY-NC-SA 4.0 六、基于 Arduino 的传感器节点 物理计算的最大进步之一是微控制器的激增。微控制器由一个处理器、一个小指令集、存储器和可编程输入/输出电路组成,包含在单个芯片上。微控制器通常与支持电路和连接一起封装在一个小的印刷电路板上。 微控制器用于嵌入式系统中,可以定制小型软件程序来控制和监控硬件设备,使其成为传感器网络的理想选择。Ardui

龙哥盟 1018
上一篇: 自己写strcpy函数
下一篇: 自己制作树莓派镜像文件
四夕、
博客等级 码龄8年 19粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值