Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

Dashboard arduino data (real-time en historisch)

Pagina: 1
Acties:

Vraag


  • barrymossel
  • Registratie: Juni 2003
  • Laatst online: 29-11 10:09
Ik wil wat dingetjes zoals temp, luchtvochtigheid in een kweekbak meten via Arduino en dit tonen in een dashboard. Het enige dat de Arduino mag doen is de metingen via een DHT11 (of DHT22) en deze doorsturen via ethernet of wifi naar een database. Een app, website/dashboard mag dit dan visualiseren. Het eerste deel is niet zo moeilijk (de metingen):
DHT11 aansluiten op een digitale pin van de Arduino (ook een pull-up weerstand gebruiken). Dan kun je via de Adafruit DHT library zeer eenvoudig de metingen van luchtvochtigheid en temperatuur uitlezen. Naar wens kun je ook een licht sensor aansluiten op een analoge pin (had ik nog liggen).

Maar dan... De data moet dus opgeslagen worden in een database (tenminste als je ook historische data wilt tonen van de afgelopen dag(en) - en dat wil ik). En dan ook nog op een makkelijke én mooie manier getoond kunnen worden. Ik heb nu enkele mogelijke oplossingen, maar het is passen en meten.
  • Data opslaan in een MySQL database op eigen server. Voordeel is dat je de data op een eigen server hebt en er in principe alles mee kan doen wat je maar wilt. Echter een kant-en-klaar dashboard om e.e.a. te tonen is niet gratis beschikbaar, of niet echt mooi om te zien. Dus daar kan ik nog even wat naar zoeken. Heb weinig zin om nu het zelf te gaan programmeren.
  • Freeboard.io in combinatie met dweet.io. Real-time data is makkelijk te tonen en er is ook een dweet.io library beschikbaar, waardoor het Arduino programmeerwerk appeltje-eitje is. Ziet er op zich prima uit, alleen is er geen mooie optie om historische data te tonen zover ik zie. Graag zou ik namelijk voor laatste 24 uur, laatste week, laatste maand (o.i.d.) kunnen kiezen.
  • Adafruit.io ziet er wel interessant uit. Je stuurt via een library je data naar de servers van Adafruit en kunt die naar wens tonen in een dashboard. Wel nog erg beta, maar wel historische data (waar je vooraf moet opgeven over welke tijd de data getoond moet worden - bijv. laatste 24 uur).
  • Thinger.io, welke ook in beta is. Je koppelt via een API je Arduino aan Thinger en kunt via een dashboard je data tonen. Historische data gaat op basis van een X-aantal datapunten. Dus ook niet precies wat ik, maar in principe voldoende voor de toepassing.
Bij voorkeur zou ik dus een mooi en eenvoudig dashboard vinden dat gratis MySQL data toont: real-time en historisch waarbij gekozen kan worden voor een tijdsrange.

Ik ben ook nog aan het kijken naar Domotica oplossingen, maar kom er zo 1-2-3 niet uit. Heeft iemand een tip om de data op te slaan én visueel te tonen?

Alle reacties


  • Fr33z
  • Registratie: December 2003
  • Laatst online: 12:47
er zijn vele oplossingen, en veel hangt af van hoeveel je zelf wilt prutsen/tweaken en hoeveel het out-of-the-box moet werken. Ik heb een tijd met RRDtool gewerkt en die resultaten dan via een webpage geshowed, dat werkt snel maar is weinig flexibel.

