
Obsah:
2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-23 15:05

Tento návod vysvetľuje, ako vykreslím údaje snímača teploty DHT11 pomocou Arduino Uno a Raspberry Pi. V tomto je snímač teploty spojený s Arduino Uno a Arduino Uno je zapojený sériovo s Raspberry Pi. Na Raspberry Pi Side sa na vykresľovanie grafov používajú knižnice matplotlib, numpy a drawnow.
Krok 1: Veci potrebné pre projekt



1. Raspberry Pi
2. Arduino Uno
3. Snímač teploty DHT11
4. Prepojovacie vodiče
5. Breadboard
Krok 2: Stiahnite a nainštalujte Arduino IDE do Raspberry Pi



Poznámka:- Na nahrávanie skíc v Arduino UNO môžete použiť Arduino IDE Windows, Linux alebo Mac.
Prvým krokom je inštalácia Arduino IDE pre tento otvorený prehliadač v Raspberry Pi a otvorenie nižšie uvedeného odkazu
Arduino Predchádzajúce IDE
Potom si stiahnite verziu Linux ARM a extrahujte ju pomocou príkazu
názov súboru tar -xf
Po rozbalení uvidíte nový adresár. Tu používam arduino-1.8.2 IDE. Potom prejdite do adresára pomocou príkazu.
cd arduino-1.8.1
Na spustenie Arduino IDE použite tento príkaz v adresári arduino-1.8.2
./arduino
Ako používať knižnice
Ak chcete do Arduina nainštalovať akékoľvek knižnice, jednoducho si stiahnite knižnicu a vložte ju do priečinka arduino 1.8.2 ==> libraries.
POZNÁMKA:-Uistite sa, že v priečinku knižnice nie je ((snímač DHT)). Ak existuje (-), premenujte ho.
v tomto návode použijeme dve knižnice, DHT_Sensor a Adafruit_Sensor
Krok 3: Kód pre Arduino

