您好,我正在研究树莓派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”之后关闭了文件,所以如果有人有想法,这将非常有帮助
相关分类