树莓派作为客户端与WemosD1作为服务器的无线通信(局域网通信)
参考:树莓派作为客户端与WemosD1作为服务器的无线通信(局域网通信)
作者:图触靓
发布时间: 2020-07-26 21:50:39
网址:https://blog.csdn.net/bhbhhyg/article/details/107599915
目录
- wemos版作为服务端代码:
- 树莓派作为客户端与wemos连接代码:
跑Linux的树莓派可以通过路由器来与wemos版进行局域网内通信:
核心思想是linux下的socket网络编程,树莓派作为客户端,wemos作为服务器。
wemos版作为服务端代码:
#include <ESP8266WiFi.h>
char ssid[] = "路由器名称";
char passwd[] = "密码";void initWifiSta()
{WiFi.mode(WIFI_STA); // 设置STA模式WiFi.begin(ssid, passwd); //连接网络while (WiFi.status() != WL_CONNECTED) {Serial.print(".");delay(500);}Serial.println(WiFi.localIP()); //通过串口打印wemos的IP地址192.168.200.110delay(500);}
int port = 8888; //端口号
WiFiServer server(port); // 设置服务器端口号
void setup() {Serial.begin(115200);initWifiSta();pinMode(D2,OUTPUT);digitalWrite(D2,HIGH);}
void loop() {WiFiClient client = server.available(); server.begin();//服务初始化 while (client.connected()) {while (client.available() > 0) { char cmd = client.read(); //从客户端读取数据Serial.println(cmd);if(cmd==49){digitalWrite(D2,LOW);}else if(cmd==50){digitalWrite(D2,HIGH);}}}}
树莓派作为客户端与wemos连接代码:
#include<netinet/in.h>
#include <arpa/inet.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<unistd.h>
int main(int argc,char **argv){char readbuf[2];char ch[128];if (argc!=3){printf("input not good\n");exit(-1);}int fd_a;int s_fd=socket(AF_INET, SOCK_STREAM,0);//配置通信模式if (s_fd==-1){perror("socket");exit(-1);}struct sockaddr_in addr;struct sockaddr_in addr1;memset(&addr,0,sizeof(struct sockaddr_in));addr.sin_family=AF_INET;addr.sin_port=htons(atoi(argv[2]));inet_aton(argv[1],&addr.sin_addr);if(connect(s_fd,(struct sockaddr *)&addr,sizeof(struct sockaddr))==-1)//连接wemos版{ perror("connect");exit(-1);}while(1){printf("请输入发送的指令\n");gets(readbuf);puts(readbuf);write(s_fd,readbuf,strlen(readbuf));//向wemos版发送信息}return 0;
}
编译完成后,输入wemos的ip地址(X输入地址),和对应的端口号(A输入端口号),即可连接上wemos版,对其单向通信。
可以通过发指令无线操控wemos版进行工作。
树莓派作为客户端与WemosD1作为服务器的无线通信(局域网通信)相关推荐
- linux做一个客户端与WemosD1作为服务器的无线通信(局域网通信)
参考:linux做一个客户端与WemosD1作为服务器的无线通信(局域网通信) 作者:枕上 发布时间:2021-07-19 23:33:44 网址:https://blog.csdn.net/jinc ...
- GDC服务器主机与证书不匹配,调用web服务soap时,错误https URL主机名与客户端信任库中服务器证书上的公用名(CN)不匹配...
嘿,我想用SAAJ调用soap web服务 我用野蝇10 我试图将此系统属性添加到standalone.xml,但无法工作 20: 53:08208错误[stderr](默认任务-21),原因是:ja ...
- [ 搭建Redis本地服务器实践系列三 ] :图解Redis客户端工具连接Redis服务器
原文:[ 搭建Redis本地服务器实践系列三 ] :图解Redis客户端工具连接Redis服务器 上一章 [ 搭建Redis本地服务器实践系列二 ] :图解CentOS7配置Redis 介绍了Red ...
- 使用RedisDesktopManager客户端无法连接Redis服务器问题解决办法
使用RedisDesktopManager客户端无法连接Redis服务器问题解决办法 参考文章: (1)使用RedisDesktopManager客户端无法连接Redis服务器问题解决办法 (2)ht ...
- 未能分析从服务器收到的消息,WebSocket Javascript客户端未收到来自服务器的消息...
我已经在本地GlassFish 4.1服务器上部署了Java Web应用程序,该服务器实现了与Web客户端互操作的WebSockets.我能够通过套接字成功执行客户端到服务器的通信,但由于某种原因,服 ...
- 组策略配置客户端计算机使用WSUS服务器进行更新
本文出自 "叶俊生" 博客,请务必保留此出处http://yejunsheng.blog.51cto.com/793131/175814 当WSUS服务器安装好以后,你还需要配置客 ...
- 树莓派使用STEP5:安装samba文件共享服务器
samba服务器可以在多平台多操作系统搭建文件服务器,用于共享文件.为了方便windows和树莓派交换文件,将samba服务器的搭建过程记录如下. 1.安装samba服务器. sudo apt-get ...
- 客户端跳转与服务器跳转的区别
客户端跳转时用HttPservletResopse对象的sendRedirect函数实现,服务器端跳转是使用RequestDispather对象的forward方法实现的.这两者之间的区别主要体现在三 ...
- 10g的客户端从9i的服务器中导出数据时遇到上面的问题
EXP-00056: 遇到 ORACLE 错误 6550 ORA-06550: 第 1 行, 第 41 列: PLS-00302: 必须说明 'SET_NO_OUTLINES' 组件 ORA-0655 ...
最新文章
- (CodeForces 548B 暴力) Mike and Fun
- ZOJ2314 Reactor Cooling(无源汇流量有上下界网络的可行流)
- ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 ——材料清单
- 深度学习进行目标识别的资源列表
- Jacobian vector products(转载+翻译+代码+解读)
- 如何将exe文件在linux下执行,如何在Linux系统下查找可执行文件
- LwIP移植到FreeRTOS(STM32F107+DP83848)
- E9流程表单中动态自定义添加button js代码
- 【VHDL】分频器设计要求:25分频,占空比为50%
- mysql jemalloc_Jemalloc优化MySQL和Nginx
- 软件配合实现的“一键开关机电路
- Android模拟器网络连接问题解决,解决小蚁安卓模拟器网络异常无法连接的方法...
- MySQL数据字典提示1146不存在的问题解决
- 【运维面试】面试官:你觉得网站访问慢的原因有哪些?
- ubuntu 18.04+GTX30系列显卡+TensorFlow-gpu1.15
- 分布式系统监控软件zabbix—— 通过qqmail或第三方报警平台(睿象云)发送告警信息
- 2022-2028全球与中国消防无人机市场现状及未来发展趋势
- bert 中文 代码 谷歌_从字到词,大词典中文BERT模型的探索之旅
- 提高iTunes更新速度的DNS
- hive sql自动生成id的两种方法随机id和自增id