Recentelijk ben ik aan het spelen met Graphite+Grafana. Dit is een vrij uitgebreid pakket om time-series data op te slaan (in Graphite (via whisper en carbon, onderdelen ervan) en een manier om makkelijk dashboards te maken via Grafana.

De 2e route kan je heeel mooi en gaaf maken, alleen kost wel tijd om in te stellen en je te verdiepen in hoe het werkt. zie voor voorbeelden bijv:

YouTube: Grafana - The Graphite Dashboard

  • EnerQi
  • Registratie: Maart 2011
  • Laatst online: 27-11 18:44
Hmm ik heb juist hetzelfde idee maar dan bewust mijn data intern opslaan (lees puntje 1 van jouw vraag).
Vervolgens via een interne website deze data tonen maar daar heb ik me nog niet in verdiept.

Overigens lijkt me Graphite erg mooi :o

  • barrymossel
  • Registratie: Juni 2003
  • Laatst online: 29-11 10:09
Zelf maakt het me niet zo uit waar de data wordt opgeslagen, tenminste niet uit privacy oogpunt o.i.d. (het gaat om de temperatuur in een kweekkasje). Wel vind ik het een fijn idee dat je evt. meer kunt met de data an sich wanneer je het op een eigen server opslaat (bijv. een download van alle gegevens, verwerken in excel, etc) - maar ook dat is geen eis. Primair gaat het me om het tonen van de data.

Dat tonen wil ik zo clean mogelijk. Beetje lekker smoelen, maar wel zoveel mogelijk plug&play. Ik heb momenteel weinig zin om in PHP te gaan klooien. Maar dat Grafana ziet er wel prima uit. Wel heel erg gericht op de grafieken, maar in principe doet dit wel wat ik wil. En zover ik nu kan zien kun je met queries data ophalen. Dus dat gaat ook wel lukken. Ben alleen nog niet helemaal kapot van de dashboards an sich. Ik wil eigenlijk ook gewoon "metertjes" etc. Maar deze komt voorlopig wel op m'n shortlist!

Hier staat overigens ook nog wel het e.e.a.: http://dashboarddude.com/

Maar het fijnste is natuurlijk configureren van de data feed en dan met widgets de data tonen...

Andere optie: http://dashingdemo.herokuapp.com/sample

  • GENETX
  • Registratie: Juni 2005
  • Laatst online: 13:29
Ik zou inderdaad Grafana nemen in combinatie met InfluxDB. Die laatste is heel makkelijk te vullen met data met http requests. Heb je in no-time opgezet.

  • barrymossel
  • Registratie: Juni 2003
  • Laatst online: 29-11 10:09
Grafana/Graphite ziet er inderdaad goed uit. Optie zou dan ook Graphene zijn.

Zelf voel ik ook wel veel voor Dashing. Hier kunnen redelijk wat widgets aan worden toegevoegd, waaronder ook widgets voor Graphite (en sowieso data uit Graphite). Dan zou e.e.a. evt. gecombineerd kunnen worden.
Via al die widgets kan je ook direct eenvoudig andere data toevoegen (die ik totaal niet nodig heb, maar leuk is het wel). Ziet er allemaal net wat minder technisch uit, maar uiteindelijk heb je wel de mogelijkheden van Graphite.

  • naftebakje
  • Registratie: Februari 2002
  • Laatst online: 09:52
Waarom een arduino met wifi? Voor een paar € heb je een ESP8266 die rechtstreeks je sensor kan uitlezen en via wifi doorsturen.
Van het geld wat je bespaart kan een raspberry PI kopen, kan je die gebruiken op om de logging te doen (met domoticz, of wat ^voorgesteld wordt).

Als de boer zijn koeien kust, zijn ze jarig wees gerust. Varkens op een landingsbaan, leiden nooit een lang bestaan. Als de boer zich met stront wast, zijn zijn hersens aangetast. Als het hooi is in de schuur, zit het wijf bij den gebuur.


  • barrymossel
  • Registratie: Juni 2003
  • Laatst online: 29-11 10:09
naftebakje schreef op dinsdag 23 februari 2016 @ 12:23:
Waarom een arduino met wifi? Voor een paar € heb je een ESP8266 die rechtstreeks je sensor kan uitlezen en via wifi doorsturen.
Van het geld wat je bespaart kan een raspberry PI kopen, kan je die gebruiken op om de logging te doen (met domoticz, of wat ^voorgesteld wordt).
Kan ook. Ik ben echter net begonnen met het "begrijpen" van de Arduino code. Dus dat leek me wel zo handig. Arduino's en RPi's heb ik beide nog twee stuks 'over'. Toeval wil echter dat ik ook een ESP8266 heb liggen die ik voor een toekomstig project heb liggen.
Wat zouden de voordelen zijn van de ESP8266 (buiten dat het allemaal een stuk compacter is)?

[ Voor 3% gewijzigd door barrymossel op 23-02-2016 12:31 ]


  • naftebakje
  • Registratie: Februari 2002
  • Laatst online: 09:52
Als je het liggen hebt maakt het zo'n extreem verschil meer, maar voor ESP bestaat er software die direct via interne webserver te configureren valt, DHT sensor ondersteunt en in 10 minuten draait (easyESP).

Je kan de ESP trouwens ook via Arduino omgeving programmeren, dan wordt de ESP een compacte supersnelle supergoedkope arduino met ingebouwde WIFI.

[ Voor 34% gewijzigd door naftebakje op 23-02-2016 15:11 ]

Als de boer zijn koeien kust, zijn ze jarig wees gerust. Varkens op een landingsbaan, leiden nooit een lang bestaan. Als de boer zich met stront wast, zijn zijn hersens aangetast. Als het hooi is in de schuur, zit het wijf bij den gebuur.


  • Fr33z
  • Registratie: December 2003
  • Laatst online: 12:47
even vooropgesteld dat het je lukt om op de rapsberry pi graphite draaiend te krijgen (wat zeker kan, heb het net klaar, maar bereid je voor op een paar avonden werk) is dit denk ik de makkelijkste manier:

neem en NodeMCU bordje (is een ESP8266 met een usb-poort voor programming/power) en sluit die DHT11 aan. Laad de arduino code erin en laat het elke minuut bijv. data in je graphite-instance stoppen door het laden van een URL

display het geheel met Giraffe/grafana/Dashing/whatever dasboard je leuk vind

klaar

  • barrymossel
  • Registratie: Juni 2003
  • Laatst online: 29-11 10:09
Fr33z schreef op dinsdag 23 februari 2016 @ 15:15:
even vooropgesteld dat het je lukt om op de rapsberry pi graphite draaiend te krijgen (wat zeker kan, heb het net klaar, maar bereid je voor op een paar avonden werk) is dit denk ik de makkelijkste manier:

neem en NodeMCU bordje (is een ESP8266 met een usb-poort voor programming/power) en sluit die DHT11 aan. Laad de arduino code erin en laat het elke minuut bijv. data in je graphite-instance stoppen door het laden van een URL

display het geheel met Giraffe/grafana/Dashing/whatever dasboard je leuk vind

klaar
Mocht iemand het ooit willen proberen. Deze stappen heb ik doorlopen:

Schone installatie van Raspbian.
code:
1
sudo apt-get update && sudo apt-get upgrade

code:
1
sudo apt-get install apache2 apache2-utils

code:
1
sudo apt-get install graphite-carbon

code:
1
sudo apt-get install python python-pip build-essential python-dev libcairo2-dev libffi-dev

code:
1
sudo nano /etc/default/graphite-carbon

Daar false in true veranderen
code:
1
sudo pip install graphite-api

code:
1
sudo nano /etc/graphite-api.yaml

Met volgende content:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
search_index: /var/lib/graphite/index
finders:
  - graphite_api.finders.whisper.WhisperFinder
functions:
  - graphite_api.functions.SeriesFunctions
  - graphite_api.functions.PieFunctions
whisper:
  directories:
    - /var/lib/graphite/whisper
carbon:
  hosts:
    - 127.0.0.1:7002
  timeout: 1
  retry_delay: 15
  carbon_prefix: carbon
  replication_factor: 1

code:
1
sudo apt-get install libapache2-mod-wsgi

code:
1
cd /var/www

code:
1
sudo mkdir

code:
1
wsgi-scripts

code:
1
sudo nano /var/www/wsgi-scripts/graphite-api.wsgi

Met de volgende content:
code:
1
2
3
# /var/www/wsgi-scripts/graphite-api.wsgi

from graphite_api.app import app as application

code:
1
sudo nano /etc/apache2/sites-available/graphite.conf

Met de volgende content:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# /etc/apache2/sites-available/graphite.conf
LoadModule wsgi_module modules/mod_wsgi.so
WSGISocketPrefix /var/run/wsgi
Listen 8013
<VirtualHost *:8013>

 WSGIDaemonProcess graphite-api processes=5 threads=5 display-name='%{GROUP}' inactivity-timeout=120
 WSGIProcessGroup graphite-api
 WSGIApplicationGroup %{GLOBAL}
 WSGIImportScript /var/www/wsgi-scripts/graphite-api.wsgi process-group=graphite-api application-group=%{GLOBAL}

 WSGIScriptAlias / /var/www/wsgi-scripts/graphite-api.wsgi

 <Directory /var/www/wsgi-scripts/>
 Order deny,allow
 Allow from all
 </Directory>
 </VirtualHost>

code:
1
cd /etc/apache2/sites-enabled/

code:
1
sudo ln -s /etc/apache2/sites-available/graphite.conf .

code:
1
cd /var

code:
1
sudo mkdir graphite

code:
1
sudo chown -R www-data:www-data /var/graphite/

code:
1
sudo service apache2 restart


Volgende zou dan moeten werken: http://[raspberry.ip]:8013/render?target=carbon.agents.raspberrypi-a.cpuUsage

  • Fr33z
  • Registratie: December 2003
  • Laatst online: 12:47
wauw, bedankt voor deze uitgebreide reactie. Ik zie dat je op deze manier alleen nog geen dashboard hebt, klopt dat? Voor mij was de makkelijkste manier om grafana-1.9.1 te downloaden en deze te unzippen in /var/www/grafana

dan nog eventueel je apache.conf aanpassen en je hebt zowel backed als frontend

  • barrymossel
  • Registratie: Juni 2003
  • Laatst online: 29-11 10:09
Fr33z schreef op donderdag 25 februari 2016 @ 08:23:
wauw, bedankt voor deze uitgebreide reactie. Ik zie dat je op deze manier alleen nog geen dashboard hebt, klopt dat? Voor mij was de makkelijkste manier om grafana-1.9.1 te downloaden en deze te unzippen in /var/www/grafana

dan nog eventueel je apache.conf aanpassen en je hebt zowel backed als frontend
Zelf ben ik eerst aan de slag gegaan met het compilen van Grafana 2 gisteravond, maar daar kreeg ik weer vage foutmeldingen en er waren ook geen vreemde zaken in error logs te zien. Toen uiteindelijk een package gevonden voor Grafana 2.6 en die geïnstalleerd. Werkte direct. (En toen naar bed gegaan en vandaag nog niet verder gekeken hoe of wat, maar het werkte in ieder geval met test data en ik kon mijn graphite server benaderen...).

code:
1
wget http://www.aplaline.com/grafana_2.6.0_armhf.deb

code:
1
sudo dpkg -i grafana_2.6.0_armhf.deb


(Gebruik op eigen risico uiteraard...) :)

  • Fr33z
  • Registratie: December 2003
  • Laatst online: 12:47
