今天给大家带来的是TPYBoard V202开发板的一次测试项目使用心得。而测试项目就是给服务端发送硬件底层数据,而数据有产品名称,WF模块MAC地址,温湿度数据。
     什么是MicroPython
    MicroPython是在单片机上可以跑的Python,也就是说,你可以通过Python脚
本语言开发单片机程序。
    MicroPython遵守MIT协议开源,被授权人拥有复制、修改、发行和再授权的权
利。由剑桥大学的理论物理学家乔治?达明设计。和Arduino类似,但MicroPython
更强大。
    MicroPython基于ANSIC,语法跟Python3基本一致,拥有自家的解析器、编译器
、 虚拟机和类库等。目前它支持基于32-bit的ARM处理器,比如STM32F405。也就
是说ARM处理器STM32F405上直接可运行Python语言,用Python语言来控制单片机。
什么是TPYBoard
    TPYBoard是以遵照MIT许可的MicroPython为基础,由TurnipSmart公司制作的一
款MicroPython开发板,它基于STM32F405单片机,通过USB接口进行数据传输。该
开发板内置4个LED灯、一个加速传感器,可在3V-10V之间的电压正常工作。
    TPYBoard开发板让用户可以通过Python代码轻松控制微控制器的各种外设,比如
LED等,读取管脚电压,播放歌曲,和其他设备联网等等。
    TPYBoard开发板支持Python3.0及以上版本的直接运行,支持重力加速度传感器,
支持上百周边外设配件,支持SWD烧写固件。零基础也能灵活掌握单片机技术!
在使用过程中遇到了很多问题,其中就包括Python3版本,与python2版本
的问题,开发板固件刷写问题,还有MAC解析算法问题。解决这些问题,小编都快把
群主,和小编的朋友问烦了,小编也在此谢谢,官方群主,和那位好心的朋友。
     那小编就不浪费时间直接进入正题:
     这是本人朋友的TPYBV202。
代码如下:

#

-*- coding: gbk -*-
import dht

import machine

import network

from machine import Pin

import socket

import urllib

import time  # 声明用到的类库,尤其是dht的类库

import json

import sys

import utime

# 声明用到类库中的函数,并设端口                                                    #置参数
d = dht.DHT22(machine.Pin(4))

led = Pin(2, Pin.OUT)

count = 0

def do_connect():
    """定义开发板连接无线网络的函数"""
    wlan = network.WLAN(
        network.STA_IF)  # 设置开发板的网                                                                          #络模式

    wlan.active(True)  # 打开网络连接

    if not wlan.isconnected():  # 判断是否有网络连接

        print('connecting to network...')

        # 设置想要连接的无线网络
        # #线名称和密码
        wlan.connect('00', 'zzp6330058')

        while not wlan.isconnected():  # 等待连接上无线网络

            pass
    MAC = wlan.config('mac')      # 获得MAC地址
    #t = ntptime.time()
    #t = t + 28800  # 相差八小时
    #tm = tm[0:3] + (0,) + tm[3:6] + (0,)
    #machine.RTC().datetime(tm)
    print('network config:', wlan.ifconfig())
    return MAC

def connection(NA_ME, MA_C, TIM_E, TEM_P, CUT_cf, HU_M):
    """要发送的数据"""
    data = {
        'name': NA_ME,
        'id': MA_C,
        'time': TIM_E,
        'temp': TEM_P,
        'symbol': CUT_cf,
        'hum': (HU_M + '%')
    }
    return data

def DHT_collect():
    """温湿度采集模块"""
    d.measure()  # 调用DHT类库中测量数据的函数
    # 读取measure()函数中的温度数据
    temp = str(d.temperature())
    hum = str(d.humidity())  # 读取measure()函数中的湿度数据
    print('TEMP:' + temp + ' ' + 'HUM:' + hum)
    return temp, hum

def To_obtain_name_time():
    """获取本机名称,本地时间"""
    time_Str = ''.join([str(i) for i in utime.localtime()])
    return time_Str

def Data_sent(host, port, data):
    """连接服务器发送数据"""
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  # 创建套接字
    s.connect((host, port))  # 主动初始化TCP服务器连接。。。

    json_str = json.dumps(data)  # 将发送的数据转换成json数据
    # 发送TCP数据,将string中的数据发送到连接的套接字。
    s.send(bytes('%s\r\n' % (json_str), 'utf8'))

    s.close()  # 关闭套接字

def MAC_format_conversion(MA):
         """MAC格式换算"""
         MA = [hex(x) for x in bytes(MA)] #将数据转换成16进制保存到列表中
         Y=0#循环初值
         MB =''#字符串

         while Y<6:
                   if len(MA[Y])==4: #判断是否有零
                            pass
                   else:
                            MA[Y] = MA[Y]+'0'
                   if Y<5: #对列表重构5c:cf:7f:d0:85:65
                            MB = MB + MA[Y][2]+MA[Y][3]+':'
                   else:
                            MB = MB + MA[Y][2]+MA[Y][3]
                   Y+=1

         return MB

MAC = do_connect()  # 连接WF
MAC = MAC_format_conversion(MAC)
print(MAC)

