Python Forum
sending data from my raspberry pi to my website - Printable Version

+- Python Forum (https://python-forum.io)
+-- Forum: Python Coding (https://python-forum.io/forum-7.html)
+--- Forum: General Coding Help (https://python-forum.io/forum-8.html)
+--- Thread: sending data from my raspberry pi to my website (/thread-4731.html)



sending data from my raspberry pi to my website - mohitsangavikar - Sep-05-2017

my question here

I am an embedded systems engineer with just basic understanding of python.
I need to send temperature readings that have been stored in my raspberry pi as an xls file, to my website. after that on the server side, the other team is resposible to parse that data using PHP or whatever.
my responsibility is to make a python script that will send this data to the server.
I know that I have to use urllib in some way, most of the tutorials talk about grabbing and parsing data from a website, but none show how to send data.
if someone could help me with what I am supposed to do, that would be a great help

my code here



RE: sending data from my raspberry pi to my website - snippsat - Sep-05-2017

(Sep-05-2017, 04:15 PM)mohitsangavikar Wrote: I need to send temperature readings that have been stored in my raspberry pi as an xls file
xls is a really bad choice when it comes to web commutation.
If the server is not specialty setup to handle xls,then have to upload file as binary and server side has to deal with the whole file.
JSON is the preferred format when it come sending stuff to and from a server.
(Sep-05-2017, 04:15 PM)mohitsangavikar Wrote: I know that I have to use urllib in some way, most of the tutorials talk about grabbing and parsing data from a website, but none show how to send data.
No Requests is the one to use,not urllib.
Here a demo with Flask as server,and i will be sending data from outside into the server with Requests.
app.py:
from flask import Flask, request, jsonify

app = Flask(__name__)
@app.route('/pi', methods=['POST'])
def pi():
    pi_data = request.json
    print(f'Vaule on server {pi_data}') #--> Value on server {'temp': 100, 'temp_1': 150}
    return jsonify(pi_data)

if __name__ == '__main__':
    app.run(debug=True)
Start server with python app.py will be running on http://127.0.0.1:5000/.

pi_data.py:
import requests

data_from_pi = {'temp_1': 100, 'temp_2': 150}
response = requests.post('http://127.0.0.1:5000/pi', json=data_from_pi)
if response.ok:
    print(response.json()) #--> {'temp_1': 100, 'temp_2': 150}



RE: sending data from my raspberry pi to my website - wrybread - Sep-05-2017

While I agree that JSON is the way to go for more complicated data, for just sending a couple of values you might also consider using GET statements for simplicity.

For example:

import urllib

url = "http://yourserver.com/webpage.php?temperature=55"
urllib.urlopen(url)
And webpage.php would look something like:

<?php

$temperature = $_GET["temperature"];
print $temperature;

?>