简体   繁体   English

通过python`request`代码将树莓派传感器数据发送到远程elasticsearch

[英]Send Raspberry pi sensor data to remote elasticsearch via python `request` code

Sensor Data --> Raspberry Pi --- (send sensors data via requests Python Code) ---> remote server (Elasticsearch)传感器数据 --> Raspberry Pi ---(通过requests Python 代码发送传感器数据)---> 远程服务器(Elasticsearch)

Target is sending received sensor data to elasticsearch via request python module.目标正在通过request python 模块将接收到的传感器数据发送到 elasticsearch。

Question: When I use this code: data = '{"TempA":"23"}' , the post request work and document of elasticsearch is being updated as shown below:问题:当我使用此代码时: data = '{"TempA":"23"}'data = '{"TempA":"23"}'的 post 请求工作和文档正在更新,如下所示:

{"_index":"report","_type":"_doc",{"TempA":"23"}

But when I changed the code to: data = {"TempA": mens} , to get value of sensor directly, it does not work and document of elasticsearch does not update.但是当我将代码更改为: data = {"TempA": mens} ,为了直接获取传感器的值,它不起作用并且弹性搜索的文档不会更新。 (This is my python code which receives data from sensor and put the value of sensor in "mens".) (这是我的 python 代码,它从传感器接收数据并将传感器的值放在“mens”中。)

#!/usr/bin/env python3

import time
from SX127x.LoRa import *
from SX127x.board_config import BOARD
import requests

BOARD.setup()
BOARD.reset()
headers = {
    'Content-Type': 'application/json',
}

class mylora(LoRa):

    def __init__(self, verbose=False):
        super(mylora, self).__init__(verbose)
        self.set_mode(MODE.SLEEP)
        self.set_dio_mapping([0] * 6)

    def on_rx_done(self):
        self.clear_irq_flags(RxDone=1)
        payload = self.read_payload(nocheck=True)
        mens=bytes(payload).decode("utf-8",'ignore')
        print(mens)
        data = {"TempA":mens}
        response = requests.post('http://192.168.100.125:9200/report/_doc/customer505', headers=headers, data=data)
        time.sleep(2)
        self.reset_ptr_rx()
        self.set_mode(MODE.RXCONT)

    def start(self):
        while True:
            self.reset_ptr_rx()
            self.set_mode(MODE.RXCONT) # Receiver mode
            while True:
                pass;

Thanks for comments.感谢您的评论。 After some googling, I found the solution.经过一番谷歌搜索,我找到了解决方案。 The key point was json=params and params instead of data .关键点是json=paramsparams而不是data Changes are as below:变化如下:

#!/usr/bin/env python3

import time
from SX127x.LoRa import *
from SX127x.board_config import BOARD
import requests
import json

BOARD.setup()
BOARD.reset()
headers = {
    'Content-Type': 'application/json',
}

class mylora(LoRa):

    def __init__(self, verbose=False):
        super(mylora, self).__init__(verbose)
        self.set_mode(MODE.SLEEP)
        self.set_dio_mapping([0] * 6)

    def on_rx_done(self):
        self.clear_irq_flags(RxDone=1)
        payload = self.read_payload(nocheck=True)
        mens=bytes(payload).decode("utf-8",'ignore')
        print(mens)
        url = 'http://192.168.100.125:9200/report/_doc/customer600'
        params = {'soilA': mens, 'customer_id': 'customer600'}
        r = requests.post(url, headers=headers, json=params)
        time.sleep(2)
        self.reset_ptr_rx()
        self.set_mode(MODE.RXCONT)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何通过蓝牙在两个树莓派之间进行通信并将传感器数据从一个树莓派发送到另一个树莓派? - How to communicate between two raspberry pi via Bluetooth and send sensor data from one pi to another? “距离传感器”和“中继”树莓派的 Python 代码 - Python code for 'Distance Sensor' and 'Relay' Raspberry Pi 实时 plot 传感器数据 Python Raspberry pi - Live plot sensor data Python Raspberry pi 可能吗? Python通过USB端口(Raspberry Pi)发送十六进制代码 - Is it possible? Python send Hex code via usb port (raspberry pi) 根据光传感器值Python Raspberry Pi向Openhab发送命令 - Send commands to Openhab depending on Light Sensor Values Python Raspberry Pi 通过蓝牙发送传感器数据和流视频(Raspberry Pi 到 PC) - Send Sensor Data & Stream Video Over Bluetooth (Raspberry Pi to PC) Python:将传感器数据从Raspberry Pi推送到xive - Python: pushing sensor data from Raspberry Pi to xively 将传感器数据树莓派保存到数据库 - saving sensor data raspberry pi to data base 从 DHT-11 温度/湿度传感器到 CSV 文件的传感器数据(python/树莓派 3) - Sensor data from DHT-11 temperature/ humidity sensor to CSV file (python/ raspberry pi 3) optomax 数字液体传感器 - python for raspberry pi - optomax digital liquid sensor - python for raspberry pi
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM