- Fujifilm X
- Milyen TV-t vegyek?
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Nem indul és mi a baja a gépemnek topik
- 5.1, 7.1 és gamer fejhallgatók
- Bluetooth hangszórók
- Melyik tápegységet vegyem?
- AMD GPU-k jövője - amit tudni vélünk
- Apple MacBook
- Milyen asztali (teljes vagy fél-) gépet vegyek?
-
PROHARDVER!
Amit érdemes tudni a Raspberry Pi-kről:
A legelső változat 2012-ben jelent meg. Pici, olcsó és nagyon alacsony fogyasztású, hobby-célú kártyagép. Felépítése ARM alapú, nem PC-architektúra, hanem kb. egy régi mobilhoz hasonló. Nagyon sok mindenre használható! A Linux-nak és a magas eladási mennyiségnek köszönhetően jelentős fejlesztőtáborral rendelkezik.
Új hozzászólás Aktív témák
-
D@reeo
aktív tag
Üdv
Kezdek belebolondulni ebbe a hőmérős projectbe.
Elméletileg minden a helyén van, de az adatbázisba mégse menti le mért értékeket.
pollSensors.py (itt a 38. sorban kell a nonce = nonce.encode('utf-8'), különben hibát dob, de lehet, hogy pont e miatt nem menti le az adatbázisba)import requests
import hashlib
import time
#Dont forget to fill in PASSWORD and URL TO saveTemp (twice) in this file
sensorids = ["28-00000509be8b", "28-00000535993e"]
avgtemperatures = []
for sensor in range(len(sensorids)):
temperatures = []
for polltime in range(0,3):
text = '';
while text.split("\n")[0].find("YES") == -1:
# Open the file that we viewed earlier so that python can see what is in it. Replace the serial number as before.
tfile = open("/sys/bus/w1/devices/"+ sensorids[sensor] +"/w1_slave")
# Read all of the text in the file.
text = tfile.read()
# Close the file now that the text has been read.
tfile.close()
time.sleep(1)
# Split the text with new lines (\n) and select the second line.
secondline = text.split("\n")[1]
# Split the line into words, referring to the spaces, and select the 10th word (counting from 0).
temperaturedata = secondline.split(" ")[9]
# The first two characters are "t=", so get rid of those and convert the temperature from a string to a number.
temperature = float(temperaturedata[2:])
# Put the decimal point in the right place and display it.
temperatures.append(temperature / 1000)
avgtemperatures.append(sum(temperatures) / float(len(temperatures)))
print avgtemperatures[0]
print avgtemperatures[1]
session = requests.Session()
nonce = session.get(url='http://localhost/saveTemp.php?step=nonce').text
nonce = nonce.encode('utf-8')
response = hashlib.sha256(nonce + 'root' + str(avgtemperatures[0]) + str(avgtemperatures[1])).hexdigest()
post_data = {'response':response, 'temp1':avgtemperatures[0], 'temp2': avgtemperatures[1]}
post_request = session.post(url='http://localhost/saveTemp.php', data=post_data)
if post_request.status_code == 200 :
print post_request.textsaveThemp.php
<?php
// set the defines here, and the mysqli info on line 24
// make sure you have an temps table with floats for temp1 and temp2 and created_at (timestamp)
// make sure you have an alerts table with floats for avgtemp1 and avgtemp2, open (boolean, default: true) and created_at (timestamp)
define("PASSWORD","root");
session_start();
$mysqli = initDB();
if($_GET['step'] == 'nonce') {
getNonce();
} else if (isset($_POST['response']) && isset($_POST['temp1']) && isset($_POST['temp2'])) {
checkAuthenticationResponce();
processEntry($mysqli);
}
$mysqli->close();
function initDB() {
$mysqli = new mysqli("localhost", "root", "root", "temp");
/* check connection */
if ($mysqli->connect_errno) {
header("HTTP/1.0 500 Internal Server Error");
exit();
}
return $mysqli;
}
function checkAuthenticationResponce() {
if(!isset($_SESSION['tempNonce']) || hash('sha256', $_SESSION['tempNonce'] . PASSWORD . $_POST['temp1'] . $_POST['temp2']) != $_POST['response']) {
header("HTTP/1.0 401 Authorization Required");
exit;
} else {
unset($_SESSION['tempNonce']);
}
}
function getNonce() {
$_SESSION['tempNonce'] = hash('sha256', '1321421412412452354235325' . time());
echo $_SESSION['tempNonce'];
}
function processEntry($mysqli) {
$temp1 = floatval($_POST['temp1']);
$temp2 = floatval($_POST['temp2']);
$stmt = $mysqli->prepare("INSERT INTO temps (temp1, temp2) VALUES(?,?)");
$stmt->bind_param('dd', $temp1, $temp2);
if ($stmt->execute() === true) {
echo "added";
} else {
header("HTTP/1.0 500 Internal Server Error");
}
}
?>Ha kézzel viszek be értékeket, akkor azokat kirajzolja a grafilonra. Ha kézzel futtatom a var/www/pollSensors.py-t, akkor kiírja a 2 értéket, de az adatbázisba nem menti le.
mysql user: localhost,root, rootAdatbázis szerkezet:
-- phpMyAdmin SQL Dump
-- version 3.4.11.1deb2+deb7u1
-- http://www.phpmyadmin.net
--
-- Hoszt: localhost
-- Létrehozás ideje: 2015. febr. 08. 19:38
-- Szerver verzió: 5.5.41
-- PHP verzió: 5.4.36-0+deb7u3
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Adatbázis: `temp`
--
-- --------------------------------------------------------
--
-- Tábla szerkezet: `temps`
--
CREATE TABLE IF NOT EXISTS `temps` (
`temp1` float NOT NULL,
`temp2` float NOT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
--
-- A tábla adatainak kiíratása `temps`
--
INSERT INTO `temps` (`temp1`, `temp2`, `created_at`) VALUES
(21, 11, '2015-02-08 12:59:35'),
(41, 61, '2015-02-08 12:59:51');
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;Mi a francnak nem menti le az adatbázisba az értékeket? Köszi
Új hozzászólás Aktív témák
- Borderlands 4
- Bestbuy játékok
- Apple Watch Sport - ez is csak egy okosóra
- Synology NAS
- Kodi és kiegészítői magyar nyelvű online tartalmakhoz (Linux, Windows)
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Windows 10
- Nintendo 3DS és DS topic
- Fujifilm X
- E-roller topik
- További aktív témák...
- Asztali PC , i7-4790 , GTX 1650 , 8GB RAM , 120GB SSD , 500 GB HDD
- Asus Rog Gamer PC Ryzen 5700X3D
- BESZÁMÍTÁS! ASRock B650M R7 7700 32GB DDR5 1TB SSD RX 9070 XT 16GB be quiet! Pure Base 500 FX 750W
- BESZÁMÍTÁS! ASRock B650M R5 7500F 32GB DDR5 1TB SSD RTX 3080 10GB Kolink Observatory RGB A-Data 750W
- BESZÁMÍTÁS! Gigabyte H110M i5 6500 8GB DDR4 240GB SSD GTX 1050Ti 4GB AeroCool V3X Green nBase 600W
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9800X3D 64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
- 121 - Lenovo Legion Pro 5 (16ARX8) - AMD Ryzen 7 7745HX, RTX 4070 - 4 év garancia
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Telefon felvásárlás!! Honor 200 Lite, Honor 200, Honor 200 Pro, Honor 200 Smart
- GYÖNYÖRŰ iPhone 13 Pro 128GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS3082
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest