1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Trophäen
  4. Forum
    1. Unerledigte Themen
  5. Artikel
  6. Lexicon
  • Login
  • Register
  • Search
Everywhere
  • Everywhere
  • Articles
  • Pages
  • Forum
  • Lexicon
  • More Options
  1. Deutsches Raspberry Pi Forum
  2. Mitglieder

Dennis89 # TODO

  • and 1 more
  • Male
  • 36
  • Member since February 12, 2020
  • Last Activity: March 16, 2026 at 10:25 AM
Posts
3,069
Reactions Received
852
Points
16,512
Trophies
4
Profile Hits
10,016
  • Posts
  • Threads
  • Wall
  • Recent Activity
  • Reactions
  • About Me
Gizmoh1978
December 1, 2024 at 12:09 PM

Moin sag mal kannst du mir helfen bei den Pico?

Er soll die Windgeschwindigkeit messen. kann er das?

Der windsensor ist mit ein Readkontakt... eine umdrehung ein signal...

BienenJohann
January 21, 2024 at 5:09 PM

und leider funktioniert meine einbindung der hx711 auch nicht... (mehr?)

im Solobetrieb kein problem, richtige werte usw.

aber im Programm nicht??????

Ist da offensichtlich was falsch? die Variablen sind die selben wie im soloprogramm..

mfg Bienenjohann

BienenJohann
January 21, 2024 at 5:06 PM

Hallo; bin ein wenig am Verzweifeln.... wie ich diesen Code in meinen implementiere...

Fakt ist: auf Pressen IRQ.rising von PIn 14 soll dis_write() ausgeführt werden..

Python
#FUNKTIONIERT!!!!!
from bme280 import BME280
from machine import Pin, I2C, Timer
from time import sleep, sleep_ms
from sh1106 import SH1106 
from bh1750 import BH1750
from onewire import OneWire
from ds18x20 import DS18X20
from hx711_gpio import HX711
import urequests 
import network
import secrets
import rp2
import sh1106
from machine import Pin
from micropython import schedule
from time import ticks_ms

class messure_sensor():
    def __init__(self, bme, lux, hx, ds, http, key):
        self.bme280 = bme
        self.bh1750 = lux
        self.hx711 = hx
        self.ds18x20 = ds
        self.temperatur = ''
        self.luftdruck = ''
        self.luftfeuchtigkeit = ''
        self.beleuchtungsstaerke = ''
        self.bel_str = ''
        self.tds = ''
        self.gewicht_str = ''
        self.http = http
        self.api_key = key
        self.hx_const=275232*11.83
    
    def read(self, first = False ):
        self.temperatur, self.luftdruck, self.luftfeuchtigkeit\
                         = self.bme280.values
        beleuchtungsstaerke = self.bh1750.luminance(BH1750.ONCE_HIRES_1)
        self.bel_str=str(round(beleuchtungsstaerke,2))
        #sleep_ms(100)
        gew = self.hx711.read_average()
        gewicht = (gew-77993)/self.hx_const
        self.gewicht_str = f'{abs(gewicht):3.2f} kg'
        sleep_ms(100)
        ds.convert_temp()
        sleep_ms(750)
        for device in devices:
            self.tds=ds.read_temp(device)
            self.stocktemp=str(round(self.tds,2))
        if not first:
            self.send()
        
        
    def get(self):
        return (self.temperatur, self.luftdruck, self.luftfeuchtigkeit,\
               self.bel_str, self.gewicht_str, self.stocktemp)
    
    def send(self):
        readings = {'field1':self.temperatur, 
                        'field2':self.luftdruck,
                        'field3':self.luftfeuchtigkeit,
                        'field4':self.bel_str,
                        'field5':self.gewicht_str,
                        'field6':self.stocktemp} 
        try:
            request = urequests.post('http://api.thingspeak.com/update?api_key=' +\
                self.api_key, json = readings, headers = self.http)  
            request.close() 
            print('send data ok')
        except :
            print('No sending data')
    
class Display():
    def __init__(self, sh1106):
        self.sh = sh1106
        self.active = False
        
    def write(self, args):
        if not self.active:
            self.active = True
            temperatur, luft, feucht, bel_str, gewicht_str, stocktemp = args
            self.sh.poweron()
            self.sh.rotate(True)
            self.sh.fill(0)
            self.sh.text('STOCK NR. 1',15,0)
            self.sh.text('Temp: ',1,8)
            self.sh.text(temperatur,50,8)
            self.sh.text('LD.: ',1,16)
            self.sh.text(luft,50,16)
            self.sh.text('LF: ',1,24)
            self.sh.text(feucht,50,24)
            self.sh.text('Lux.:',1,32)
            self.sh.text(bel_str,50,32)
            self.sh.text('lux',100,32)
            self.sh.text('Gew.:',1,40)
            self.sh.text(gewicht_str,50,40)
            self.sh.text('T BR',1,48)
            self.sh.text(stocktemp,50,48)
            self.sh.text('C',100,48)
            self.sh.show()
            sleep(5) # wait for 30 secounds
            self.sh.poweroff()
            self.active =  False
 
