Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
V tomto návode sa naučíte čítať snímač svetla a teploty s analógovým a digitálnym prevodníkom maliny pi a ADS1115 a vykresľovať ho pomocou matplotlib. Začnime s potrebnými materiálmi.
Zásoby
- Raspberry pi (urobí to každý, aj keď používam 4)
- Karta MicroSD s nainštalovaným Raspbianom (dobrý návod:
- HDMI monitor a zdroj napájania
- Micro USB kábel
- Adafruit ADS 1115 analógovo -digitálny prevodník:
- Prepojovacie vodiče
- svetelný senzor (LDR)
- teplotný senzor
- potenciometer x2 (hodnota bude stredným bodom rozsahu odporu vašich senzorov teploty a svetla, ktorý zmeriame neskôr)
- Breadboard
Krok 1: Nastavte si Raspberry Pi
1. Podľa tohto tutoriálu nastavte svoj malinový pi: https://www.raspberrypi.org/help/noobs-setup/2/2. Povoliť I2C: kliknite na symbol malinového pi vľavo hore. Prejdite na predvoľby> konfigurácia maliny pi> rozhrania> a začiarknite políčko „povoliť“na I2C. Potom kliknite na tlačidlo OK. 3. Teraz otvorte okno terminálu. Na príkazovom riadku zadajte:
sudo apt-get upgrade
sudo pip3 nainštalujte adafruit-circuitpython-ads1x15
sudo apt-get install python-matplotlib
Krok 2: Zmerajte si senzory svetla a teploty
Teraz budeme musieť zmerať odpor senzorov svetla a teploty. Vykonajte voltmetr na nastavení merania odporu a zmerajte naprieč vodičmi senzora svetla vo svetle a tme. Zaznamenajte hodnoty. Teraz vezmite voltmeter na vodiče teplotného senzora v horúcom a studenom (použil som vodu). Zaznamenajte hodnoty. Neskôr ich použijeme v našom obvode.
Krok 3: Zapojte obvod
1. Zhromaždite materiály uvedené v zozname spotrebných materiálov. Pre potenciometre použite hodnotu, ktorá je priemerom najvyšších a najnižších hodnôt (svetlých a tmavých, teplých a studených).
(vysoké- nízke) / 2
2. Postupujte podľa schémy zapojenia vyššie:
- Pripojte SDA na analógovo -digitálnom prevodníku k SDA na obrázku
- Pripojte SCL na analógovo -digitálnom prevodníku k SCL na pi
- Pripojte VDD na analógovo -digitálnom prevodníku k 3,3 V na pi
- Pripojte GND na analógovo -digitálnom prevodníku k zemi na pi
- Pripojte ostatné komponenty podľa schémy zapojenia.
Krok 4: Kód
1. Zadajte terminál:
nano digital.py
2. Vložte kód, ktorý mám nižšie alebo na Github, do textového editora, ktorý by sa mal objaviť.
import matplotlib.pyplot ako plt
import numpy as np import board import busio import time import adafruit_ads1x15.ads1115 as ADS from adafruit_ads1x15.analog_in import AnalogIn i2c = busio. I2C (board. SCL, board. SDA) ads = ADS. ADS1115 (i2c) x = 0 light = AnalogIn (ads, ADS. P0) temp = AnalogIn (ads, ADS. P1) X1 = X2 = Y1 = Y2 = plt.ylim (-50, 1000) plt.plot (X1, Y1, label = "light", color = '#0069af') plt.plot (X2, Y2, label = "Temp", color = '#ff8000') plt.xlabel ('Time (minutes)') plt.ylabel (' Úroveň ') plt.title (' Svetlo a teplota v priebehu času ') plt.legend () while True: x += 5 Y1.append (light.value/30) X1.append (x) Y2.append (teplota tepl. /3) X2. pridať (x) plt.plot (X1, Y1, label = "light", color = '#0069af') plt.plot (X2, Y2, label = "Temp", color = '#ff8000') plt.pause (300)
3. Teraz stlačením klávesov CTRL+X ukončite operáciu, stlačením y uložte a potom stlačte kláves Enter.
Spustite program zadaním terminálu:
sudo python3 digital.py
4. Nastavte potenciometre tak, aby graf zobrazoval široký rozsah hodnôt. Skúste posvietiť na snímač a vypnúť svetlá v miestnosti, aby ste sa presvedčili, že graf zobrazuje široký rozsah hodnôt.
Ak niektorá z hodnôt klesne pod dno, skúste znížiť príslušný deliteľ (riadok 29 a 31).
Ak niektorá z hodnôt prekročí vrchol, skúste zvýšiť príslušný deliteľ (riadok 29 a 31).
Krok 5: Riešenie problémov
1. Dvakrát skontrolujte všetky pripojenia podľa schémy zapojenia
2. Detekcia I2C - zobrazí vám všetky zariadenia pripojené prostredníctvom i2c:
Zadajte terminál:
sudo apt-get install i2c-tools
sudo i2cdetect - y 1