gaaf, die ga ik ook proberen. Had nog geen recente armhf.deb gevonden van grafana 2. Dankje Barrymossel

  • GENETX
  • Registratie: Juni 2005
  • Laatst online: 13:29
InfluxDB kun je ook makkelijk op een Pi krijgen (als vervanger voor graphite, beiden werken met Grafana):

code:
1
sudo nano /etc/apt/sources.list


Voeg daaraan toe:
code:
1
deb http://ftp.us.debian.org/debian testing main contrib non-free


en dan:
code:
1
2
3
4
sudo apt-get update
sudo apt-get install influxdb/testing
sudo apt-get install influx-client/testing
systemctl enable influxdb.service


Toevallig ook gister op een Pi gezet en dezelfde grafana package gevonden :+

[ Voor 8% gewijzigd door GENETX op 25-02-2016 17:09 ]


  • barrymossel
  • Registratie: Juni 2003
  • Laatst online: 29-11 10:09
Top, die zag ik ook. Zelf ga ik waarschijnlijk een ander dashboard gebruiken welk niet out-of-the-box met InfluxDB werkt, maar ondanks dat kan het best zijn dat ik die er vanavond toch op zet om wat te spelen :)

  • barrymossel
  • Registratie: Juni 2003
  • Laatst online: 29-11 10:09
GENETX schreef op donderdag 25 februari 2016 @ 17:09:
InfluxDB kun je ook makkelijk op een Pi krijgen (als vervanger voor graphite, beiden werken met Grafana):

code:
1
sudo nano /etc/apt/sources.list


Voeg daaraan toe:
code:
1
deb http://ftp.us.debian.org/debian testing main contrib non-free


en dan:
code:
1
2
3
4
sudo apt-get update
sudo apt-get install influxdb/testing
sudo apt-get install influxdb-client/testing
sudo systemctl enable influxdb.service

Toevallig ook gister op een Pi gezet en dezelfde grafana package gevonden :+
Volgens mij moet het zijn:

code:
1
2
3
4
sudo apt-get update
sudo apt-get install influxdb/testing
sudo apt-get install influx-client/testing
systemctl enable influxdb.service
Pagina: 1