<noscript id="mmkmi"><source id="mmkmi"></source></noscript>
  • <noscript id="mmkmi"><kbd id="mmkmi"></kbd></noscript>
  • <table id="mmkmi"><source id="mmkmi"></source></table>
  • 怎么用樹莓派實現數據的上傳

    作者:zxc5230 | 更新時間:2017-06-19 | 瀏覽量:2440

    在貝殼物聯的通訊協議上有發送實時數據,有沒有大神發一段代碼的,本人樹莓派小白,想實時上傳樹莓派CPU的數據


    評論:共10條

    貝殼物聯 評論于:2017-06-19 15:01:00
    網站底部的代碼連接里有。
    zxc5230 回復于:2017-06-19 16:32:41
    回復 @貝殼物聯:我沒找到呀,只看到有ESP8266的數據上傳并沒有找到樹莓派的
    zxc5230 評論于:2017-06-19 17:07:43
    這個是我在代碼里面根據那LED程序改的,有人能幫我下不
    #!/usr/bin/python3
    import socket
    import time
    import json

    #must be modified===
    DEVICEID='2508'
    APIKEY='18a424b7b'
    #modify end=========
    host="www.eqytg.org"
    port=8181

    #connect bigiot
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.settimeout(0)
    while True:
    try:
    s.connect((host,port))
    break
    except:
    print('waiting for connect bigiot.net...')
    time.sleep(2)

    #check in bigiot
    checkinBytes=bytes('{\"M\":\"checkin\",\"ID\":\"'+DEVICEID+'\",\"K\":\"'+APIKEY+'\"}\n',encoding='utf8')
    s.sendall(checkinBytes)

    #keep online with bigiot function
    data=b''
    flag=1
    t=time.time()
    def keepOnline(t):
    if time.time()-t>40:
    s.sendall(b'{\"M\":\"status\"}\n')
    print('check status')
    return time.time()
    else:
    return t

    #say something to other device function
    def say(s,id,content):
    sayBytes=bytes('{\"M\":\"say\",\"ID\":\"'+id+'\",\"C\":\"'+content+'\"}\n',encoding='utf8')
    s.sendall(sayBytes)

    #deal with message coming in
    def process(msg,s,checkinBytes):
    msg=json.loads(msg)
    if msg['M'] == 'connected':
    s.sendall(checkinBytes)
    if msg['M'] == 'login':
    say(s,msg['ID'],'Welcome! Your public ID is '+msg['ID'])
    if msg['M'] == 'say':
    say(s,msg['ID'],'You have send to me:{'+msg['C']+'}')

    #for key in msg:
    #print(key,msg[key])
    #print('msg',type(msg))


    #main while
    while True:
    try:
    d=s.recv(1)
    flag=True

    except:
    flag=False
    time.sleep(1)
    t = keepOnline(t)
    if flag:
    if d!=b'\n':
    data+=d
    else:
    #get cpu temp
    file = open("/sys/class/thermal/thermal_zone0/temp")
    temp = float(file.read())/1000
    file.close
    sendmessage={"M":"update","ID":"2508","V":{"2383":"temp"}}
    s.sendall(b'{\"sendmessage\"}\n')
    data=b''
    貝殼物聯 回復于:2017-06-19 17:25:12
    回復 @zxc5230:就是根據這個示例改一下。
    zxc5230 回復于:2017-06-20 12:31:16
    回復 @貝殼物聯:能加下你們的q群不
    貝殼物聯 回復于:2017-06-21 13:50:23
    回復 @zxc5230:可以,盡管加
    zxc5230 評論于:2017-06-20 09:16:49
    我的程序運行后可以在網頁上看到樹莓派上線但是在數據接口里面看卻沒有看到數據的上傳
    qiuqiudong 回復于:2017-08-02 23:12:04
    回復 @zxc5230:你還有別的樹莓派的代碼嗎? 比如說上傳溫度數據 、GPIO接繼電器啥的
    little_elephant 評論于:2018-04-13 16:40:37
    格式不對,具體參考sayBytes=bytes('{\"M\":\"say\",\"ID\":\"'+id+'\",\"C\":\"'+content+'\"}\n',encoding='utf8')
    SEU_XXL 評論于:2020-07-08 22:55:21
    要想上傳數據的話,需要使用到下面的格式,其中id、id_value都是變量
    bytes('{\"M\":\"update\",\"ID\":\"'+id+'\",\"V\":{\"'+id_value[0]+'\":\"'+id_value[1]+'\"}}\n',encoding='utf8')
    返回頂部
    <noscript id="mmkmi"><source id="mmkmi"></source></noscript>
  • <noscript id="mmkmi"><kbd id="mmkmi"></kbd></noscript>
  • <table id="mmkmi"><source id="mmkmi"></source></table>
  • 三上悠亚在线观看