Python/MicroPython Sensor Logger: Sensordaten nahtlos in Google Sheets speichern
Ein robustes System zur direkten Aufzeichnung von Sensormesswerten in ein Google Sheet. Es nutzt einfache HTTP-Requests, um den Mikrocontroller mit einem leichten Server zu verbinden, und die gspread Bibliothek, um die Daten zu schreiben.
Bevor Sie beginnen, folgen Sie den OAuth2-Setup-Anweisungen in der gspread-Dokumentation, um Ihrem Skript Zugriff auf das Ziel-Spreadsheet zu gewähren.
Hardware-Verbindungen
- D0 zu RST: Erforderlich, um das Board aus Deep-Sleep zu wecken.
- + zu 3,3 V am Wemos.
- – zu GND am Wemos.
- Signal zu A0 am Wemos.
Bei Problemen einfach kommentieren – ich helfe bei der Fehlersuche.
Schaltplan
Code
import machine
import urequests
import time
# RTC handhabt Deep-Sleep Wake-ups
rtc = machine.RTC()
rtc.irq(trigger=rtc.ALARM0, wake=machine.DEEPSLEEP)
# ADC-Pin für Sensorspannung
adc = machine.ADC(0)
######################
# Sensor-Kalibrierung
######################
# Referenzwerte (invers ×1000)
# Trockenluft = 759 (0 %) → 1.31752305665349143610013175231
# Wasser = 382 (100 %) → 2.61780104712041884816753926702
# Differenz = 1.30027799046692741206740751471
# 1 % relative Feuchte = 0.0130027799046692741206740751471
hours = str(time.localtime()[3])
mins = str(time.localtime()[4])
secs = str(time.localtime()[5])
if int(secs) < 10:
secs = '0' + secs
if int(mins) < 10:
mins = '0' + mins
timestr = f"{hours}:{mins}:{secs}"
# ADC-Wert in relative Feuchte (%) umrechnen
variable = (((1 / adc.read()) * 1000) / 0.0130027799046692741206740751471) - 101
variable = max(0, min(100, variable))
# Daten an lokalen Endpoint senden
url = 'https://192.168.1.2:8000/solomon'
headers = {'content-type': 'application/json'}
data = f'{{"Value":"{variable}","Time":"{timestr}"}}'
resp = urequests.post(url, data=data, headers=headers)
print(resp.json())
# Nächste Messung nach 25 s planen und Deep-Sleep starten
rtc.alarm(rtc.ALARM0, 25000)
machine.deepsleep()
Quelle: Python/MicroPython Sensor Logger for Google Sheets
Herstellungsprozess
- Raspberry Pi Temperaturlogger mit 5 $ I2C Sensor bauen
- Fern-Temperatursensor mit Raspberry Pi & Python bauen – Schritt-für-Schritt-Anleitung
- Line-Tracking-Sensor mit Raspberry Pi – Einfacher KY-033 Tür/Line Detektor
- Robuste Temperatur- & Sensor-API auf Raspberry Pi mit GY-91 Modul bauen
- ThingSpeak Temperatur-Monitor mit Raspberry Pi & BrickPi bauen
- Automatisiertes Aeroponik-System mit Raspberry Pi und Feuchtigkeitssensor bauen
- Pythons str.count(): Zeichen & Teilstrings zählen mit Beispielen
- Python round()-Funktion erklärt mit praktischen Beispielen
- Pythons map()-Funktion meistern: Syntax, Beispiele und Best Practices
- Python Extension Programming mit C: Schnelle, native Module erstellen