使用Raspberry pi pico W将数据存储到MongoDB数据库中非常容易。我们唯一需要的是活动的Internet连接,我们可以通过几个步骤通过其数据API插入数据。另外,所有人都可以免费开始,这可以为物联网应用程序提供强大的用例。在使用缓慢的数据时,它可能特别有用。
另外,MongoDB是一个NOSQL数据库,这意味着它使用BSON格式插入比传统数据库更复杂的数据结构,该数据库也具有其优点。它也有缺点,其中之一是,由于NOSQL的性质,查询数据的较慢。我将在第2部分中更详细地讨论利弊。
阅读其余部分之前,请确保订阅并支持频道(如果没有)!
订阅:
YouTube
支持:
https://www.buymeacoffee.com/mmshilleh
步骤1-)mongodb帐户设置
-
访问mongodb.com并创建一个免费帐户
-
在您的帐户中启用数据API
- 逐步并生成一个API键,您需要将API键与URL一起保存它们给您,以便您可以通过Raspberry Pi picoW。 访问群集
- 在UI中创建数据库和集合,这是我们将存储示例文档的地方。
步骤2-)代码
pico w上的代码如下
import machine
import urequests as requests
import network
import time
import constants
def connect_to_wifi(ssid, psk):
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(ssid, psk)
while not wlan.isconnected() and wlan.status() >= 0:
print("Waiting to Connect")
time.sleep(10)
if not wlan.isconnected():
raise Exception("Wifi not available")
print("Connected to WiFi")
try:
connect_to_wifi(constants.INTERNET_NAME, constants.INTERNET_PASSWORD)
# Need to substitute from DATA API
url = "<url>/action/insertOne"
headers = { "api-key": "<api key>" }
documentToAdd = {"device": "MyPico", "readings": [77, 80, 40, 60, 70, 80, 10]}
insertPayload = {
"dataSource": "Cluster0",
"database": "WeatherData2",
"collection": "BME2802",
"document": documentToAdd,
}
print("sending...")
response = requests.post(url, headers=headers, json=insertPayload)
print("Response: (" + str(response.status_code) + "), msg = " + str(response.text))
if response.status_code == 201:
print("Added Successfully")
else:
print("Error")
# Always close response objects so we don't leak memory
response.close()
except Exception as e:
print(e)
-
在代码中插入您的Internet名称,Internet密码,MongoDB数据API URL和API密钥。
-
在有效载荷中,您需要添加群集,数据库和集合名称。
-
我们只需连接到WiFi,并通过扩展 /操作 /插入机将有效载荷发送给其API,这将使我们能够插入一个文档。我们正在为此示例使用一些虚拟数据!
如果您正确设置了所有内容,则应该可以在收藏中看到文档,恭喜。如果您有问题,请在上面的YouTube上观看有关更多详细信息。在下一个教程中,我们将在时间序列中使用实际传感器数据,并使用其API进行其他更复杂的数据查询,因此请订阅!
,请继续关注频道! 结论
在我们使用的大多数应用程序中,数据库至关重要。值得庆幸的是,MongoDB及其数据API使得仅使用WiFi就可以很容易地开始。希望您喜欢这个视频和内容。让我知道您是否有任何疑问。