Prosím o radu - navržení - jak vyřešit tento záměr. Chci na chatě mít zařízení měřící teplotu v pokoji, zaznamenávající třeba jednou za hodinu teplotu do logu. Protože chci vědět jaká tam v zimě bývá nejnižší teplotu a jak rychle dochází k ochlazování když odjedeme.
Výsledný log bych rád viděl v grafu.
Něco jako třeba tady. (Linuxové servery dělají podobné grafy teploty, zatížení cpu, donwload, upload,...)
V minulosti jsem již se snažil o sestavení projektu v sestavě: Arduino nano + DHT11 + microSD datalogger + RTC DS3231.
Problém na který jsem tehdá narazil bylo, jak potom vytáhnout log ze zařízení a převést ho na přehledný graf.
Dnes uvažuji nad přenosem přes wifi, že bych koupil desku arduina s wifi modulem, a komunikovat se tím přes wifi.
Prosím o radu, jestli exustuje nějaké řešení nebo lepší řešení jak by jste to navrhli vy, nebo jestli existuje nějaký již hotový produkt, co by zaznamenával historii pokojové teploty.
Děkuji
Řešení záznamu historie teploty na chatě
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Re: Řešení záznamu historie teploty na chatě
Já si udělal shield na UNO, kde jsou dvě velká tlačítka -
zelené, které rozsvítí/zhasne zelenou diodu, která indikuje, že jsme na chatičce (protože to se ta teplota chová logicky jinak) a píše to do logu
červené, které rozsvítí/zhasne červenou diodu, která indikuje, že je SD karta odpojená a může se vytáhnout - při stisknutí provede měření, odpojí kartu a rozsvítí ledku, při dalším stisknutí zhasne ledku, připojí kartu a provede měření.
Pak je tam modul pro SD kartu, kam se ta měření ukládají
modul pro RTC, aby to znalo správný čas a datum i v případě výpadku napájení
spousta DS18B20 senzorů, které to měří na různých místech
a fotoodpor z Arduino kitu pro měření světla (ono je to kdesi uvnitř, ale (jasný/zamračený) den a noc to rozezná
Výsledný soubor převedu na CSV (tohle jsem ještě moc nevychytal, tak to dělám skriptem, v nějaké další verzi asi přepíšu logování) a z něj vygeneruju graf, vypadá to asi takhle (ale to jsem měl všechny senzory na jednom stole - a je vidět, kdy se v pokoji svítilo lampou)
ale je to celé ještě dost nehotové a ve vývoji a pro publikaci to bude chtít učesat
tahle vypadají nějaká reálná data se dvěma čidly - jedno v chatě, jedno venku
Je vidět, jak je teplota uvnitř stabilnější a opožděná za venkovní, která je opožděná za sluncem
zelené, které rozsvítí/zhasne zelenou diodu, která indikuje, že jsme na chatičce (protože to se ta teplota chová logicky jinak) a píše to do logu
červené, které rozsvítí/zhasne červenou diodu, která indikuje, že je SD karta odpojená a může se vytáhnout - při stisknutí provede měření, odpojí kartu a rozsvítí ledku, při dalším stisknutí zhasne ledku, připojí kartu a provede měření.
Pak je tam modul pro SD kartu, kam se ta měření ukládají
modul pro RTC, aby to znalo správný čas a datum i v případě výpadku napájení
spousta DS18B20 senzorů, které to měří na různých místech
a fotoodpor z Arduino kitu pro měření světla (ono je to kdesi uvnitř, ale (jasný/zamračený) den a noc to rozezná
Výsledný soubor převedu na CSV (tohle jsem ještě moc nevychytal, tak to dělám skriptem, v nějaké další verzi asi přepíšu logování) a z něj vygeneruju graf, vypadá to asi takhle (ale to jsem měl všechny senzory na jednom stole - a je vidět, kdy se v pokoji svítilo lampou)
Kód: Vybrat vše
import pandas as pd
import matplotlib.pyplot as plt
# Load your data from a CSV file
data = pd.read_csv('MER2309B.csv', parse_dates=['datetime'], sep=',' )
print(data.head())
print(data.info())
# Assuming 'datetime' is your timestamp column, convert it to datetime format
data['datetime'] = pd.to_datetime(data['datetime'])
data['light_100'] = data['light'] / 100
# Replace error code (-127) with 0.0 in all temperature columns
temperature_columns = ['temperature[0]', 'temperature[1]', 'temperature[2]', 'temperature[3]', 'temperature[4]', 'temperature[5]', 'temperature[6]', 'temperature[7]', 'temperature[8]', 'temperature[9]', 'temperature[10]', 'temperature[11]', 'temperature[12]']
for column in temperature_columns:
data[column] = data[column].replace(-127, 0.0)
# Calculate the average of the temperature columns and store it in a new column 'average_temperature'
data['average_temperature'] = data[temperature_columns].mean(axis=1)
# Plot your data
plt.figure(figsize=(12, 6))
plt.plot(data['datetime'], data['light_100'], label='Light', color='blue')
for i in range(13):
plt.plot(data['datetime'], data[f'temperature[{i}]'], label=f'Temperature[{i}]')
plt.plot(data['datetime'], data[f'average_temperature'], label=f'Temperature Average', color='red')
# Customize your plot (titles, labels, legends, etc.)
plt.title('Light and Temperature Over Time')
plt.xlabel('Datetime')
plt.ylabel('Value')
plt.legend()
plt.grid()
# Save or display the plot
plt.savefig('MER2309B.png')
plt.show()
tahle vypadají nějaká reálná data se dvěma čidly - jedno v chatě, jedno venku
Je vidět, jak je teplota uvnitř stabilnější a opožděná za venkovní, která je opožděná za sluncem
Re: Řešení záznamu historie teploty na chatě
Můj první projekt byl měření napětí autobaterie 1x za hodinu pomocí ATtiny202 (na fotce nahrávání programu pomocí programátoru Microchip SNAP - v popředí, bílý) a modulu Sigfox RKWS01. Data se nikam neukládají ale rovnou odesílají přes síť Sigfox na server backend.sigfox.com kde mám nastaven script, který data vynese do grafu na thingspeak.com
Problém je, že síť Sigfox v ČR před několika měsíci krachla a poslední data mám z letní cesty na jachtu do Chorvatska, Zadar letos v létě .
Nově bych asi použil síť LoRaWAN Českých radiokomunikací, která funguje v pohodě . Chystám na ní projekt GPS/LoRa mikro lokátoru koček zašitý v obojku s výdrží více než 3 měsíce (poloha 1x za hodinu s možností nastavení častěji z aplikace v mobilu (Android Studio) pro dohledání kočky). Plošný spoj bude velký cca 8 x 25 mm. LoRa síť umožní při nezachycení GPS signálu přibližné určení polohy pomocí automatické triangulace signálu. Na obrázku testování GPS přijímače u-Blox MIA-M10Q s mou GPS drátovou dipolovou anténou, která bude v obojku. Signál z antény byl v pohodě i bez zapnutí LNA v GPS přijímači. Pro maximální výdrž baterie použiju funkci CloudLocate, kdy pro určení GPS polohy postačí probudit přijímač jen na několik sekund.
Problém je, že síť Sigfox v ČR před několika měsíci krachla a poslední data mám z letní cesty na jachtu do Chorvatska, Zadar letos v létě .
Nově bych asi použil síť LoRaWAN Českých radiokomunikací, která funguje v pohodě . Chystám na ní projekt GPS/LoRa mikro lokátoru koček zašitý v obojku s výdrží více než 3 měsíce (poloha 1x za hodinu s možností nastavení častěji z aplikace v mobilu (Android Studio) pro dohledání kočky). Plošný spoj bude velký cca 8 x 25 mm. LoRa síť umožní při nezachycení GPS signálu přibližné určení polohy pomocí automatické triangulace signálu. Na obrázku testování GPS přijímače u-Blox MIA-M10Q s mou GPS drátovou dipolovou anténou, která bude v obojku. Signál z antény byl v pohodě i bez zapnutí LNA v GPS přijímači. Pro maximální výdrž baterie použiju funkci CloudLocate, kdy pro určení GPS polohy postačí probudit přijímač jen na několik sekund.
Re: Řešení záznamu historie teploty na chatě
Jestli to chápu dobře, je na chatě trvale dostupný internet přes wifi síť. Data ze senzoru se kromě SD karty dají uložit na web v podstatě kamkoli, mrknul bych se na Google Tabulky (Google Sheet) - jde napsat jednoduchý skript (v JavaScriptu, Apps Script tomu říkají), ten propojit se sešitem Google Sheet a ze zařízení jednoduchým http GET requestem přenést a zapsat data.
Jakmile mám údaje v tabulce Google Sheet, dá se dělat cokoli, kromě analýzy dat i vygenerovat graf. Ať už způsobem, že mám webovou aplikaci a ta si načte data z tabulky a zobrazí je graficky ve vlastní režii nebo využít služeb třetích stran. Nebo si udělat to stejný jako mobilní aplikaci; příp. oboje.
Nemusí to být přímo Google Sheet, ale i jiná dostupná služba jako Seatable nebo Airtable. Ale nejvíc kontroly nad daty a jejich zpracováním poskytne Google Sheet. Není nutné mít email od Googlu (xyz@gmail.com), služby Google se dají použít i s jinou emailovou adresou, klidně na seznam.cz
Vše výše zmíněné se dá provozovat zdarma.
Jakmile mám údaje v tabulce Google Sheet, dá se dělat cokoli, kromě analýzy dat i vygenerovat graf. Ať už způsobem, že mám webovou aplikaci a ta si načte data z tabulky a zobrazí je graficky ve vlastní režii nebo využít služeb třetích stran. Nebo si udělat to stejný jako mobilní aplikaci; příp. oboje.
Nemusí to být přímo Google Sheet, ale i jiná dostupná služba jako Seatable nebo Airtable. Ale nejvíc kontroly nad daty a jejich zpracováním poskytne Google Sheet. Není nutné mít email od Googlu (xyz@gmail.com), služby Google se dají použít i s jinou emailovou adresou, klidně na seznam.cz
Vše výše zmíněné se dá provozovat zdarma.
Re: Řešení záznamu historie teploty na chatě
Taky záleží jak hodně chceš jít do minulosti a jestli stačí graf informativně nebo chceš s daty ještě něco dělat.
Já používam na teploměr Thingspeak: https://thingspeak.com/channels/387730 Graf a hodnoty tam mam, je to zdarma a stačí, ale záleží na tom ...
Já používam na teploměr Thingspeak: https://thingspeak.com/channels/387730 Graf a hodnoty tam mam, je to zdarma a stačí, ale záleží na tom ...
https://arze.cz - ARduino Zapojení Elektronika
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host