物联网系统1.1(云服务器)

本文介绍物联网系统1.1,STM32通过TCP连接云服务器,服务器接收到数据后转发至电脑。内容涉及STM32的指令、数据发送及云服务器使用Python建立TCP服务器的过程。

物联网系统1.1数据流图

物联网系统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()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值