#24 Kit
Zkusím teda změnit PIN.
Příspěvky odeslané z IP adresy 80.250.14.–
Nakonec mi to nefunguje... Nenapadlo vás nějaké programové řeší tohoto while cyklu?
while True:
global temp_calibrated
ventilator_ON = 22
ventilator_OFF = 18
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT)#IN2
if temp_calibrated > ventilator_ON:
GPIO.output(7,False)
if temp_calibrated < ventilator_OFF:
GPIO.output(7,True)
Čau lidi,
řeším problém, kdy chci aby se při překročení dané teploty seplo relé, ale až teplota klesne opět na nějakou žádanou hodnotu se opět vyplo. Nevíte jak sestavit podmínku?
Zatím mám toto:
while True:
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT)#IN2
ventilator = 22
if temp_calibrated > ventilator:
GPIO.output(7,False)
elif temp_calibrated < 15:
GPIO.output(7, True)
Ale toto nefunguje jak potřebuji.
Moc děkuji za pomoct
Čau lidi.
Snažím se na svém Raspberry Pi 3 zprovoznit modul Sense-hat tak aby měřil hodnoty a posílal je na PHP stránku. Jenže při spuštění mi hází stále chybu "inconsistent use of tabs and spaces in indentation" na řádku kde je: "temp= "%.1f" %temperature" .
Nevíte někdo proč tomu tak je a jak to napravit?
Moc díky za rady.
import os
import threading
import urllib.request, urllib.error, urllib.parse
from sense_hat import SenseHat
sense = SenseHat()
def readSensor():
global temperature
global humidity
global pressure
global cpu_temp
cpu_temp = 0
temperature =0
humidity = 0
pressure = 0
temperature = sense.get_temperature()
humidity = sense.get_humidity()+16.5
pressure = sense.get_pressure()+20
if pressure == 20 :
pressure = sense.get_pressure()+20
humidity = round(humidity,1)
pressure = round(pressure,1)
def readCPUTemperature():
global temperature
cpu_temp = os.popen("/opt/vc/bin/vcgencmd measure_temp").read()
cpu_temp = cpu_temp[:-3]
cpu_temp = cpu_temp[5:]
temperature = sense.get_temperature()
print(cpu_temp)
if cpu_temp == "42.9":
temperature = temperature - 8.2
elif cpu_temp == "44.0":
temperature = temperature - 8.5
elif cpu_temp == "44.5":
temperature = temperature - 8.7
elif cpu_temp == "45.1":
temperature = temperature - 9.0
elif cpu_temp == "46.7":
temperature = temperature - 9.1
elif cpu_temp == "47.2":
temperature = temperature - 9.2
elif cpu_temp == "47.8":
temperature = temperature - 9.3
elif cpu_temp == "48.3":
temperature = temperature - 9.35
elif cpu_temp == "48.9":
temperature = temperature - 9.4
else:
temperature = temperature - 9.5
def sendDataToServer():
global temperature
global pressure
global humidity
threading.Timer(600,sendDataToServer).start()
print("Sensing...")
readSensor()
readCPUTemperature()
temperature = round(temperature,1)
print(temperature)
print(humidity)
print(pressure)
temp= "%.1f" %temperature
hum ="%.1f" %humidity
press = "%.1f" %pressure
urllib.request.urlopen("localhost/mereni/add_data.php?temp="+temp+"&hum="+hum+"&pr="+press).read()
sendDataToServer()
Nevím jak to dostat na LCD.. Zatím jsem vytvořil todle ale nefunguje to:
#include <avr/io.h>
#include <util/delay.h>
#include <stdio.h>
#include <stdlib.h>
#include "dallas_one_wire.h"
#include "HD44780.h"
#include "crc8.h"
void scan_button(void);//
void switch_number(uint8_t show_number);
int button_state;
int prev_button_state;
int number;
int i;
int main ( void )
{
DDRB &= ~(1 << PINB0);
PORTB |= 1 << PINB0;
button_state = 1;
while(1)
{
scan_button();// funkce pro testování stisknutého tlačítka
_delay_ms(10);//čekání 10ms;
}
return 0;
}
///////////////////////// OŠETŘENÍ ZÁKMITU TLAČÍTKA /////////////////////////////
void scan_button(void)
{
prev_button_state=button_state;
button_state=PINB;
button_state &= 0b00000001;
if (button_state == 0)
{
if (prev_button_state == 1)
{
_delay_ms(150);
}
}
else
{
if (prev_button_state == 0)
{
_delay_ms(150);
}
}
}
void switch_number(uint8_t show_number)
{
switch(show_number)
{
case 1:
LCD_Clear();
LCD_Initalize();
LCD_GoTo(0,0);
LCD_WriteText(" Zadana Hodnota ");
break;
case 2:
LCD_Clear();
LCD_Initalize();
LCD_GoTo(0,0);
LCD_WriteText(" Hysterze ");
break;
default:
LCD_Clear();
LCD_Initalize();
LCD_GoTo(0,0);
LCD_WriteText(" ASD ");
break;
}
}
#7 MilanL
v C, ano. Aktuálně mi čidlo DS18B20 měří teplotu a posílá pomocí dallas_one_wire.h knihovny teplotu na LCD HD44780.h .
Nyní teda potřebuji, aby když stisknu TL1 se změnil LCD na Zvolení Histereze, kde TL3 je (+) a TL4 je (-). Poté stiskem TL2 se zadaná hodnota uloží.
Následně stisknutím TL1 přejde LCD na Zvolení Žádané teploty. Zde zase budu používat (+) a (-) potvrdím/uložím TL2
Čau lidi.
potřeboval bych udělat takové menší menu, které se bude projevovat na LED HD44780. Respektive při stisknutí TL1 se mi budou točit 2 možnosti. U těchto možností by mělo jít pomocí TL3 a TL4 zvyšovat nebo snižovat hodnotu. A TL2 by mělo toto nastavení uložit.
Nevíte někdo?
Má to být dělané na projekt Termostatu, kde již mám vytvořený kód na ukazování aktuální teploty na LCD.
Díky moc za rady
Díky za rady.
Zdravím pánové. Trošku mi pohořela nabíječka. Ozvalo se strašné pískání a pak křáp a pojistky dole. Noco koupil bych novou nabíječku, ale je tu háček mam ntb Acer Aspire 5551. Na nabíječce je napsáno označení PA-1900-24. Ať hledám jak hledám tam nacházim pouze ASUS PA-1900-24. Všechny údaje odpovídaj, ale je tam ASUS a neni tam Acer. Řešil to někdo?
Ahoj,
začal jsem jezdit do práce vlakem, protože musím makat ještě cestou tam i zpět. Zjistil jsem že notebook je pěkná mrcha a že se vybije jednou za 10 minut a podruhý za hodinu. Řešim co s tim jestli má smysl kupovat novou baterku nebo rovnou pošetřit na nový notebook.
Koukal jsem, že baterie pro HP probook 4510s s originální kapacitou výjde na 1500 Kč a tohle bych celý za 4ku prodal, takže kdybych přidal 4500 tak mam novej v záruce a bez starosti. Co by jste dělali vy?