Programmieren – die neusten Beiträge

Zweimal DHT22 Sensor verwenden?

Hallo,

ich baue gerade eine Art "Wetterstation" mit meinem Arduino dazu verwende ich zweimal den DHT22 um die Temperatur und Luftfeuchtigkeit innen und außen zu messen. Ich habe nun das Problem, dass ich einen Befehl (Fett gedruckt) nicht einfach doppelt verwenden kann. Was macht dieser Befehl ? Wie kann ich einfach beide Sensoren verwenden?

Danke im Voraus!

Code:

#include <SimpleDHT.h>

#include <LiquidCrystal.h>

int pinDHT22in = 8;

int pinDHT22out = 9;

int Sensorwert;

const uint8_t rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

SimpleDHT22 dht22(pinDHT22in);

void setup(){

 Serial.begin(115200);             // Damit unsere Werte später im seriellen Monitor angezeigt werden können, legen wir zuerst die Baudrate 9600 fest.

 pinMode( 0 , INPUT);             // Pin 0 dient nun als Input

 lcd.begin(20, 4);              //Im Setup wird angegeben, wie viele Zeichen und Zeilen verwendet werden. Hier: 16 Zeichen in 4 Zeilen.

 lcd.clear();

}

void loop()

{

   Sensorwert = analogRead(0);       // Zuerst wird der Wert (gas) am Pin A0 ausgelesen...

     

   Serial.print("Der erfasste Wert lautet : "); 

   Serial.println(Sensorwert, DEC);     //... und anschließend im seriellen Monitor als Dezimalzahl ausgegeben.

   Serial.println();

   lcd.setCursor(0, 0);

   lcd.print("Messwert (gas): ");

   lcd.print(Sensorwert);

   delay(1000);

      float temperature = 0;

      float humidity = 0;

      int err = SimpleDHTErrSuccess;

      if((err=dht22.read2(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess){

       lcd.setCursor(0, 1);

       lcd.print("Read DHT22 failed, err=");

       lcd.print(err);

       delay(2000);

       return;

}

     lcd.setCursor(0, 1);

     lcd.print("Temp(in): ");

     lcd.print((float)temperature);

     lcd.print(" *C");

     lcd.setCursor(0, 2);

     lcd.print("Luftfeuchte: ");

     lcd.print((float)humidity);

     lcd.print("%");

     delay(2500); // DHT22 sampling rate is 0.5HZ.   

 delay(1000);             

Computer, Technik, programmieren, Arduino, Sensor, Arduino Uno

VLC unter Linux Mint 20.2, ?

verbleibt nach konventionellem Beenden des Selbigen weiterhin in der System Monitor Liste

Der VLC-Player läuft durchweg normal. Nach dem Schließen steht allerdings sehr häufig ein Eintrag im System Monitor. Dann lässt sich der Player nicht mehr neu starten. Es sei denn ich deaktiviere zuvor die, als aktiv voreingestellte, Funktion:

"Nur eine Instanz benutzen, wenn aus der Dateiverwaltung gestartet"

Dann findet sich natürlich ein neuer Eintrag im System Monitor, für jede neu geöffnete Instanz. Und diese Einträge verschwinden auch nicht nach dem Schließen des jeweiligen Fensters. (Alle lassen sich nur noch mit Abwürgen/Kill loswerden.)

Der Player bleibt also irgendwo beim Beenden hängen, vermute ich schwer.

Es scheinen wohl einige Leute in der Vergangenheit bereits ähnliche Probleme gehabt zu haben. Jedenfalls bekam ich den Eindruck bei meiner kurzen Recherche dazu. Eine Lösung für das Problem finde ich selbst jedoch leider keine.

Ich glaube bei Linux Mint 18.3 Cinnamon (meinem letzten Linux), ist der VLC sogar vorinstalliert gewesen. Jetzt scheint er durch Celluloid ersetzt worden zu sein. Allerdings sollte der VLC doch ohne großen Aufwand ordentlich zum Laufen gebracht werden können.

Übrigens funktioniert auch die Bildvorschau nicht richtig. Wenn ich ein Video angehalten hab und in der Zeit herumspringe, wird kein Bild mehr angezeigt. Erst wenn ich wieder Play drücke.

Aber ich denke, dass dies wohl nicht mit meinem primären Problem zusammenhängt.

Hatte leider bereits den Eindruck bekommen müssen, dass der VLC über die Jahre sich eher zurückentwickelt, was meine Bedürfnisse angeht (z.B. auch ruckelfreie Wiedergabe bei 32 oder 64 facher Geschwindigkeit.)

Hat denn jemand eine Idee wie der VLC wieder mit aktivierter "nur eine Instanz..."-Funktion läuft? (Das er sich also irgendwie von alleine soweit beendet, damit ich den Prozess nicht jedes mal "killen" muss.)

Oder macht es vielleicht mehr Sinn, diese Frage in Linuxforen zu stellen?

Oder gleich das VLC-Team zu kontaktieren?

Besten Dank!

Computer, Software, Film, Technik, Linux, programmieren, Videoschnitt, VLC, Technologie, vlc-player, videowiedergabe, videos abspielen

Warum klickt der Webdriver auf ein anderes Element?

Hallo,

heute mal wieder die KrünKraft Website:

Mein Python Selenium Skript soll auf folgender Seite: GrünKraft Zufriedenheit (gruenkraft-zufriedenheit.de) den Button PayPal-Konto drücken. Danach sollte sich dann ein input Feld auftun, welches dann ausgefüllt werden soll.

<div class="column-left w-col w-col-5">
<label class="radio-button-field-2 left w-radio">
<input type="radio" id="paypal" name="payout" value="paypal" data-name="payout" required="" class="w-form-formradioinput radio-button w-radio-input">
<span for="paypal" class="radio-button-label-2 w-form-label">PayPal-Konto</span>
</label>
</div>

Den Code für das Inputfeld lasse ich jetzt mal weg, da es wirklich nur ein Input Feld ist.

Mein erster Code:

from selenium import webdriver
import time
driver = webdriver.Chrome('C:/Users/.../Desktop/Python/chromedriver.exe')
driver.maximize_window()
driver.get('https://gruenkraft-zufriedenheit.de/')
element = driver.find_element_by_id("paypal")
time.sleep(4)
element.click()

Wenn ich den Code der Website richtig verstanden habe, dann muss man doch zuerst auf den gestylten Radiobutton drücken, damit das Inputfeld erscheint. Führe ich dann aber den oben gezeigten Code aus, dann kommt die Meldung: "Other element would receive the click" und zwar anscheinend das Textfeld darunter. Warum ist das so?

Ein Code der funktioniert ist folgender:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.action_chains import ActionChains


driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get("https://gruenkraft-zufriedenheit.de/")
wait = WebDriverWait(driver, 10)
driver.find_element_by_xpath("//span[text()='PayPal-Konto']").click()
wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "input[name='paypal-email-2']"))).send_keys('some-email@gmail.com')

Da wird gewartet, bis das Element sichtbar wird( Was heiß das dann schon wieder? ) und offensichtlich wird nicht der Radiobutton, sondern das span Element angeklickt. Warum funktioniert das dann?

Danke

PC, Computer, Browser, Technik, IT, programmieren, Informatik, Python

Meistgelesene Beiträge zum Thema Programmieren