def dis_write(timer):
    display.write(readsensor.get())


        
SSID = secrets.ssid
PSWD = secrets.pw
API_Key = 'T0AP92DECV6YOC1S'
rp2.country('DE')
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
wlan.connect(SSID, PSWD)
LED_BUILTIN = Pin("LED", Pin.OUT)

# warte auf WLAN Verbindung 
while not (wlan.status() < 0 or wlan.status() >= 3):
    sleep(1)

# Verbindung hergestellt
LED_BUILTIN.value(1)

#Definitons for I2C-Bus
SDA_PIN = 0
CLK_PIN = 1
i2c=I2C(0, sda= Pin(SDA_PIN), scl=Pin(CLK_PIN), freq=400000)
i2c1=I2C(1, sda= Pin(10), scl=Pin(11), freq=400000)
#Definitions for OLED-Display
WIDTH = 128
HEIGHT = 64
oled = sh1106.SH1106_I2C(WIDTH, HEIGHT, i2c, Pin(16), 0x3c) #Wahrscheinlich der externe VCC PIN = 16 ?

#ONE WIre BUS und Sensor
one_wire_bus = Pin(16)
ds = DS18X20(OneWire(one_wire_bus))
devices = ds.scan()

# Wägesensor 
pin_OUT = Pin(3, Pin.IN)
pin_SCK = Pin(2, Pin.OUT)
hx = HX711(pin_SCK, pin_OUT)
sleep_ms(50)
#
lux = BH1750(I2C(0, sda=Pin(0),scl=Pin(1)))
sensorBME = BME280(i2c=i2c)
readsensor = messure_sensor(sensorBME, lux, hx, ds, {'Content-Type': 'application/json'},\
    API_Key)  

readsensor.read(True) # erster Einlesedurchang. Bei True ohne senden    
display = Display(oled)

button = Pin(14, Pin.IN, Pin.PULL_DOWN)





# Initialisierung von GPIO25 als Ausgang
led_onboard = Pin(25, Pin.OUT, value=0)

class DebouncedPin:
    """
    pin := Pin nummer
    callback := Aufzurufende Funktion mit einem Argument (Pin instanz)
    timeout_ms := timeout in milisekunden
    """
    def __init__(self, pin, callback, timeout_ms=20):
        self._pin = Pin(14,Pin.IN,Pin.PULL_UP)
        self._pin.irq(handler=self._irq, trigger=Pin.IRQ_RISING)
        self._callback = callback
        self._timeout_ms = timeout_ms
        self._timestamp = ticks_ms()
        
    def _irq(self, pin):
         now = ticks_ms()
         if self._timestamp < now:
              self._timestamp = now + self._timeout_ms
              led_onboard.toggle()              
              schedule(self._callback, pin)
              

def PressButton():
    dis_write()

P14 = DebouncedPin(14,print, timeout_ms=1000)




#button.irq(trigger = Pin.IRQ_RISING, handler = dis_write)


timer = Timer(period=(10*60*10), mode=Timer.PERIODIC,\
              callback=lambda t:readsensor.read())
Display More
Tundrameise
January 6, 2022 at 8:34 PM

Hallo,

Könntest du vielleicht einmal Hier vorbeischauen? Ich werde langsam wahnsinnig was die Nextcloudinstallation angeht, da es einfach nie funktioniert.

Vielen Dank

Blackscorpion
November 23, 2020 at 8:48 AM

Moin,

hab mal etwa ausgemerzt haut aber noch nicht ganz hin, kannst du bitte mal drüber schauen?

Code
#!/usr/bin/env python3
#coding: utf8 
import time
import RPi.GPIO as GPIO
# Zählweise der Pins festlegen
GPIO.setmode(GPIO.BCM)
# GPIO 20 als Ausgang festlegen
GPIO.setup(20, GPIO.OUT)
    # Abfragen, ob Ausgang high ist
    if GPIO.OUT(20) == GPIO.HIGH:
    # Wenn Ausgang HIGH ist, Sound abspielen
import pygame
pygame.mixer.init()
pygame.mixer.music.load("einsatz.mp3")
pygame.mixer.music.play()
while pygame.mixer.music.get_busy() == True:
    continue        
    # zwei Sekunden warten
    time.sleep(2)
# Ausgänge wieder freigeben
GPIO.cleanup()
Display More

Dennis89 Follows 3

Dennis89’s Followers 4

Profile Visitors 2

  1. Datenschutzerklärung
  2. Impressum

Forenregeln

Powered by WoltLab Suite™