abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 04:55 | Nová verze

    Byla vydána verze 4.0 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Přehled novinek v poznámkách k vydání. Využíván je Free Pascal Compiler (FPC) 3.2.2.

    Ladislav Hagara | Komentářů: 0
    dnes 00:33 | Komunita

    Podpora Windows 10 končí 14. října 2025. Připravovaná kampaň Konec desítek (End of 10) může uživatelům pomoci s přechodem na Linux.

    Ladislav Hagara | Komentářů: 4
    včera 23:22 | Pozvánky

    Již tuto středu proběhne 50. Virtuální Bastlírna, tedy dle římského číslování L. Bude L značit velikost, tedy více diskutujících než obvykle, či délku, neboť díky svátku lze diskutovat dlouho do noci? Bude i příští Virtuální Bastlírna virtuální nebo reálná? Nejen to se dozvíte, když dorazíte na diskuzní večer o elektronice, softwaru, ale technice obecně, který si můžete představit jako virtuální posezení u piva spojené s učenou

    … více »
    bkralik | Komentářů: 0
    včera 22:33 | IT novinky

    Dle plánu dnes končí služba Skype. Uživatelé mohou pokračovat v Microsoft Teams.

    Ladislav Hagara | Komentářů: 0
    včera 21:44 | IT novinky

    Český statistický úřad rozšiřuje Statistický geoportál o Datový portál GIS s otevřenými geografickými daty. Ten umožňuje stahování datových sad podle potřeb uživatelů i jejich prohlížení v mapě a přináší nové možnosti v oblasti analýzy a využití statistických dat.

    Ladislav Hagara | Komentářů: 1
    včera 12:33 | Zajímavý projekt

    Kevin Lin zkouší využívat chytré brýle Mentra při hraní na piano. Vytváří aplikaci AugmentedChords, pomocí které si do brýlí posílá notový zápis (YouTube). Uvnitř brýlí běží AugmentOS (GitHub), tj. open source operační systém pro chytré brýle.

    Ladislav Hagara | Komentářů: 1
    včera 12:11 | Pozvánky

    Jarní konference EurOpen.cz 2025 proběhne 26. až 28. května v Brandýse nad Labem. Věnována je programovacím jazykům, vývoji softwaru a programovacím technikám.

    Ladislav Hagara | Komentářů: 0
    4.5. 21:44 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.

    Ladislav Hagara | Komentářů: 0
    4.5. 14:22 | IT novinky

    Před 25 lety zaplavil celý svět virus ILOVEYOU. Virus se šířil e-mailem, jenž nesl přílohu s názvem I Love You. Příjemci, zvědavému, kdo se do něj zamiloval, pak program spuštěný otevřením přílohy načetl z adresáře e-mailové adresy a na ně pak „milostný vzkaz“ poslal dál. Škody vznikaly jak zahlcením e-mailových serverů, tak i druhou činností viru, kterou bylo přemazání souborů uložených v napadeném počítači.

    Ladislav Hagara | Komentářů: 29
    3.5. 22:33 | Nová verze

    Byla vydána nová major verze 5.0.0 svobodného multiplatformního nástroje BleachBit (GitHub, Wikipedie) určeného především k efektivnímu čištění disku od nepotřebných souborů.

    Ladislav Hagara | Komentářů: 2
    Jaký filesystém primárně používáte?
     (58%)
     (1%)
     (8%)
     (21%)
     (4%)
     (2%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 526 hlasů
     Komentářů: 22, poslední včera 10:06
    Rozcestník

    Dotaz: Jak dostat data z I2C zařízení BH1750 přes USB-I2C převodník v Pythonu?

    jiri.one avatar 4.4.2020 19:42 jiri.one | skóre: 19 | blog: Jiriho blog
    Jak dostat data z I2C zařízení BH1750 přes USB-I2C převodník v Pythonu?
    Přečteno: 262×
    Zdar,

    mám tato zařízení:

    USB-I2C převodník: https://www.robot-electronics.co.uk/htm/usb_i2c_tech.htm

    GY-30 I2C modul: https://5.imimg.com/data5/TY/AK/MY-1833510/gy-30-bh1750-intensity-digital-light-sensor-module.pdf

    A modul GY-30 je se snímačem okolního osvětlení BH1750: https://www.mylms.cz/wp-content/uploads/2017/07/bh1750-datasheet.pdf

    Potřeboval bych z toho BH1750 vyčítat Luxy. Cílem je, abych si pak napsal SW, který mi bude automaticky regulovat podsvícení monitoru.

    S převodníkem komunikovat umím, přes pyserial na něm umím zhasnout tu kontrolní LEDku a nebo si nechat zobrazit jeho verzi.

    Co u ale neumím, to je určit správnou sekvenci bytů (bajtů), aby mi ten BH1750 poslal ty Luxy. Mám to testovně napsané nějak takto:

    import serial
    ser = serial.Serial(port="/dev/ttyUSB0",
                        baudrate=19200,
                        parity=serial.PARITY_NONE,
                        stopbits=serial.STOPBITS_TWO,
                        bytesize=serial.EIGHTBITS,
                        timeout=0.500,
                        )
    
    ser.flushInput()
    ser.flushOutput()
    
    ser.write(bytearray([0x55, 0x23, 0x11, 0x01]))
    test = ser.read()
    

    Zkoušel jsem různé posloupnosti, samozřejmě nejdřív ten BH1750 přes 0x01 zapnout, resetovat a tak dále. Ale ono se to k němu prostě nějak asi nedostane, vůbec to nereaguje, zkoušel jsem i jiné adresy, na všech adresách ale stejná odezva. Něco jakoby vyčtu, ale je to třeba jen číslo 255 a bohužel to Luxy opravdu nejsou.

    Umí s tím někdo a byl by mi ochoten pomoci? Buď samozřejmě takhle přes fórum a nebo klidně sdílení přes ssh a nebo nějaká session.

    Díky za případné reakce.

    Jiří

    www.jiri.one - Můj blog o Linuxu, hrách, životě, ...

    Řešení dotazu:


    Odpovědi

    Jendа avatar 4.4.2020 20:09 Jendа | skóre: 78 | blog: Jenda | JO70FB
    Rozbalit Rozbalit vše Re: Jak dostat data z I2C zařízení BH1750 přes USB-I2C převodník v Pythonu?
    Připojit logický analyzér (můj oblíbený Saleae klon za $7 z Ali) a podívat se. Bez toho se to bude ladit složitě.
    Řešení 1× (jiri.one (tazatel))
    jiri.one avatar 5.4.2020 14:12 jiri.one | skóre: 19 | blog: Jiriho blog
    Rozbalit Rozbalit vše Re: Jak dostat data z I2C zařízení BH1750 přes USB-I2C převodník v Pythonu?
    Tady je finální řešení:
    import serial
    import time
    
    ser = serial.Serial(port="/dev/ttyUSB0",
                        baudrate=19200,
                        parity=serial.PARITY_NONE,
                        stopbits=serial.STOPBITS_TWO,
                        bytesize=serial.EIGHTBITS,
                        timeout=0.500,
                        )
    
    ser.flushInput()
    ser.flushOutput()
    
    ADDR_BASE = 0x23 # nebo 0x5c pokud je ADDR pin HIGH
    ADDR_READ = ADDR_BASE << 1 | 1
    ADDR_WRITE = ADDR_BASE << 1
    
    CMD_WRITE_1B = 0x53
    CMD_READ_MULT = 0x54
    
    LUX_RESOLUTION_1X = 0x10
    LUX_RESOLUTION_4X = 0x13
    
    # nastavení senzoru
    ser.write(bytearray([CMD_WRITE_1B, ADDR_WRITE, LUX_RESOLUTION_1X]))
    
    while True:
        time.sleep(1)
    
        # požádám převodník o 2 B
        ser.write(bytearray([CMD_READ_MULT, ADDR_READ, 0x02]))
    
        # přečtu je
        raw = ser.read(2)
    
        # interpretace bytů podle datasheetu
        lx = (raw[1] << 8 | raw[0]) / 1.2
    
        print("--> %.d lx" %(lx))
    www.jiri.one - Můj blog o Linuxu, hrách, životě, ...

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.