gpt4 book ai didi

python - 通过 Flask API 将 Arduino 传感器值发布到本地 Sqlite 数据库

转载 作者:行者123 更新时间:2023-11-28 04:03:46 27 4
gpt4 key购买 nike

我有一个 Arduino 脚本,它从连接到我的 MKR1000 的光传感器获取 bool 值。

#include <SPI.h>
#include <WiFi101.h>

char ssid[] = "networkname"; // network SSID (name)
char pass[] = "networkpassword"; // network password (use for WPA, or use as key for WEP)
int keyIndex = 0; // network key Index number (needed only for WEP)

int status = WL_IDLE_STATUS;
char server[] = "192.111.1.11"; // name address for Google (using DNS)

// Initialize the Ethernet client library
// with the IP address and port of the server
// that you want to connect to (port 80 is default for HTTP):
WiFiClient client;

void setup()
{
pinMode(6, INPUT);

//Initialize serial and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only

while (status != WL_CONNECTED) {
Serial.print("Attempting to connect to SSID: ");
Serial.println(ssid);
// Connect to WPA/WPA2 network. Change this line if using open or WEP network:
status = WiFi.begin(ssid, pass);

// wait 10 seconds for connection:
delay(10000);
}

Serial.println("\nStarting connection to server...");
// if you get a connection, report back via serial:
if (client.connect(server, 5000)) {
Serial.println("connected to server");
// Make a HTTP request:
client.println("GET /search?q=arduino HTTP/1.1");
client.println("Host: 192.111.1.11");
client.println("Connection: close");
client.println();
}
}
}

void loop()
{
bool gotLight = (digitalRead(6) == LOW);

if (gotLight == 1) {
String PostDataTrue = "TRUE";
client.connect("https://192.111.1.11/5000/lights/1",5000);
client.println(PostDataTrue);
}

if (gotLight == 0) {
String PostDataFalse = "FALSE";
client.connect("https://192.111.1.11/5000/lights/0",5000);
client.println(PostDataFalse);
}

// Serial.println(gotLight);
delay(1000);
}

我还有一个用于运行基本 API 和 Sqlite 数据库的 Flask 脚本。

from flask import Flask
import sqlite3

app = Flask(__name__)

@app.route('/lights/0')
def hello_world():
return 'lights off!'

@app.route('/lights/1')
def hello():
return 'lights on!'

if __name__ == '__main__':
app.run()

DATABASE = '/Users/reallymemorable/Desktop/reTest.db'

def get_db():
db = getattr(g, '_database', None)
if db is None:
db = g._database = sqlite3.connect(DATABASE)
return db

@app.teardown_appcontext
def close_connection(exception):
db = getattr(g, '_database', None)
if db is not None:
db.close()

我认为大部分 .ino 文件都是正确的,但我不知道如何让 void loop() 中的部分向我的发出 POST 请求API 而不是仅在我的串行监视器中生成输出——这就是当前发生的情况。

基本上,我希望我的 Arduino 不断将新数据发布到 Sqlite 数据库。

我对此很陌生,所以我不确定接下来要尝试什么步骤,如果有任何建议,我将不胜感激。

最佳答案

flask 好用吗?

而且,https://192.111.1.11/5000/lights/1 是正确的吗?

如果端口是 5000,https://192.111.1.11:5000/lights/1 将是正确的。

关于python - 通过 Flask API 将 Arduino 传感器值发布到本地 Sqlite 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59080080/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com