JairoDanielMT commited on
Commit
e088ee4
·
verified ·
1 Parent(s): e347c94

Update main.py

Browse files
Files changed (1) hide show
  1. main.py +31 -20
main.py CHANGED
@@ -1,8 +1,17 @@
1
- from fastapi import FastAPI
 
2
  import sqlite3
3
  import uvicorn
4
  from fastapi.middleware.cors import CORSMiddleware
5
 
 
 
 
 
 
 
 
 
6
  app = FastAPI(
7
  title="API para Arduino Sensor Data",
8
  description="API para almacenar datos de sensores de Arduino en una base de datos SQLite",
@@ -17,30 +26,32 @@ app.add_middleware(
17
  allow_headers=["*"],
18
  )
19
 
20
-
21
  @app.get("/")
22
  def read_root():
23
  return {"message": "Welcome to the Arduino sensor data API"}
24
 
25
-
26
  @app.post("/sensor_data")
27
- async def create_sensor_data(
28
- timestamp: str,
29
- humedad_suelo: float,
30
- luz: float,
31
- turbidez: float,
32
- voltaje: float,
33
- estado: str,
34
- ):
35
- conn = sqlite3.connect("arduino_data.db")
36
- cursor = conn.cursor()
37
- cursor.execute(
38
- "INSERT INTO sensor_data (timestamp, humedad_suelo, luz, turbidez, voltaje, estado) VALUES (?, ?, ?, ?, ?, ?)",
39
- (timestamp, humedad_suelo, luz, turbidez, voltaje, estado),
40
- )
41
- conn.commit()
42
- conn.close()
 
 
 
43
 
44
  return {"message": "Data inserted successfully"}
45
 
46
-
 
 
1
+ from fastapi import FastAPI, HTTPException
2
+ from pydantic import BaseModel, Field
3
  import sqlite3
4
  import uvicorn
5
  from fastapi.middleware.cors import CORSMiddleware
6
 
7
+ class SensorData(BaseModel):
8
+ timestamp: str
9
+ humedad_suelo: float
10
+ luz: float
11
+ turbidez: float
12
+ voltaje: float
13
+ estado: str
14
+
15
  app = FastAPI(
16
  title="API para Arduino Sensor Data",
17
  description="API para almacenar datos de sensores de Arduino en una base de datos SQLite",
 
26
  allow_headers=["*"],
27
  )
28
 
 
29
  @app.get("/")
30
  def read_root():
31
  return {"message": "Welcome to the Arduino sensor data API"}
32
 
 
33
  @app.post("/sensor_data")
34
+ async def create_sensor_data(sensor_data: SensorData):
35
+ try:
36
+ conn = sqlite3.connect("arduino_data.db")
37
+ cursor = conn.cursor()
38
+ cursor.execute(
39
+ "INSERT INTO sensor_data (timestamp, humedad_suelo, luz, turbidez, voltaje, estado) VALUES (?, ?, ?, ?, ?, ?)",
40
+ (
41
+ sensor_data.timestamp,
42
+ sensor_data.humedad_suelo,
43
+ sensor_data.luz,
44
+ sensor_data.turbidez,
45
+ sensor_data.voltaje,
46
+ sensor_data.estado,
47
+ ),
48
+ )
49
+ conn.commit()
50
+ conn.close()
51
+ except Exception as e:
52
+ raise HTTPException(status_code=500, detail=f"Error inserting data: {e}")
53
 
54
  return {"message": "Data inserted successfully"}
55
 
56
+ if __name__ == "__main__":
57
+ uvicorn.run(app, host="0.0.0.0", port=8000)