“ OSError:[Errno 24]打开的文件太多:”和来自aiocoap context.

您好,我正在研究树莓派PI,它应该从连接到该PI的传感器连续发送数据,所以这是我的脚本:


import logging

import asyncio

from grovepi import*


import time

import json


from aiocoap import *


logging.basicConfig(level=logging.INFO)


def createMsg( file,value ) :

    f= open(file + "Config.json")

    data = json.load(f)

    f.close()

    data["timestamp"] = str(round(time.time(), 3))

    data["value"] = value

    return json.dumps( data )


async def main():


    #analog

    soundSensorPort=0

    lightSensorPort=1


    #digital

    motionSensorPort=2

    tempSensorPort=2

    ultrasonicSensorPort=5

    pinMode(tempSensorPort, "INPUT")


    while True:

        context = await Context.create_client_context()


        await asyncio.sleep(2)

        [ tempSensorValue, humiditySensorValue ]  = dht(tempSensorPort, 0)

        tempMsg = createMsg( "temperatureSensor", tempSensorValue)

        humidityMsg = createMsg( "humiditySensor", humiditySensorValue)


        payloadTemp = tempMsg.encode('utf-8')

        payloadHumidity = humidityMsg.encode('utf-8')

        requestTemp = Message(code=PUT, payload=payloadTemp)

        requestHumidity = Message(code=PUT, payload=payloadHumidity)


        requestTemp.opt.uri_host = '129.6.60.38'

        requestHumidity.opt.uri_host = '129.6.60.38'


        requestTemp.opt.uri_path = ("other", "sensors","temperature")

        requestHumidity.opt.uri_path = ("other", "sensors","humidity")


        responseTemp = await context.request(requestTemp).response

        responseHumidity = await context.request(requestHumidity).response


        print('Result: %s\n%r'%(responseTemp.code, responseTemp.payload))

        print('Result: %s\n%r'%(responseHumidity.code, responseHumidity.payload))


if __name__ == "__main__":

    asyncio.get_event_loop().run_until_complete(main())


这真的很奇怪,因为我只是在读取文件并将其加载到“ f”之后关闭了文件,所以如果有人有想法,这将非常有帮助


拉丁的传说
浏览 243回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python