Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
U ovom Instructable -u ćete naučiti čitati svjetlosni i temperaturni senzor sa malinom pi i ADS1115 analogno -digitalnim pretvaračem i iscrtati ga pomoću matplotliba. Počnimo s potrebnim materijalima.
Supplies
- Raspberry pi (bilo koji će to učiniti, iako ja koristim 4)
- MicroSD kartica sa instaliranim Raspbian -om (dobar vodič:
- HDMI monitor i izvor napajanja
- Mikro USB kabl
- Adafruit ADS 1115 analogno -digitalni pretvarač:
- Žice za kratkospojnike
- senzor svjetla (LDR)
- senzor temperature
- potenciometar x2 (vrijednost će biti sredina raspona otpora vaših senzora temperature i svjetlosti, što ćemo izmjeriti kasnije)
- Breadboard
Korak 1: Postavite svoj Raspberry Pi
1. Slijedite ovaj vodič za postavljanje vašeg malina pi: https://www.raspberrypi.org/help/noobs-setup/2/2. Omogući I2C: kliknite simbol maline pi u gornjem lijevom kutu. Idite na postavke> konfiguracija raspberry pi> sučelja> i potvrdite okvir "omogući" na I2C. Zatim kliknite OK.3. Sada otvorite prozor terminala. Na komandnoj liniji upišite:
sudo apt-get nadogradnja
sudo pip3 instalirajte adafruit-circuitpython-ads1x15
sudo apt-get install python-matplotlib
Korak 2: Izmjerite svjetlosne i temperaturne senzore
Sada ćemo morati izmjeriti otpor osjetnika svjetlosti i temperature. Uzmite voltmetar na postavku mjerenja otpora i izmjerite preko kabela vašeg svjetlosnog senzora u svjetlu i mraku. Zapišite vrijednosti. Sada uzmite svoj voltmetar na žice vašeg senzora temperature za toplo i hladno (koristio sam vodu). Zapišite vrijednosti. Kasnije ćemo ih koristiti u našem krugu.
Korak 3: Povežite svoj krug
1. Prikupite materijale navedene na listi potrošnog materijala. Za potenciometre koristite vrijednost koja je prosjek uspona i padova (svijetlo i tamno, toplo i hladno).
(visoko-nisko) / 2
2. Sledite gornji dijagram kola:
- Povežite SDA na analogno -digitalnom pretvaraču sa SDA na pi
- Priključite SCL na analogno -digitalnom pretvaraču u SCL na pi
- Spojite VDD na analogno -digitalnom pretvaraču na 3.3v na pi
- Spojite GND na analogno -digitalnom pretvaraču na masu na pi
- Ostale komponente spojite prema shemi kola.
Korak 4: Kodirajte
1. Upišite terminal:
nano digital.py
2. Zalijepite kôd koji imam ispod ili na Github u uređivač teksta koji bi se trebao pojaviti.
uvozite matplotlib.pyplot kao plt
uvoz numpy kao np uvozna ploča uvoz busio vrijeme uvoza uvoz adafruit_ads1x15.ads1115 kao ADS iz adafruit_ads1x15.analog_in uvoz AnalogIn i2c = busio. I2C (board. SCL, board. SDA) ads = ADS. ADS1115 (i2c) x = 0 light = AnalogIn (oglasi, ADS. P0) temp = AnalogIn (oglasi, 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 ('Vrijeme (minute)') plt.ylabel (' Nivo ') plt.title (' Svjetlo i temp. Tokom vremena ') plt.legend () dok je True: x += 5 Y1.append (light.value/30) X1.append (x) Y2.append (temp.value /3) X2.append (x) plt.plot (X1, Y1, label = "light", color = '#0069af') plt.plot (X2, Y2, label = "Temp", color = '#ff8000') plt.pause (300)
3. Sada pritisnite CTRL+X za izlaz, pritisnite y za spremanje, a zatim pritisnite enter.
Pokrenite svoj program upisivanjem terminala:
sudo python3 digital.py
4. Podesite potenciometre tako da grafikon prikazuje širok raspon vrijednosti. Pokušajte osvijetliti senzor i isključiti svjetla u prostoriji kako biste bili sigurni da grafikon prikazuje širok raspon vrijednosti.
Ako bilo koja od vrijednosti padne ispod dna, pokušajte spustiti odgovarajući djelitelj (red 29 i 31).
Ako bilo koja od vrijednosti prelazi vrh, pokušajte povećati odgovarajući djelitelj (red 29 i 31).
Korak 5: Rješavanje problema
1. Dvaput provjerite sve spojeve prema dijagramu kola
2. Otkrivanje I2C - prikazat će vam se svi uređaji povezani putem i2c:
Upišite terminal:
sudo apt-get install i2c-tools
sudo i2cdetect - y 1