物联网系统1.1(云服务器)
物联网系统1.1(云服务器)
在物联网系统1.0(局域网)的基础上实现STM32连接云服务器,云服务器发送收到的数据到电脑就行了
云服务器评测如何将数据发送给电脑
电脑是一个内网IP,不用云服务器去找电脑,让电脑作为TCP client连接云服务器就行了
1
STM32需要的指令
uint8_t AT[]="AT\r\n";
uint8_t AT_RST[]="AT+RST\r\n";
uint8_t AT_CWJAP_CUR[]="AT+CWJAP_CUR=\"Cise_128_01\",\"213213213\"\r\n";//Á¬½ÓAP
uint8_t AT_CIPSTART[]="AT+CIPSTART=\"TCP\",\"云服务器IP\",6699\r\n";//Á¬½ÓTCP
不再设置单连接和透传模式
1
2
3
4
5
STM32发送数据
先使用AT+CIPSENDBUF=%d指定要发送的数据长度
uint8_t qw[18];
sprintf(qw,"AT+CIPSENDBUF=%d\r\n",sizeof(hongawai));
HAL_UART_Transmit(&huart2, (uint8_t *)qw, sizeof(qw), 0xFFFF);
再发送数据
【不同于透传,透传模式建立后直接发送数据即可】
【如果服务器可以建立多个tcp端口就可以使用透传了】
1
2
3
4
5
6
7
云服务器评测使用python建立TCP server,打开两个socket等待连接
#!/usr/bin/env python3
#-*- coding:utf-8 -*-
from socket import *
from time import ctime
host = ''
port = 6999
buffsize = 2048
ADDR = (host,port)
host1 = ''
port1 = 7777
buffsize1 = 2048
ADDR1 = (host1,port1)
tctime = socket(AF_INET,SOCK_STREAM)
tctime.bind(ADDR)
tctime.listen(3)
tctime1 = socket(AF_INET,SOCK_STREAM)
tctime1.bind(ADDR1)
tctime1.listen(3)
while True:
print('Wait for connection ...')
tctimeClient,addr = tctime.accept()
print("Connection from :",addr)
tctimeClient1,addr1 = tctime1.accept()
print("Connection from :",addr1)
while True:
data = tctimeClient.recv(buffsize).decode()
if not data:
break
print(data)
tctimeClient1.send(('[%s] %s' % (ctime(),data)).encode())
tctimeClient.close()
tctimeClient1.close()
tctimeClient.close()
tctimeClient1.close()
————————————————
版权声明:本文为CSDN博主「流氓兔来啦」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/superce/article/details/78306848