Arduino 之木马模拟

本文记录了一位学生使用Arduino Leonardo制作键盘记录器并利用Ethernet发送邮件的过程。项目涉及SD卡读写、键盘模拟、网络通信及SMTP协议学习。遇到的挑战包括SD卡格式问题、网络编程及内存管理,最终成功完成项目。
摘要由CSDN通过智能技术生成

心路历程

当老师说要做一个嵌入式的小东西时,就感觉有点慌,因为在潜意识中他是一个很难的东西,于是在接下来的几天之中,就上网去找arduino的相关资料,最终有了一个大致的轮廓觉得也不是那么难了。

接下来就是要确定做什么项目了,做什么项目呢?一开始在高中同学的提议下打算做一个黑板擦,这个方案也想了好几天,预计着是让黑板擦可以在黑板上自由移动,实现自动擦黑板的功能,这个实现需要一个颜色识别模块,可以识别白色,这些都不难,但是要让小车吸附在黑板上并且可以自由移动,这就有点难了,并且和c的关系不大,学不到什么有价值的东西,难点主要是物理问题,于是就放弃了。

接下来几天就沉浸在网上找合适的项目,当时就有点着急,想早早的将项目做完然后就完事了,在“Arduino 入门与进阶”这个网站上找到了一个气象台的项目,美其名为“气象台”,实际也就是测个温度湿度然后再把他显示出来而已罢了,觉得听简单,于是就把它报给了老师,可是后来一想,自己真的是太着急了,这样的话根本学不到什么东西。

于是打算静下心来,真的了解arduino一些基本的东西,于是在arduino中文社区上面找到了一些教程,买了一个套件,学了两天,做了一些实验点了几个灯泡。嘿嘿嘿,然后平常闲着没事的时候就会看看arduino library ,看看有什么好玩的库,以及自己能搞学到什么,自己对客户机服务器一起ip,mac,子网掩码之类的不大明白,然后找到了ethernet库感觉不错,可以学到很多东西,于是就想在自己的项目上加上网络的东西。一个偶然的机会,了解到了arduino leonardo可以充当键盘还有鼠标的功能,于是就想做一个键盘记录的东西。所以这个项目大体确定。

项目简介 

将arduino leonardo和PS2键盘相连(为什么是ps2键盘呢?因为这个板子不支持usb,还需要另外补一个usb扩展版,于是就选择了PS2键盘),当按键盘时候arduino识别出来按的是什么键然后存储到SD卡中,再将识别的按键打到电脑上,当按一个红外遥控器一个特殊的键时,所记录的信息就会通过Ethernet发送一个邮件给特定的人。

学习到的知识

  1. 了解了arduino控制传感器的基本原理,并且实战了红外传感模块的使用
  2. 练习了SD卡的读写问题
  3. 学习了SMTP协议,以及客户端和服务器
  4. 知道如何使用arduino leonardo对键盘和鼠标的模拟
  5. 知道了base64加密的基本原理,并且亲自写了一个从而联系到了位运算等C的很重要的方面

实现过程

1.第一次开始测试器件是SD卡读写,首先在一个周末拿出来两个小时来看一下SD库,因为虽然有现成的代码,但是要随心所欲的写还是要明白一些基本函数。学完之后就开始测试,但是却久久没有成功,渐渐的一个上午过去了,感觉很苦恼,下午查了一下原因,原因是我的SD卡是fat32格式的,但是SD库支持的却是fat16格式的,于是上网查了一下如何转换格式,下载了“diskgenius”这个软件,就把它格式化了但是 测试的时候还是没有成功!!

失败1

唉,一个下午又过去了,有时候一点小bug就会让你找一天,回宿舍问了大神(王天浩)但是他也没有什么解决方案,于是就想是不是SD卡的问题,因此特意去电子市场买了一个大的SD卡,把小卡替换掉,就当我正在期待奇迹发生的时候,还是失败,当时心情真是差到了极点,感觉很累,于是周日下午就回宿舍睡了一下午,晚上在继续上网寻找原因,上天眷顾我让我终于找到了原因 [链接][“arduino1”] [id]: http://swf.com.tw/?p=406 原来是arduino leonardo这个板子的接口和其他板子不一样,他的MOSI MISO CLK 这三个接口和大多数板子不一样。无比兴奋的我当即测试了一下,果然如此。虽然两天时间过去了,但是还好,总算把SD模块整好了。

2.第二步就是模拟键盘这个功能了,于是在下一周末,在图书馆测试了一下这次比较顺利,然后顺带将 * KeyBoard 和 PS2KeyBoard *这两个库学习了半天,也都进行的比较顺利了。

3.第三步也是最困难的一步了,就是网络的问题, 自己对网络一窍不通,但又不想半知半解,于是在图书馆找了一本书,可是看了几天感觉太抽象,一点收获也没有,于是找了一个学习网络的视频 [链接][arduino2] [id]:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值