我在抓取空间中设置了一个RPi0,以测量和记录一段时间内的温度/湿度。简而言之,Python程序每隔几分钟使用Chron运行一次,收集温度/湿度,并使用简单的HTTP页面将其发送到基于云的数据库(“一个和一个”),该页面运行一个简单的PHP程序以向其中添加一行MySQL数据库表。没有反馈(至少没有故意的反馈。)数据库已按预期更新了几周(足够长的时间让我陷入一种虚假的安全感中……。)然后它停止了。 SSH无法访问RPi0。
我拔下插头,将其带到我的办公室,将其插入电源,然后它又可以正常工作了,没问题...没有磁盘已满的症状(总使用量为19%。)出现了虚假的python消息,但他们只是在谈论类型转换警告。
冲洗并重复。
忽略本地数据库的INSERT设置。我已经注释掉了实际的命令执行,因为我不再使用本地数据库。
#!/usr/bin/python
import sys
import Adafruit_DHT
import MySQLdb
import time
import urllib2
from Adafruit_BME280 import *
# BMP working, DHT not so much
sensor = BME280(address=0x76,t_mode=BME280_OSAMPLE_8, p_mode=BME280_OSAMPLE_8, h_mode=BME280_OSAMPLE_8)
# conn=MySQLdb.connect(host="192.168.2.204",user="jim",passwd="xxxx",db="EnviroLogger")
# c=conn.cursor()
humidity=0
temperaturec=0
# humidity, temperaturec = Adafruit_DHT.read_retry(11, 4)
temperaturef=((temperaturec*9.000)/5.000)+32.000
datatime=time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
dhtvalues="(null,'DHT-8200-Crawl',"+str(temperaturef)+","+str(humidity)+",null,'"+datatime+"')"
time.sleep(1)
BMPtemperaturef = ((sensor.read_temperature()*9.000)/5.000)+32.000
hectopascals = sensor.read_pressure()/100.0000
BMPhumidity = sensor.read_humidity()
bmpvalues="(null,'BMP-8200-Crawl',"+str(BMPtemperaturef)+","+str(BMPhumidity)+","+str(hectopascals)+",'"+datatime+"');"
finalSQLstring="INSERT INTO ResDataLog(ID,Location,Temperature, Humidity, Pressure, RecDate) VALUES " + dhtvalues +","+bmpvalues
# c.execute (finalSQLstring)
# conn.commit()
#Get Weather info from DarkSky
from forecastiopy import *
MyLatLong=[34.985928,-80.767389]
DarkSkyKey='587336fab8f4f5e8766aee23ca5cfee79f390943221acedddwerreffafde'
fio=ForecastIO.ForecastIO(DarkSkyKey, latitude=MyLatLong[0], longitude=MyLatLong[1])
current = FIOCurrently.FIOCurrently(fio)
ambienttemp=current.temperature
ambienthumidity=current.humidity
ambientpressure=current.pressure
url="http://telemetry.mywebhost.com/add_data.php?loc="+"BMP-8200-Crawl"+"&temp="+str(BMPtemperaturef)+"&hum="+str(BMPhumidity)+"&pr="+str(hectopascals)+"&atemp="+str(ambienttemp)+"&ahum="+str(ambienthumidity)+"&apress="+str(ambientpressure)
urllib2.urlopen(url)
我怎么能捕捉到这里发生的事情并将其保存在死亡之前的某个地方?