您的位置: 主页>机器人编程>ROBOLAB编程>嘘~~听说有逼格的人都基于Arduino搭建个人聊天室
加盟酷吧机器人 培养孩子核心能力

嘘~~听说有逼格的人都基于Arduino搭建个人聊天室

本聊天服务器应用于局域网内,为了搭建该服务器你需要的硬件有Arduino UNO,Ethernet扩展板,或者也可以使用Arduino的Mega、Leonardo等兼容Ethernet扩展板的主控板替代UNO,甚至你也可以直接使用Arduino Ethernet集成控制器,免去了控制板的堆叠,本次我们使用UNO与新版扩展板堆叠。

同时,你也需要一些C++编程,懂得一点Arduino的基本知识,大佬劝退!

——聪明的瓦肯人SO,

嘘~~听说有逼格的人都基于Arduino搭建个人聊天室了!


1、 硬件连接

UNO是啥? 这个

嘘~~听说有逼格的人都基于Arduino搭建个人聊天室了!

Ethernet扩展板是啥?这个

嘘~~听说有逼格的人都基于Arduino搭建个人聊天室了!

所以,UNO+Etnernet是啥?

这个啦

嘘~~听说有逼格的人都基于Arduino搭建个人聊天室了!

注意如果你使用其他主控板的堆叠方案

要注意自己使用的Ethernet扩展板

是新版还是旧版

再结合具体的IO口排布堆叠

实际上,Ethernet扩展板通过SPI总线与Arduino连接,使用时,两者需要通过不同SS引脚选择使能。在UNO或其他使用ATmega328芯片的主控板上,占用13、12、11、10、4引脚进行网络通信及SD卡存储。而MEGA的引脚占用情况可不一样。同时,旧版的Ethernet扩展板是通过10~13号引脚连接到W5100芯片,使得其只能堆叠到UNO上,与此同时,MEGA的SPI引脚是50~53、Leonardo的SPI引脚在ICSP引脚处。到了新版扩展板,其新添了ICSP引脚母头,所以在上述三个板均可直接堆叠使用。

实在不知道

那就找百度

然后

哪个地方接电源接网线想必是一目了然的

一切都连接好后

上电应该如下图所示

嘘~~听说有逼格的人都基于Arduino搭建个人聊天室了!

PWR、LINK、100M、FULLED以及L常亮同时RX与TX会时不时闪烁说明发生了一些网络通信

COLL闪烁说明检测到冲突

在这之后是时候写点程序了

嘘~~听说有逼格的人都基于Arduino搭建个人聊天室了!

2、服务端搭建

本聊天室是基于Telnet协议连接

其是TCP协议的子集

实际上

我们需要编写的仅仅是服务器程序

至于客户端之后会说

话不多说,上代码

(我们在Arduino IDE中编写代码)

//调用SPI和Ethernet类库#include #include // 输入MAC地址和IP地址,在此后的控制中将会用到//IP地址需要根据本地网络进行设置// 网关和子网掩码、DNS是可选的,可以不用填byte mac[] = {0xDE,0xAD, 0xBE, 0xEF, 0xFE,0xED};IPAddress ip(192, 168, 1, 177); // 这段IP都是局域网(比如你的WIFI)下的IP,可以随便设置,一般范围为192.168.1.2~192.168.1.255//但是不要与该局域网下的其他设备有冲突// IPAddress myDns(192,168,1, 1);// IPAddressgateway(192, 168, 1, 1);// IPAddress subnet(255, 255, 0, 0);// 创建一个服务器对象,Telnet默认端口为23EthernetServer server(23);//记录之前是否有客户端接入boolean alreadyConnected = false;void setup() {  // 初始化网络设备Ethernet.begin(mac, ip, myDns,gateway, subnet);// 开始监听客户端server.begin();  //初始化串口Serial.begin(9600);while (!Serial){    ; // 等待串口连接,需要先把USB线接好}// 串口打印网络设备的IP地址Serial.print("Chat serveraddress:");Serial.println(Ethernet.localIP());}void loop(){  // 等待一个新的客户端连接:创建一个客户端对象,并通过available()函数返回一个连接到本服务器的对象EthernetClientclient = server.available();  // 当服务器第一次发送数据时,发送一个Hello回应if (client) {if(!alreadyConnected) {      //flush()函数清除输入缓冲区client.flush();Serial.println("We have a newclient");      //向客户端发送数据client.println("Hello, client!");alreadyConnected =true;}if (client.available() > 0){      // 读取从客户端发来的数据char thisChar =client.read();      //服务器发送从某一台客户端收到的数据到所有客户端(一般在屏幕上显示)server.write(thisChar);      //将同样的数据发送到串口Serial.write(thisChar);}}}有了这些解释是不是非常简单?嘘~~听说有逼格的人都基于Arduino搭建个人聊天室了!

