7919|4

96

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

pc机读取pm2.5模块上传到onenet [复制链接]

 
本帖最后由 youxinweizhi 于 2018-3-29 12:42 编辑

由于micropython for esp8266板子没有串口,无奈之下想到用pc机通过usb转ttl模块直接读取数值并上传到onenet平台。

效果图:
file:///C:\Users\hanxm\AppData\Roaming\Tencent\Users\416895063\TIM\WinTemp\RichOle\Q@`}}O`MCV8LV6R]@Y)G`~6.png
file:///C:\Users\hanxm\AppData\Roaming\Tencent\Users\416895063\TIM\WinTemp\RichOle\Q@`}}O`MCV8LV6R]@Y)G`~6.png
file:///C:\Users\hanxm\AppData\Roaming\Tencent\Users\416895063\TIM\WinTemp\RichOle\Q@`}}O`MCV8LV6R]@Y)G`~6.png

接线图:
    pm2.5模块        usb转tll模块
       vcc                   5v
       gnd                  gnd
       Tx                     Rx




源码:
import serial
import time
def get_pm(com):
ser = serial.Serial(port=com,baudrate=2400)
    time.sleep(0.1)
    data=ser.read_all()
    ser.close()
    data_all=data.hex()
    R = data_all.find('aa')
    if R>-1 and len(data_all)>(R+6):
P="0x"+data_all[R+2:R+4]
        L="0x"+data_all[R+4:R+6]
        P_10=int(str(P),16)
        L_10=int(str(L),16)
        SHI=P_10*256+L_10
        SHUCHU=SHI/(1024/5)*800
        return int(SHUCHU)

from urllib import request,parse
import json
DEVICE_ID='xxxxx'
API_KEY='xxxxxxxxx'
def Http_Pot_OnetNet(data):
url='http://api.heclouds.com/devices/'+DEVICE_ID+'/datapoints'
values={'datastreams':[{"id":"pm2.5","datapoints":[{"value":data}]}]}
    headers ={"api-key":API_KEY}
    d = json.dumps(values).encode("utf-8")
    r = request.Request(url,d,headers=headers)
    res = request.urlopen(r)
    print(json.loads(res.read())["error"])

while 1:
Http_Pot_OnetNet(get_pm('com5'))
    time.sleep(60)

此内容由EEWORLD论坛网友youxinweizhi原创,如需转载或用于商业用途需征得作者同意并注明出处

最新回复

源代码 import serial import serial import time def get_pm(com): ser = serial.Serial(port=com,baudrate=2400) time.sleep(0.1) data=ser.read_all() ser.close() data_all=data.hex() R = data_all.find('aa') if R>-1 and len(data_all)>(R+6): P="0x"+data_all[R+2:R+4] L="0x"+data_all[R+4:R+6] P_10=int(str(P),16) L_10=int(str(L),16) SHI=P_10*256+L_10 SHUCHU=SHI/(1024/5)*800 return int(SHUCHU) from urllib import request,parse import json DEVICE_ID='xxxxx' API_KEY='xxxxxxxxx' def Http_Pot_OnetNet(data): url='http://api.heclouds.com/devices/'+DEVICE_ID+'/datapoints' values={'datastreams':[{"id":"pm2.5","datapoints":[{"value":data}]}]} headers ={"api-key":API_KEY} d = json.dumps(values).encode("utf-8") r = request.Request(url,d,headers=headers) res = request.urlopen(r) print(json.loads(res.read())["error"]) while 1: Http_Pot_OnetNet(get_pm('com5')) time.sleep(60)   详情 回复 发表于 2018-3-29 15:36
点赞 关注
 
 

回复
举报

1万

帖子

25

TA的资源

版主

沙发
 
图片要重新传一下。
 
 
 

回复

2774

帖子

8

TA的资源

版主

板凳
 
本帖最后由 strong161 于 2018-3-29 15:26 编辑

没有图,另外代码建议使用插入代码的方式,也可以同时上传一个py,python对格式要求太严了。例如源码:

  1. import serial
  2. import time
  3. def get_pm(com):
  4.         ser = serial.Serial(port=com,baudrate=2400)
  5.         time.sleep(0.1)
  6.         data=ser.read_all()
  7.         ser.close()
  8.         data_all=data.hex()
  9.         R = data_all.find('aa')
  10.         if R>-1 and len(data_all)>(R+6):
  11.         P="0x"+data_all[R+2:R+4]
  12.         L="0x"+data_all[R+4:R+6]
  13.         P_10=int(str(P),16)
  14.         L_10=int(str(L),16)
  15.         SHI=P_10*256+L_10
  16.         SHUCHU=SHI/(1024/5)*800
  17.         return int(SHUCHU)

  18. from urllib import request,parse
  19. import json
  20. DEVICE_ID='xxxxx'
  21. API_KEY='xxxxxxxxx'
  22. def Http_Pot_OnetNet(data):
  23. url='http://api.heclouds.com/devices/'+DEVICE_ID+'/datapoints'
  24. values={'datastreams':[{"id":"pm2.5","datapoints":[{"value":data}]}]}
  25.     headers ={"api-key":API_KEY}
  26.     d = json.dumps(values).encode("utf-8")
  27.     r = request.Request(url,d,headers=headers)
  28.     res = request.urlopen(r)
  29.     print(json.loads(res.read())["error"])

  30. while 1:
  31. Http_Pot_OnetNet(get_pm('com5'))
  32.     time.sleep(60)
复制代码



点评

还能这么玩么。。没混过论坛。。  详情 回复 发表于 2018-3-30 16:32
 
 
 

回复

2774

帖子

8

TA的资源

版主

4
 

源代码

import  serial
import serial
import time
def get_pm(com):
    ser = serial.Serial(port=com,baudrate=2400)
    time.sleep(0.1)
    data=ser.read_all()
    ser.close()
    data_all=data.hex()
    R = data_all.find('aa')
    if R>-1 and len(data_all)>(R+6):
    P="0x"+data_all[R+2:R+4]
    L="0x"+data_all[R+4:R+6]
    P_10=int(str(P),16)
    L_10=int(str(L),16)
    SHI=P_10*256+L_10
    SHUCHU=SHI/(1024/5)*800
    return int(SHUCHU)

from urllib import request,parse
import json
DEVICE_ID='xxxxx'
API_KEY='xxxxxxxxx'
def Http_Pot_OnetNet(data):
    url='http://api.heclouds.com/devices/'+DEVICE_ID+'/datapoints'
    values={'datastreams':[{"id":"pm2.5","datapoints":[{"value":data}]}]}
    headers ={"api-key":API_KEY}
    d = json.dumps(values).encode("utf-8")
    r = request.Request(url,d,headers=headers)
    res = request.urlopen(r)
    print(json.loads(res.read())["error"])

while 1:
Http_Pot_OnetNet(get_pm('com5'))
time.sleep(60)
 
 
 

回复

96

帖子

0

TA的资源

一粒金砂(中级)

5
 
strong161 发表于 2018-3-29 15:17
没有图,另外代码建议使用插入代码的方式,也可以同时上传一个py,python对格式要求太严了。例如源码:

...

还能这么玩么。。没混过论坛。。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表