# * UART,             RX         ,UART_RX  Pin 7
# * UART,             TX         ,UART_TX  Pin 8

import ifroglab
import time
import serial


def Fun_CRC(data):
    crc = 0
    for i in data:
        crc = crc ^ i
    return crc


LoRa = ifroglab.LoRa()

# 打開Port
print("Open Port, FunLora_init()")
ser = LoRa.FunLora_init()

#讀取F/W版本及Chip ID
print("Get Firmware Version, FunLora_0_GetChipID()")
LoRa.FunLora_0_GetChipID()

# 重置 & 初始化
print("Init, FunLora_1_Init()")
LoRa.FunLora_1_Init()

# 讀取設定狀態
print("\n[4]:FunLora_2_ReadSetup")
def Fun_main():
    LoRa = ifroglab.LoRa()

    # 打開Port
    print("Open Port, FunLora_init()")
    ser = LoRa.FunLora_init()

    #讀取F/W版本及Chip ID
    print("Get Firmware Version, FunLora_0_GetChipID()")
    LoRa.FunLora_0_GetChipID()

    # 重置 & 初始化
    print("Init, FunLora_1_Init()")
    LoRa.FunLora_1_Init()

    # 讀取設定狀態
    print("\n[4]:FunLora_2_ReadSetup")
    LoRa.FunLora_2_ReadSetup()

    # 設定寫入和頻段
    print("\n[7]:FunLora_3_TX")
    LoRa.FunLora_3_TX()

    #寫入資料:通知大家,Gateway 啟動了
    print("\n[10]:FunLora_5_write16bytesArray")
    LoRa.FunLora_5_write16bytesArray("D:iFL,G:S")

    # 設定讀取和頻段
    print("\n[7]:FunLora_3_RX")
    LoRa.FunLora_3_RX()

    #讀取資料
    print("\n[8]:FunLora_6_read")
    data = LoRa.FunLora_6_read()

    if len(data) > 5:
        print("data[3]=%s,  Hex->%s" % (data[3], data[3].encode('hex')))
        print("data[4]=%s,  Hex->%s" % (data[4], data[4].encode('hex')))
        print("data[5]=%s,  Hex->%s" % (data[5], data[5].encode('hex')))

    for t1 in range(60 * 60 * 8):
        data = LoRa.FunLora_6_read()
        if len(data) > 4:
            print("data[3]=%s,  Hex->%s" % (data[3], data[3].encode('hex')))
            print("data[4]=%s,  Hex->%s" % (data[4], data[4].encode('hex')))
            x1 = (int(data[3].encode('hex'), 16) * 256) + int(
                data[4].encode('hex'), 16)
            urlData = "localhost/AjaxIoT.php?action=insertByAPIKey&KeyName=x&Data=%d&Datatype=1&APIKey=iloveifroglab" % x1
            Fun_HTTPGet("127.0.0.1", urlData)  # 上傳資料
            y1 = (int(data[5].encode('hex'), 16) * 256) + int(
                data[6].encode('hex'), 16)
            urlData = "localhost/AjaxIoT.php?action=insertByAPIKey&KeyName=y&Data=%d&Datatype=1&APIKey=iloveifroglab" % y1
            Fun_HTTPGet("127.0.0.1", urlData)  # 上傳資料
            z1 = (int(data[7].encode('hex'), 16) * 256) + int(
                data[8].encode('hex'), 16)
            urlData = "localhost/AjaxIoT.php?action=insertByAPIKey&KeyName=z&Data=%d&Datatype=1&APIKey=iloveifroglab" % z1
            Fun_HTTPGet("127.0.0.1", urlData)  # 上傳資料

            #http://localhost/ICBlock/web/AjaxIoT.php?action=insertByAPIKey&KeyName=y&Data=3&Datatype=1&APIKey=iloveifroglab
        time.sleep(1)

    # 關閉
    LoRa.FunLora_close()
    ser.close()
示例#3
0
import serial
import os
import ifroglab
from time import sleep, clock

os.system('sudo chmod a+rw /dev/ttyUSB0')##set lora
os.system('sudo chmod a+rw /dev/ttyACM0')## set arduino


LoRa2 = ifroglab.LoRa()

ser_arduino = serial.Serial("/dev/ttyACM0",9600,timeout = 0.5)

#Open port
print("Open port")
ser_lora = LoRa2.FunLora_initByName("/dev/ttyUSB0")

#Read firmware  version
print("Get firmware version")
LoRa2.FunLora_0_GetChipID()

#Reset and Init
print("Reset & Init")
LoRa2.FunLora_1_Init()

#Read setup
print("Read setup")
LoRa2.FunLora_2_ReadSetup()
LoRa2.FunLora_3_TX()
while True:
    #tic = clock()
示例#4
0
def Fun_main(frequency):
    float_frequency = float(frequency)
    print(frequency)
    LoRa = ifroglab.LoRa()

    # 打開Port
    print("Open Port, FunLora_init()")
    ser = LoRa.FunLora_init()

    #讀取F/W版本及Chip ID
    print("Get Firmware Version, FunLora_0_GetChipID()")
    LoRa.FunLora_0_GetChipID()

    # 重置 & 初始化
    print("Init, FunLora_1_Init()")
    LoRa.FunLora_1_Init()

    # 讀取設定狀態
    print("\n[4]:FunLora_2_ReadSetup")
    LoRa.FunLora_2_ReadSetup()

    # 設定寫入和頻段
    print("\n[7]:FunLora_3_TX")
    LoRa.FunLora_3_TX2(float_frequency)

    #寫入資料:通知大家,Gateway 啟動了
    print("\n[10]:FunLora_5_write16bytesArray")
    LoRa.FunLora_5_write16bytesArray("D:iFL,G:S")

    # 設定讀取和頻段
    print("\n[7]:FunLora_3_RX")
    LoRa.FunLora_3_RX2(float_frequency)

    #讀取資料
    print("\n[8]:FunLora_6_read")
    try:
        while True:
            # IDs2=UpdatePoints(value,IDs2)  # 請整到實際的工作秒數
            # ptint(t1)
            data = LoRa.FunLora_6_read()
            #  print(data)
            len1 = len(data)
            #print(len1)
            if len1 > 4:
                HexString = LoRa.FunArrayToHexStringKeepPureData(data)
                mqtt = " mosquitto_pub -d -t ifroglab/mqtt  -m '%s' -h 'iot.eclipse.org' " % (
                    HexString)
                # mqtt=" mosquitto_pub -d -t ifroglab/mqtt  -m '%s' -h test.mosquitto.org"%(HexString);
                # mqtt=" mosquitto_pub -d -t ifroglab/mqtt  -m '%d "%(data);
                print(mqtt)
                print os.popen(mqtt).read()
                for t1 in range(0, len1 - 3):
                    #print("data[%s]=%s,  Hex->%s"%(t1,data[t1+3],data[t1+3].encode('hex')))
                    x1 = (int(data[t1 + 3].encode('hex'), 16))
                    urlData = "/AjaxIoT.php?action=insertByAPIKey&KeyName=%s&Data=%d&Datatype=1&APIKey=iloveifroglab" % (
                        t1, x1)
                    #print(urlData)
                    Fun_HTTPGet("127.0.0.1", urlData)  # 上傳資料
            time.sleep(5)
            #break;
            #time.sleep(10)
    except:
        print("quit")

    # 關閉
    LoRa.FunLora_close()
    ser.close()
    print("cose port.")