Raspberry Pi nRF24L01 + Data Collector använder Google former (6 / 11 steg)
Steg 6: Raspberry Pi: basera mottagare
Raspberry Pi Base mottagaren använder nCurses för att visa data dashboard. Python-koden är klar data läsa och fyller i formuläret Google.
Importera bibliotek
importera print_function från __future__
importera RPi.GPIO som GPIO
Importera tid
importera os
importera Adafruit_DHT
importera förbannelser
Importförfrågningar
Importera tid från RF24 import *
Skicka data till formuläret. Formulärposter definieras i inlagor strängen. Url-adressen i formuläret hämtas från menyalternativet förfyllda inlämning. Denna adress kan sedan brytas ner för att få enskilda form objekt.
https://docs.google.com/forms/d/1onnROUjj1Orjoge0STvMRA7PDDR-YKw5eoo2mruLSCQ/viewform?entry.1183120755=Sid&entry.408289807=DHT11-TC&entry.2133582784=DHT11_H%25&entry.181535051=DS18B20C&entry.1756888165=PHOTO&entry.1187558071=startTime-millis&entry.498543388=nowTime-millis&entry.1127599175=RPiDHT11C&entry.751073501=RPiDHT11H%25&entry.1895537677=RPi_C&entry.773327888=RPI-submitter
Enskilda form objekten kan sedan kodas enligt följande, där data representerar data variabeln ska bokföras till form
'entry.1234567890': data
Data sedan bokförs till formuläret med hjälp av funktionen bibliotek
requests.post (formResponseurl, inlagor)
def postData():
inlagor = {'entry.1183120755': Sid, "entry.408289807": temperatureC, 'entry.2133582784': fuktighet, "entry.181535051": ds18b20C, 'entry.1756888165': Apin0, 'entry.1187558071': startTime, 'entry.498543388': thisTime, 'entry.1127599175': TempC, 'entry.751073501': HUM, "entry.1895537677": RPiC, 'entry.773327888': inlämnare}
svar = requests.post (formResponseurl, inlagor)
returnera 1
Detta är de viktigaste loop, läsa data från sensorer, bokföring i formuläret Google och visning på instrumentbrädan nCurses.
samtidigt sant:
pipe = [0]
samtidigt inte radio.available():
Time.Sleep(2)
nCursesSleeping()
längd = radio.getDynamicPayloadSize()
buffert = radio.read(length)
nCursesRadio()
flashLEDs(3)
Sid = buffert [0] + 256 * buffert [1]
startTime = buffert [2] + 256 * buffert [3]
thisTime = buffert [4] + 256 * buffert [5]
Apin0 = buffert [6] + 256 * buffert [7]
Apin1 = buffert [8] + 256 * buffert [9]
Apin2 = buffert [10] + 256 * buffert [11]
Apin3 = buffert [12] + 256 * buffert [13]
Apin4 = buffert [14] + 256 * buffert [15]
Apin5 = buffert [16] + 256 * buffert [17]
Apin6 = buffert [18] + 256 * buffert [19]
Apin7 = buffert [20] + 256 * buffert [21]
temperatureC = buffert [22] + 256 * buffert [23]
fukt = buffert [24] + 256 * buffert [25]
ds18b20C = buffert [26] + 256 * buffert [27]
# nu läsa DHT11 sensorn på Pi-hallon
readDHT11(pDHT11)
readPi = readPiTemp()
RPiC = float(readPi)
RPiF = (RPiC * 1,8) + 32,0
nCursesWindow()
mscreen.Refresh()
mscreen.Clear()
postIt = postData()
nCursesWindow()
Obs att det är en varning efter att data har bokförts till formuläret. Detta kan förbises, men bör denna typ av säkerhetsvarning vara av intresse då en alternativ metod för bokföring av data bör användas. Till exempel detta Instructable.