Teraz nechajme hovoriť python a Arduino. Najprv potrebujeme jednoduchý program na prenos údajov Arduino cez sériový port. Nasledujúci program je jednoduchý program, ktorý bude počítať Arduino a odosielať údaje na sériový port.
Arduino kód
#include "DHT.h" float tempC; // Variabilná alebo udržiavacia teplota v C float tempF; // Premenná na udržanie teploty vo F plavákovej vlhkosti; // Premenná na udržanie čítania tlaku
#define DHTPIN 7 // k akému digitálnemu pinu sme pripojení
#define DHTTYPE DHT11 // DHT 11
//#definujte DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#definujte DHTTYPE DHT21 // DHT 21 (AM2301)
// Inicializácia snímača DHT.
DHT dht (DHTPIN, DHTTYPE);
void setup () {Serial.begin (115200); // zapnite sériový monitor
dht.begin (); // inicializácia dht}
void loop () {tempC = dht.readTemperature (); // Nezabudnite deklarovať svoje premenné
vlhkosť = dht.readHumidity (); // Prečítajte si Vlhkosť
Serial.print (tempC);
Serial.print (",");
Sériový tlač (vlhkosť);
Serial.print ("\ n"); // for new linedelay (2000); // Pauza medzi čítaniami. }
Akonáhle je skica zostavená, vyberte nástenku a port a nahrajte ju.
Krok 4: Nastavte Raspberry Pi

Po nahraní kódu nainštalujte niektoré knižnice, aby sme mohli vykresliť graf údajov, ktoré prichádzajú sériovo z Arduino Uno.
1. PySerial je knižnica, ktorá poskytuje podporu pre sériové pripojenia cez množstvo rôznych zariadení. Ak ho chcete nainštalovať, použite príkaz.
Sudo apt-get install python-serial
2. Numpy je balík, ktorý definuje viacrozmerný objekt poľa a súvisiace rýchle matematické funkcie, ktoré na ňom pôsobia. Poskytuje tiež jednoduché rutiny pre lineárnu algebru a FFT (Fast Fourierova transformácia) a sofistikované generovanie náhodných čísel. Môžete ho nainštalovať mnohými spôsobmi, buď pomocou balíka apt alebo pip. Tu inštalujem pomocou pipu, pretože najskôr musíme nainštalovať pip
sudo apt-get install python-pip python-dev build-essential
sudo pip install numpy
alebo ak chcete použiť balík apt
sudo apt install python-numpy
3. Matplotlib je 2D grafická knižnica, ktorá poskytuje objektovo orientované API na vkladanie grafov do aplikácií pomocou univerzálnych nástrojov GUI ako Tkinter, wxPython, Qt alebo GTK+. Ak ho chcete nainštalovať, použite príkaz
sudo pip install matplotlib
alebo
sudo apt install python-matplotlib
4. Drawnow sa spravidla používa na zobrazenie výsledkov po každej iterácii, pretože v programe MATLAB používame „imshow“. Ak ho chcete nainštalovať, použite príkaz
sudo pip install drawnow
Krok 5: Python Scipt


Ďalším krokom je napísať skript pythonu, na ktorého napísanie môžete použiť ľubovoľný editor.
1. Vykreslite údaje do jedného grafu
import serial # import Serial Library
import numpy # Import numpy
importujte matplotlib.pyplot ako plt #import knižnicu matplotlib
z drawnow importu *
tempC = #Prázdna vlhkosť poľa =
arduino = serial. Serial ("/dev/ttyACM0", 115200)
plt.ion () # interaktívny režim na vykreslenie aktuálneho počtu údajov = 0
def makeFig (): #Vytvorte funkciu, ktorá vytvorí požadovaný graf
plt.ylim (20, 30) #Nastavte min. a max. hodnoty
plt.title ('Údaje DHT11 v reálnom čase') #Uveďte názov
plt.grid (True) #Zapnite mriežku
plt.ylabel ('Teplota C') #Nastavte ylabel
plt.plot (tempC, 'b^-', label = 'Degree C') #plot the temperature
plt.legend (loc = 'vpravo hore') #vykreslite legendu
plt2 = plt.twinx () #Vytvorte druhú os y
plt.ylim (50, 70) #Nastavte limity druhej osi y
plt2.plot (vlhkosť, 'g*-', štítok = 'Vlhkosť') #údaje o tlaku v grafe
plt2.set_ylabel ('Vlhkosť') #štítok druhá os y
plt2.ticklabel_format (useOffset = False)
plt2.legend (loc = 'vľavo hore')
while True: # Slučka, ktorá sa opakuje navždy
while (arduino.inWaiting () == 0): #Počkajte tu, kým nebudú k dispozícii údaje
odovzdať #nič
arduinoString = arduino.readline ()
dataArray = arduinoString.split (',') #Rozdeľte ho do poľa
temp = float (dataArray [0])
brum = float (dataArray [1])
tempC.append (temp)
vlhkosť. pridať (hukot)
drawnow (makeFig)
plt.pause (.000001)
count = count+1 if (count> 20): #only take last 20 data if data is more it will pop first
tempC.pop (0)
vlhkosť.pop (0)
2. Na vykreslenie vlhkosti a teploty oddelene
import serial # import Serial Library
import numpy # Import numpy
importujte matplotlib.pyplot ako plt #import knižnicu matplotlib
z drawnow importu *
tempC = #Prázdne pole
vlhkosť =
arduino = serial. Serial ("/dev/ttyACM0", 115200) #Sériový port, ku ktorému je pripojené arduino a prenosová rýchlosť
plt.ion () #Povedzte matplotlib, že chcete, aby interaktívny režim vykresľoval živé údaje
def CreatePlot (): #Create a function that makes our desired plot
plt.subplot (2, 1, 1) #Hight, Width, First plot
plt.ylim (22, 34) #Nastavte min. a max. hodnoty
plt.title ('Údaje DHT11 v reálnom čase') #Uveďte názov
plt.grid (True) #Zapnite mriežku
plt.ylabel ('Teplota C') #Nastavte ylabels
plt.plot (tempC, 'b^-', label = 'Degree C') #plot the temperature
plt.legend (loc = 'horný stred') #vykreslite legendu
plt.subplot (2, 1, 2) # Výška, šírka, druhý graf
plt.grid (pravda)
plt.ylim (45, 70) #Nastavte limity druhej osi y
plt.plot (vlhkosť, 'g*-', label = 'Vlhkosť (g/m^3)') #údaje o vlhkosti grafu
plt.ylabel ('Vlhkosť (g/m^3)') #štítok druhá os y
plt.ticklabel_format (useOffset = False) #zastavenie automatickej mierky osi y
plt.legend (loc = 'horný stred')
while True: # Zatiaľ čo slučka, ktorá sa opakuje navždy
while (arduino.inWaiting () == 0): #Wait here until there is data pass #do nothing
arduinoString = arduino.readline () #prečítajte si údaje zo sériového portu
dataArray = arduinoString.split (',') #Rozdeľte ho do poľa
temp = float (dataArray [0]) #Previesť prvý prvok na plávajúce číslo a vložiť do temp
hum = float (dataArray [1]) #Previesť druhý prvok na plávajúce číslo a vložiť hukot
tempC.append (temp) #Build our tempC array by appending temp reading
vlhkost.prijať (hukot) #Budovanie nášho poľa vlhkosti pridaním čítania hukotu
drawnow (CreatePlot)
plt.pause (.000001)
count = count+1
if (count> 20): #only take last 20 data if data is more that will pop first
tempC.pop (0) # vysunie prvý prvok
vlhkosť.pop (0)
Krok 6: Schéma zapojenia



Arduino ==> DHT11
3,3 V ==> VCC
GND ==> GND
D7 ==> OUT
Odporúča:
Ako čítať údaje DHT na LCD displeji pomocou Raspberry Pi: 6 krokov

Ako čítať údaje DHT na LCD displeji pomocou Raspberry Pi: Teplota a relatívna vlhkosť sú dôležité údaje o počasí v prostredí. Môžu to byť údaje, ktoré poskytuje malá meteorologická stanica. Odčítanie vašej teploty a relatívnej vlhkosti s Raspberry Pi je možné dosiahnuť pomocou rôznych variácií
Ako odosielať údaje do cloudu pomocou Arduino Ethernet: 8 krokov

Ako odosielať údaje do cloudu pomocou Arduino Ethernet: Tento návod vám ukáže, ako publikovať svoje údaje na platforme AskSensors IoT pomocou Arduino Ethernet Shield. Ethernet Shield umožňuje vášmu Arduinu jednoduché pripojenie k cloudu, odosielanie a prijímanie údajov pomocou internetového pripojenia. Čo my
Ako odosielať údaje DHT11 na server MySQL pomocou NodeMCU: 6 krokov

Ako odosielať údaje DHT11 na server MySQL pomocou NodeMCU: V tomto projekte sme prepojili DHT11 s nodemcu a potom odosielame údaje dht11, čo je vlhkosť a teplota, do databázy phpmyadmin
Arduino odosiela údaje Dht11 na server MySQL (PHPMYADMIN) pomocou Pythonu: 5 krokov

Arduino odosiela údaje Dht11 na server MySQL (PHPMYADMIN) pomocou Pythonu: V tomto projekte som prepojil DHT11 s arduino a potom odosielam údaje dht11, čo je vlhkosť a teplota, do databázy phpmyadmin. Na rozdiel od nášho predchádzajúceho projektu v tomto prípade nepoužívame žiadny ethernetový štít, tu práve čítame
Uložte údaje senzora Arduino do MYsql pomocou spracovania: 6 krokov

Uložiť údaje senzorov Arduino do MYsql pomocou spracovania: Úprimne povedané, je ťažké ukladať údaje Arduino do MySQL priamo, takže v závislosti od Arduino IDE som použil Processing IDE, ktorý je podobný Arduino IDE, ale s veľkým počtom rôznych použití a môžete ho kódovať v java. Poznámka: nespúšťajte sériové monitory Arduino