智能垃圾桶

本文介绍了智能清洁桶项目,包括避障小车模式和清洁桶模式的实现,如自动开盖、温湿度检测、远程控制等。项目采用树莓派作为主控,集成OLED显示屏、超声波模块、湿温度传感器等组件。文中还详细阐述了多线程、TCP/IP网络编程和文件操作等技术的应用,并讨论了在实现过程中遇到的问题和解决策略。
摘要由CSDN通过智能技术生成

本周我们做了智能清洁桶项目,该项目主要实现以下功能
避障小车模式:
1.避障移动
清洁桶模式:
1.手伸过去,自动把盖子打开
2.屏幕显示状态
3.检测湿温度
4.远程控制,tcpip发送控制命令

涉及到的模块有:
1.树莓派主控
2.oled显示屏
3.超声波模块
4.湿温度传感器
5.S90舵机
6.马达和轮子
7.清洁桶

架构:
远程控制服务度:
树莓派
远程控制客户端:
linux虚拟机

模块对应功能
1.oled显示屏
(1)温湿度
(2)时间
(3)树莓派IP
(4) made in zcc
2.超声波模块
1.识别手扔垃圾的动作
2.识别障碍物
3.温湿度传感器
(1).读取当前环境的温湿度
4.SG90舵机
(1)打开清洁桶的盖子
5.马达和轮子
(1)通过热熔胶黏在筒底部
设计到的知识点:
1.多线程及锁
2.tcpip网络编程
3.文件操作-日志模块
以上是需要实现的具体功能,接下来我描述下我具体实现的方法:
1.实现oled显示屏:
初始化oled屏:
unsigned char yi[4][16] = {
"Hello world! ",
" ",
" 172.20.10.10 ",
" made in zcc "
};
const unsigned char zi[];
void init(void)
{
wiringPiSetup();
fd = wiringPiI2CSetup(0x3c);
wiringPiI2CWriteReg8(fd, 0x00, 0xa1);
wiringPiI2CWriteReg8(fd, 0x00, 0xc8);
wiringPiI2CWriteReg8(fd, 0x00, 0x8d);
wiringPiI2CWriteReg8(fd, 0x00, 0x14);
wiringPiI2CWriteReg8(fd, 0x00, 0xa6);
wiringPiI2CWriteReg8(fd, 0x00, 0x21);
wiringPiI2CWriteReg8(fd, 0x00, 0x00);
wiringPiI2CWriteReg8(fd, 0x00, 0x7f);
wiringPiI2CWriteReg8(fd, 0x00, 0xaf);
}

void qingping(){
char zt1,zt2;
for(zt1=0;zt1<8;zt1++)
{
    wiringPiI2CWriteReg8(fd,0x00,0xb0+zt1);
    for(zt2=0;zt2<128;zt2++) wiringPiI2CWriteReg8(fd,0x40,0x00);
}
}void ascii(void)//显示ASCII码8*16{
int zt;
char zt3,zt4;
for(zt3=0;zt3<4;zt3++)
{
    wiringPiI2CWriteReg8(fd,0x00,0xb0+(zt3*2));
    for(zt4=0;zt4<16;zt4++)
        for(zt=0;zt<8;zt++)
            wiringPiI2CWriteReg8(fd,0x40,zi[yi[zt3][zt4]*16+zt]);
    wiringPiI2CWriteReg8(fd,0x00,0xb0+(zt3*2)+1);
    for(zt4=0;zt4<16;zt4++)
        for(zt=0;zt<8;zt++)
            wiringPiI2CWriteReg8(fd,0x40,zi[yi[zt3][zt4]*16+zt+8]);
}
}

获取时间:
void shijian(void)//当前时间{
struct tm *ptr;
time_t lt;
lt=time(&lt);
ptr=localtime(&lt);
strftime(yi[1],16,"%m/%d %a

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值