mirror of
https://github.com/pimoroni/grow-python
synced 2025-10-25 15:19:23 +00:00
Merge pull request #27 from pimoroni/jorjun-master
Example moisture-reading web API (aiohttp) (replaces #21)
This commit is contained in:
36
examples/web_serve.py
Normal file
36
examples/web_serve.py
Normal file
@@ -0,0 +1,36 @@
|
||||
"""
|
||||
@jorjun Anno Vvii ☉ in ♓ ☽ in ♋
|
||||
License: MIT
|
||||
Description: Web API for moisture readings: http://<your-pi-host>:8080/
|
||||
"""
|
||||
from functools import partial
|
||||
import json
|
||||
import logging
|
||||
from aiohttp import web
|
||||
from grow.moisture import Moisture
|
||||
|
||||
json_response = partial(web.json_response, dumps=partial(json.dumps, default=str))
|
||||
routes = web.RouteTableDef()
|
||||
|
||||
|
||||
@routes.get("/") # Or whatever URL path you want
|
||||
async def reading(request):
|
||||
data = {
|
||||
"m1": meter[0].moisture,
|
||||
"m2": meter[1].moisture,
|
||||
"m3": meter[2].moisture,
|
||||
}
|
||||
return json_response(data)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
app = web.Application()
|
||||
logging.basicConfig(level=logging.INFO)
|
||||
app.add_routes(routes)
|
||||
meter = [Moisture(_+1) for _ in range(3)]
|
||||
web.run_app(
|
||||
app,
|
||||
host="0.0.0.0",
|
||||
port=8080,
|
||||
access_log_format='%s %r [%b / %Tf] "%{User-Agent}i"',
|
||||
)
|
||||
Reference in New Issue
Block a user