写完了程序就开始烧录吧

在Arduino IDE中

选择UNO以及相应的端口号

编译

上传

嘘~~听说有逼格的人都基于Arduino搭建个人聊天室了!

3、客户端搭建

严格地说

客户端算不上搭建

仅仅算是开启Telnet客户端

这里我们以windows系统为例

在XP系统中

该客户端是默认开启的

其他windows系统的请跟我来

马上就要成功了

嘘~~听说有逼格的人都基于Arduino搭建个人聊天室了!

步骤:

控制面板-程序-程序和功能

(有些小伙伴可能在控制面板中直接就找到了程序和功能)

选择

打开或关闭Windows功能

从而打开了windows功能对话框

(由于功能众多,打开该对话框需要缓冲的时间较长)

耐心等待哦

然后选中

Telnet客户端

点击确定

嘘~~听说有逼格的人都基于Arduino搭建个人聊天室了!

4、开启对话

快捷键

开始+R

(开始菜单+运行)

输入

telnet

点击确定

嘘~~听说有逼格的人都基于Arduino搭建个人聊天室了!

在出现的命令行对话框中输入

open 192.168.1.177 [23]

这里的192.168.1.177换成你自己在上面的程序中设置的IP

端口号[23]是默认的

所以可以省略

嘘~~听说有逼格的人都基于Arduino搭建个人聊天室了!

回车之后

你会发现

界面一直显示“正在连接......”

如上图所示

Don't worry!

实际此时上已经连上了

键盘上随便敲一个字母就能进入对话界面

是的,我敲了一个K

嘘~~听说有逼格的人都基于Arduino搭建个人聊天室了!

上面的"Hello client!"

不就是服务端程序中的这段代码吗?

嘘~~听说有逼格的人都基于Arduino搭建个人聊天室了!

太无聊了

赶紧再找另一台电脑加入聊天室

操作如上

结果如下

嘘~~听说有逼格的人都基于Arduino搭建个人聊天室了!

全程匿名

但是

缺点也是显而易见的

就是输入法有问题

除了英文,似乎只有渣渣的微软拼音

更要命的是

显示也是一塌糊涂

但这并不妨碍你在朋友面前

有逼格

嘘~~听说有逼格的人都基于Arduino搭建个人聊天室了!

技术无原罪,装逼有风险,不经意间的流露才是真正的大哥,有逼格的生活就是这么的朴实无华!还不快快搭建起来!

——聪明的瓦肯人

后记,小编朋友研发了一个游戏化的少儿编程在线课程(5-12岁),游戏化教学结合scratch(一款在线少儿编程工具,类似乐高的积木拼搭),我家娃娃学了几次课,非常喜欢(超预期),16次课才200多块钱,对锻炼孩子的思维能力和动手动力很有帮助。

欧美思机器人教育加盟 赚钱好项目
上一篇:使用Arduino开发ESP32:文件和文件系统使用(基于
下一篇:又到开学啦!孩子不想上学?用这招轻松搞定!
您可能喜欢
回到顶部