发送数据
import json
import random
import time
from time import sleep
import socket
"""
udp通信例程:udp client端,修改udp_addr元组里面的ip地址,即可实现与目标机器的通信,
此处以单机通信示例,ip为127.0.0.1,实际多机通信,此处应设置为目标服务端ip地址
"""
def main():
# udp 通信地址,IP+端口号
udp_addr = ('127.0.0.1', 9999)
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 发送数据到指定的ip和端口,每隔1s发送一次,发送3次
for i in range(3):
temp = list()
tem = random.randint(10, 30)
hum = random.randint(10, 50)
light = random.randint(1000, 3000)
co2 = random.randint(150, 250)
temp.append(tem)
temp.append(hum)
temp.append(light)
temp.append(co2)
toranDate = time.time()
date_touple = time.localtime(toranDate)
date = time.strftime("%Y-%m-%d %H:%M:%S", date_touple)
temp.append(date)
print(temp)
data = json.dumps(temp)
udp_socket.sendto(bytes(data.encode('utf-8')), udp_addr)
print("send %d message" % i)
sleep(1)
#
# # 5. 关闭套接字
udp_socket.close()
if __name__ == '__main__':
print("udp client ")
main()
写入传感器
import json
import socket
import time
import pymysql.cursors
import random
def main():
# udp 通信地址,IP+端口号
udp_addr = ('127.0.0.1', 9999)
udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
# 绑定端口
udp_socket.bind(udp_addr)
# 等待接收对方发送的数据
while True:
json_string = json.loads(udp_socket.recv(1024))
connection = pymysql.connect(host='localhost', port=3306, user='root', password='Wn030416', db='aaa',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
# 通过cursor创建游标
cursor = connection.cursor()
a = []
# 从六月一号开始
for i in range(1, 100):
# 温度,湿度,光照强度,二氧化碳
# 随机生成数据,温度20+-10,湿度30+-20,光照强度2000+-1000,二氧化碳200+-50
tem = json_string[0]
hum = json_string[1]
light = json_string[2]
co2 = json_string[3]
date = json_string[4]
a.append(("温度", 1, 2, 1, 4, 1, 1, tem, date))
a.append(("湿度", 1, 2, 2, 4, 2, 1, hum, date))
a.append(("光照强度", 1, 2, 3, 4, 3, 1, light, date))
a.append(("二氧化碳", 1, 2, 4, 4, 4, 1, co2, date))
# 插入数据
for ta in a:
cursor.execute("insert into e_detail_1 values(%s,%s,%s,%s,%s,%s,%s,%s,%s)",
(ta[0], ta[1], ta[2], ta[3], ta[4], ta[5], ta[6], ta[7], ta[8]))
connection.commit()
if __name__ == '__main__':
print("udp server ")
main()