物联网系统1.1数据流图
在物联网系统1.0(局域网)的基础上实现STM32连接云服务器,云服务器发送收到的数据到电脑就行了
云服务器如何将数据发送给电脑
电脑是一个内网IP,不用云服务器去找电脑,让电脑作为TCP client连接云服务器就行了
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
不再设置单连接和透传模式
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端口就可以使用透传了】
云服务器使用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()

本文介绍物联网系统1.1,STM32通过TCP连接云服务器,服务器接收到数据后转发至电脑。内容涉及STM32的指令、数据发送及云服务器使用Python建立TCP服务器的过程。
&spm=1001.2101.3001.5002&articleId=78306848&d=1&t=3&u=e5144a8b138843f7bc9b693df27ba63f)
8358

被折叠的 条评论
为什么被折叠?



