python 模拟传感器

发送数据

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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值