Pojďme si ukázat jak číst teplotu a vlhkost z e-link teploměru a vlhkoměru QINGPING Temperature & RH monitor, M version
Čtení hodnot z Android zařízení
Do telefonu stáhněte aplikaci Xiaomi Home z Google Play. Na teploměru podržíte zadní tlačítko několik vteřin aby na displeji začala blikat/svítit ikonka bluetooth. Pak v aplikaci dáte vyhledat nové zařízení a objeví se vám dostupné teploměry. Pak postupujete podle instrukcí
Čtení hodnot z Raspberry Pi
Aby bylo možné číst teplotu z RaspBerryPi je potřeba v teploměru upravit firmware – tím nebude možné se na teploměr připojit z Android telefonu (viz bod výše)!
Úpravu firmwate provede podle: https://github.com/pvvx/ATC_MiThermometer
Úprava firmware probíhá bezdrátově přes bluetooth – není potřeba nic stahovat a speciální znalosti. Stačí notebook s bluetooth. Původní firmware je možné nahrát zpět.
Aktualizaci provedet vybráním požadovaného teploměru a klikem na tlačítko OTA:
Na notebooku zapněte Blutooth
- Jděte na stránku https://github.com/pvvx/ATC_MiThermometer vyberte teploměr a klikněte na OTA
- Několik vteřin podržte zadní tlačítko aby blikala bluetooth ikona
- Vstupní pole „BLE device name prefix filter(s):“ můžete nechat prázdné. Tlačítkem „connect“ spustíte prohledávání bluetoth zařízení. Musíte tam najít váš „QINGPING Temp RH M“ se kterým se spárujete. Je potřeba chvilku počkat aby se zobrazil další formulář s tlařítkem „Do Activation“
- Tlačítkem „Do Activation“ provedete změnu firmware
- Po několika vteřinách skočí do polí „Device known id“, „Mi token“, „Mi bind key“ hodnoty, nahoře na stránce se zobrazí aktuální teplota a vlkost.
- vyberete firmwer (tady můžete nahrát i originální) – já vybral CGG1M_V48.bin
- Tlačítkem „Start Flashing“ provedete změnu firmware
Před aktualizací firmware se teploměr jmenoval „Qingping Temp RH M“ a po aktualizaci se jmenoval „CGG_83F48D“
Připojujeme se z Raspberry Pi
- instalce nezbytných nástrojů
sudo apt-get update
sudo apt-get install bluez python3-pip
sudo pip3 install bluepy
2. zjištění MAC adresy teploměru
sudo hcitool lescan
Vypíše se seznam BLE zařízení, mezi nimi hledejte název CGD_XXXXXX.
3. python script pro čtení teploty
V tomto scriptu stačí nastavit správnou MAC adresu
from bluepy.btle import Peripheral
# Nahraď MAC adresu adresou svého teploměru
MAC_ADDRESS = "83:F4:8D:XX:XX:XX"
def read_temperature(mac):
try:
# Připojení k teploměru
device = Peripheral(mac)
# Čtení dat ze specifického UUID (např. pro teplotu)
characteristics = device.getCharacteristics(uuid="00002a6e-0000-1000-8000-00805f9b34fb")
if characteristics:
temperature_data = characteristics[0].read()
# Konverze získaných dat na teplotu (pokud je třeba)
temperature = int.from_bytes(temperature_data, byteorder='little', signed=True) / 100
return temperature
device.disconnect()
except Exception as e:
print(f"Error: {e}")
return None
temperature = read_temperature(MAC_ADDRESS)
if temperature is not None:
print(f"Teplota: {temperature} °C")
else:
print("Nelze získat teplotu.")
Script sputíme příkazem:
ubuntu@ubuntu:~$ python3 temperature.py
Teplota: 21.65 °C