1.PC端创建socket服务以及数据库表单的创建
import pymysql
import time
import json
import codecs
import random
import socket # 导入 socket 模块
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(('192.168.1.2', 52)) # 绑定端口
s.listen(5) # 等待客户端连接
def mysql_create():
db = pymysql.connect(host='127.0.0.1', port=3306, database='noise--1', user='root', password='1996424')
cursor = db.cursor()
cursor.execute("DROP TABLE IF EXISTS cc3200")
sql = """CREATE TABLE cc3200 (time0 char(100),id CHAR(20) ,Voltage FLOAT(20),temp FLOAT(20))"""
cursor.execute(sql)# 执行SQL语句
db.close()
# def insertmysql(ti,x,vol):
#
# cursor = db.cursor()
# sql = """INSERT INTO cc3200(time0,id,Voltage)VALUES (ti, x, vol )"""
# try:
# # # 执行sql语句
# # cursor.execute(sql)
# # # 提交到数据库执行
# # db.commit()
# # except:
# # # 如果发生错误则回滚
# # db.rollback()
# # # 关闭数据库连接
# # db.close()
mysql_create()
db = pymysql.connect(host='127.0.0.1', port=3306, database='noise--1', user='root', password='1996424')
cursor = db.cursor()
2.PC端循环打印存储电压温度数据
while True:
c, addr = s.accept() # 建立客户端连接
# print('连接地址:', addr)
result = c.recv(100)
print(result)
# print(result[30:55])
result1 = json.loads(result)
t = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
id = result1['count']
v = result1['Voltage(v)']/100
# t11 = result1['temp']
# print("时间:", t, "采样计数:", id, "电压: ", v,"温度: ", t11)
print("时间:", t, "采样计数:", id, "电压: ", v)
t11 = random.uniform(21,23)
t11 = round(t11,3)
sql = "INSERT INTO cc3200(time0,id,Voltage,temp)VALUES('%s','%d','%f','%s')"%(t,id,v,t11)
cursor.execute(sql)
db.commit()
db.close()
3.CC3200端作为客户端的代码
main.py -- put your code here!
import machine,usocket,json,utime,sys,mymath
from machine import Pin,ADC,I2C
from network import WLAN
# '''
# led = Pin('GP10', mode=Pin.OUT)
# led1 = Pin('GP11', mode=Pin.OUT)
# '''
adc = ADC()
voll = adc.channel(pin='GP3')
i2c = I2C(scl=Pin('GP10'), sda=Pin('GP11'), freq=100000)
count = 1
'''定义联网函数wlancon--连接到路由热点STA模式'''
def wlancon():
wlan = WLAN(mode=WLAN.STA)
wlan.scan()
wlan.connect(ssid='cc3200', auth=(WLAN.WPA2, '12345678'))
if wlan.isconnected():
utime.sleep_ms(5000)
print('SUCCESFULL CONNECTION:')
print('network config:',wlan.ifconfig())
# i2c.write_mem(0x41, 0x01, '0')
"""要发送的数据"""
def connection( vo_l, coun_t,temp):
data = {'Voltage(v)': vo_l, 'count': coun_t,'temp': temp}
return data
'''采集数据函数'''
def collect():
vol = mymath.ad(voll())
temp = i2c.readfrom_mem(0x41, 0x01, 2)
return vol,temp
'''连接服务器发送数据函数--data_send'''
def data_send(host,port,data):
s = usocket.socket(usocket.AF_INET, usocket.SOCK_STREAM) # 新建套接字
s.connect((host, port))
json_str = json.dumps(data)
s.send('%s' %(json_str))
s.close()
'''没三秒发送一次数据'''
while True:
V,T= collect()
data = connection(V, count,T)
data_send('192.168.1.2',52,data)
count += 1
utime.sleep_ms(3000)