while True:
    """主循环"""
    TIME = 0  #本地时间
    # MAC = get_mac_address()#获取MAC
    TEM, HUM = DHT_collect()  # 获取温湿度
    data = connection("TPYBoard v202", MAC,
                      TIME, TEM, 0, HUM)  # 建立数据字典

    Data_sent("119.23.223.146", 2689, data)

    count += 1
    print('Count:', count)  # 显示发送的次数

    time.sleep(15)

附上显示的效果:这是开发板返回的数据。
这是服务器接收到的json数据。

TPYBoard开发板搭建与阿里云服务发送数据的更多相关文章

  1. TPYBoard开发板搭建,实现隐秘通信

    一.准备工作 lTPYBoard v102(简称v102) 1块 lTPYBoard v202(简称v202) 1块 l杜邦线.MicroUSB数据线 若干 (成本100元以内,某宝上可以买到) 附上 ...

  2. 带以太网的MicroPython开发板:TPYBoardv201建立云加法器实例

    转载请注明文章来源,MicroPythonQQ技术交流群:157816561,公众号:MicroPython玩家汇 前面的一篇文档向大家介绍了v201的开发板作为客户端终端向TCPS上传数据的基本过程 ...

  3. 阿里云服务执行mysql_install_db报错

    问题描述:阿里云服务执行mysql_install_db报错解决方案:安装autoconf库(yum -y install autoconf)然后在执行:mysql_install_db就会出现这样, ...

  4. 使用Xshell链接阿里云服务

    1.下载Xshell,进入xshell官网 https://xshell.en.softonic.com/,选择免费版本进行下载,在该页面https://www.netsarang.com/zh/fr ...

  5. 智龙开发板搭建llsp环境

    智龙开发板搭建llsp(linux+lighttpd+sqlite3+php)环境 1. 准备 1. 智龙开发板V3 2. 软件编译环境:VirtualBox6+CentOS6.10-i386.min ...

  6. MicroPython教程之TPYBoard开发板DIY红外寻迹小车

    智能小车现在差不多是电子竞赛或者DIY中的主流了,寻迹,壁障,遥控什么的,相信大家也都见得很多了,这次就大家探讨一下寻迹小车的制作方法,不同于以往的是这次的程序不用C语言写,而是要使用python语言 ...

  7. Xshell连接阿里云服务被拒绝

    问题描述:突然的Xshell连接阿里云服务被拒绝了(如图)网上众多的方案都不行例如:https://www.cnblogs.com/wanglle/p/11416987.html(参考博文,本人这个问 ...

  8. AI加持的阿里云飞天大数据平台技术揭秘

    摘要:2019云栖大会大数据&AI专场,阿里云智能计算平台事业部研究员关涛.资深专家徐晟来为我们分享<AI加持的阿里云飞天大数据平台技术揭秘>.本文主要讲了三大部分,一是原创技术优 ...

  9. 阿里云server该数据光盘安装操作

    猛击这里:阿里云server该数据光盘安装操作

随机推荐

  1. CSS背景-background

    复合属性-background 如果同时设置了background-color和background-image时,背景颜色会被图片覆盖. background-image: 用作背景的图片,back ...

  2. [转载]MySQL运行状态show status详解

    要查看MySQL运行状态,要优化MySQL运行效率都少不了要运行show status查看各种状态,下面是参考官方文档及网上资料整理出来的中文详细解释,不管你是初学mysql还是你是mysql专业级的 ...

  3. 数据结构-二叉树(应用篇)-之二叉搜索树 C和C++的实现

    一.概念 二叉搜索树(Binary Sort Tree/Binary Search Tree...),是二叉树的一种特殊扩展.也是一种动态查找表. 在二叉搜索树中,左子树上所有节点的均小于根节点,右子 ...

  4. 五分钟学习React(一): 什么是React

    在前端的世界里,我们要处理的文件不是太多,而是太少.每天开发项目将html.css.js.图片.字体文件都像大杂烩一般加载都网页上.当应用变得越来越臃肿的时候,会发现js用了那么多全局变量,css的继 ...

  5. 详细介绍Spring 5的那些新特性与增强

    Spring5 是一个重要的版本,距离SpringFramework4差不多四年.在此期间,大多数增强都是在 SpringBoot 项目中完成的.在本文中,我们将很快了解到Spring5发行版中的一些 ...

  6. Arch Linux安装记录

    1.分区(MBR)# cfdisk 半图形界面,划分三个区:sda1 20G,sda2 80G,sda3 4G. 2.创建文件系统# mkfs.ext4 /dev/sda1# mkfs.ext4 /d ...

  7. 使用 GStreamer appsrc 等插件实现视频音频混流,录制和推流

    目前在做的在线直播教室,需要将老师分享的屏幕和老师的声音.学生的声音录制为一个视频文件,以便学生上课后还可以再看回放. 直播服务我们采用的是腾讯的视频服务,有现成的 SDK 可以用.但 SDK 自带的 ...

  8. Rosenblatt感知器

    一.定义 Rosenblatt感知器建立在一个线性神经元之上,神经元模型的求和节点计算作用于突触输入的线性组合,同时结合外部作用的偏置,对若干个突触的输入项求和后进行调节. 二.基本计算过程 Rose ...

  9. 2017"百度之星"程序设计大赛 - 复赛1005&&HDU 6148 Valley Numer【数位dp】

    Valley Numer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  10. HDU2063-过山车-匈牙利算法

    过山车 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...