1-wire mot Mysql

Generella Linux-frågor och frågor gällande Linuxmjukvara som saknar egen forumkategori skall postas i detta forum
Kategoriregler
Vill du visa bilder i ditt inlägg? Använd funktionen "Ladda upp bilaga" nedanför textrutan!
Bizmarck
Gillar hemautomation
Inlägg: 44
Blev medlem: 20 aug 2018, 13:21
Kontakt:

1-wire mot Mysql

Inlägg av Bizmarck »

Hej.

Jag vet att det finns en massa trådar om detta men jag provar att göra en egen ändå.

Jag vill ha ut alla mina 1-wire sensorer som jag ha i mitt pannrum ut till en MySQL-databas. (eller liknande) som jag sedan skall lägga ut på min hemsida (http://www.hakansta.com)

Jag kan inget om Mysql, så jag behöver hjälp med att sätta upp allt. helst steg för steg...kan någon hjälpa mig med det?

Känns som att det är enklare och mindre jobb för min Raspberry Pi3 att lägga ut det i Databasen än att den läser och skapar och uppdaterar alla filerna varje minut, Timme och Dygn.
Quart
Moderator
Inlägg: 566
Blev medlem: 17 jun 2007, 21:14
Ort: Hindås
Kontakt:

Re: 1-wire mot Mysql

Inlägg av Quart »

Jag loggar till MYSQL.
Kör ett PHP script som putter in värdena.
Detta kräver dock att du har en maskin igång som kan köra PHP.
Men det funkar fint och har gjort i 10år
Kan lägga upp php scriptet här samt hur min crontab ser ut.
Bizmarck
Gillar hemautomation
Inlägg: 44
Blev medlem: 20 aug 2018, 13:21
Kontakt:

Re: 1-wire mot Mysql

Inlägg av Bizmarck »

Jag har en separat en gammal Windows 10-burk som jag har kopplat till Nätverket. Den tänkte jag ha som Databas, men då är frågan, Kan jag från Raspberryn lägga all data till Windowsburken och sedan hämta datan till Raspberryns webserver? Blir lite fram och tillbaka...
Quart
Moderator
Inlägg: 566
Blev medlem: 17 jun 2007, 21:14
Ort: Hindås
Kontakt:

Re: 1-wire mot Mysql

Inlägg av Quart »

Japp det funkar
Bizmarck
Gillar hemautomation
Inlägg: 44
Blev medlem: 20 aug 2018, 13:21
Kontakt:

Re: 1-wire mot Mysql

Inlägg av Bizmarck »

Ok, så bra.

Kan du lägga upp bågot skript och förklara hur jag gör?
gflygt
Tar hemautomation på allvar
Inlägg: 101
Blev medlem: 26 jul 2009, 08:24
Ort: Stockholm

Re: 1-wire mot Mysql

Inlägg av gflygt »

Jag kör min raspberry pi 3, med mysql för insamling av data från mina 4 sensorer. Jag har gjort symlänkar till de ocacheade 1wire"filerna" under /mnt/1wire à la:
sensor1 -> /mnt/1wire/uncached/10.67AC92010800/temperature

Jag använder vanliga shellscript för att lägga in data i mysql från mina 4 sensorer:


#!/bin/bash
# collect.sh Script to collect data from 1-wire sensors
# Created 29 July 2009 by Gunnar Flygt
# The sensors have soft links in the working directory
# Collect temperature for display with gnuplot
#

mysql="/usr/bin/mysql -upi -plösenord weathersensors"
GREP="/bin/grep"
TR="/usr/bin/tr"

cd /home/pi/weatherdata

nr="1"

# This is the collector procedure
while [ $nr -le 4 ];
do
# Get the sensor ID for storing in database
sensid=`ls -l sensor$nr | awk '{ print $11 }' \
| awk 'BEGIN { FS = "/" } ; { print $5 }'`

# Get the temperature value strip whitespace
temp=`$GREP . sensor$nr | $TR -d [:space:]`

# define INSERT statement
insert="INSERT INTO measures VALUES('${sensid}',${temp},CURRENT_TIMESTAMP)"

# pollute database
`echo ${insert} | ${mysql}`

nr=$(( $nr + 1 ))
done

Och min lilla tabell för dessa värden ser ut så här:

MariaDB [weathersensors]> show create table measures\G;
*************************** 1. row ***************************
Table: measures
Create Table: CREATE TABLE `measures` (
`sensor` varchar(20) DEFAULT NULL,
`value` varchar(20) DEFAULT NULL,
`tidpunkt` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`tidpunkt`),
CONSTRAINT `CONSTRAINT_1` CHECK (`value` < 40)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
1 row in set (0.001 sec)

Den sista raden CONSTRAINT ..... lade jag in häromdagen för att skala bort helt orimliga värden.

Gunnar
Bizmarck
Gillar hemautomation
Inlägg: 44
Blev medlem: 20 aug 2018, 13:21
Kontakt:

Re: 1-wire mot Mysql

Inlägg av Bizmarck »

Nu ska jag börja ta ta i detta.

Det som du skriver ovan är lite utanför min liga.

Lite mer utförligt skulle jag behöva.

- Skapa en databas
- symlänkar?
- vart ska id för sensorerna in i Shellscriptet?
cattlekickball
Inlägg: 1
Blev medlem: 09 sep 2024, 05:06

Re: 1-wire mot Mysql

Inlägg av cattlekickball »

Installera MySQL på din Raspberry Pi:
sudo apt-get update
sudo apt-get install mysql-server
Skapa en databas och tabell: Logga in på MySQL:
mysql -u root -p
Skapa en databas:
CREATE DATABASE sensor_data;
Skapa en tabell:
USE sensor_data;
CREATE TABLE readings (id INT AUTO_INCREMENT, sensor_name VARCHAR(50), value FLOAT, timestamp DATETIME, PRIMARY KEY(id));
Skriv svar