
Агуулгын хүснэгт:
2025 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2025-01-23 15:00

Энэхүү зааварчилгаа нь би Arduino Uno болон Raspberry Pi ашиглан DHT11 температур мэдрэгчийн өгөгдлийг хэрхэн яаж гаргахыг тайлбарласан болно. Энэ температурын мэдрэгч нь Arduino Uno -тэй, Arduino Uno нь Raspberry Pi -тэй холбогддог. Raspberry Pi Side дээр matplotlib, numpy, drawow номын санг график байгуулахад ашигладаг.
Алхам 1: Төсөлд шаардлагатай зүйлс



1. Raspberry Pi
2. Ардуино Уно
3. DHT11 температур мэдрэгч
4. Холбогч утас
5. Талхны самбар
Алхам 2: Raspberry Pi дээр Arduino IDE татаж аваад суулгана уу



Тэмдэглэл:- Та Arduino UNO дээр ноорог байршуулахын тулд Windows, Linux эсвэл Mac-ийн Arduino IDE програмыг ашиглаж болно.
Эхний алхам бол Raspberry Pi дээрх нээлттэй хөтөч дээр Arduino IDE суулгаж, доорх линкийг нээх явдал юм
Arduino Өмнөх IDE
Дараа нь Linux ARM хувилбарыг татаж аваад командыг ашиглан задлаарай
tar -xf файлын нэр
Олборлосны дараа та шинэ лавлахыг харах болно. Энд би arduino-1.8.2 IDE ашиглаж байна. Дараа нь тушаалыг ашиглан директор руу очно уу.
cd arduino-1.8.1
Arduino IDE-ийг ажиллуулахын тулд энэ тушаалыг arduino-1.8.2 директорт ашиглана уу
./arduino
Номын санг хэрхэн ашиглах талаар
Arduino -д ямар ч номын сан суулгахын тулд номын санг татаж аваад arduino 1.8.2 ==> library сангийн хавтсанд буулгаарай.
ТАЙЛБАР:-Номын сангийн хавтсанд (DHT-мэдрэгч) байхгүй (-) байгаа эсэхийг шалгаарай. Хэрэв (-) байгаа бол нэрийг нь өөрчилнө үү.
Бид энэхүү зааварчилгаа бүхий DHT_Sensor ба Adafruit_Sensor гэсэн хоёр номын санг ашиглах болно
Алхам 3: Arduino -д зориулсан код

Одоо питон, Ардуино нар хамтдаа ярилцъя. Нэгдүгээрт, Arduino -ийг цуваа портоор дамжуулахын тулд бидэнд энгийн програм хэрэгтэй. Дараахь програм бол Arduino тоолох, өгөгдлийг цуваа порт руу илгээх энгийн програм юм.
Arduino код
#"DHT.h" float tempC оруулах; // C float tempF дахь хувьсах эсвэл барих температур; // F хөвөх чийгшил дэх температурыг хадгалах хувьсагч; // Даралтын уншилтыг хадгалах хувьсагч
#тодорхойлох DHTPIN 7 // бид ямар дижитал зүүтэй холбогдсон байна
#тодорхойлох DHTTYPE DHT11 // DHT 11
//#тодорхойлох DHTTYPE DHT22 // DHT 22 (AM2302), AM2321
//#DHTTYPE DHT21 тодорхойлох // DHT 21 (AM2301)
// DHT мэдрэгчийг эхлүүлэх.
DHT dht (DHTPIN, DHTTYPE);
void setup () {Serial.begin (115200); // цуваа дэлгэцийг асаах
dht.begin (); // эхлүүлэх dht}
void loop () {tempC = dht.readTemperature (); // Хувьсагчаа зарлахаа мартуузай
чийгшил = dht.readHumidity (); // Чийглэгийг уншина уу
Цуваа.хэвлэх (tempC);
Serial.print (",");
Цуврал хэвлэх (чийгшил);
Serial.print ("\ n"); // шинэ доторлогчийн хувьд (2000); // Унших хооронд завсарлага аваарай. }
Ноорог эмхэтгэсний дараа самбар, портыг сонгоод байршуулна уу.
Алхам 4: Raspberry Pi -ийг тохируулна уу

Код байршуулсны дараа Arduino Uno -с цувралаар ирж буй өгөгдлийн графикийг гаргахын тулд зарим номын санг суулгаарай.
1. PySerial бол төрөл бүрийн төхөөрөмжүүд дээр цуваа холболт хийх боломжийг олгодог номын сан юм. Үүнийг суулгахын тулд командыг ашиглана уу.
Sudo apt-get python-serial суулгах
2. Numpy бол олон хэмжээст массивын объект болон түүн дээр ажилладаг хурдан математикийн функцуудыг тодорхойлдог багц юм. Энэ нь шугаман алгебр ба FFT (Fast Fourier Transform) болон энгийн санамсаргүй тоо үүсгэх энгийн горимуудыг өгдөг. Та үүнийг олон янзаар суулгаж болно: apt багц эсвэл pip ашиглана уу. Энд би pip ашиглан суулгаж байна, үүний тулд бид эхлээд pip суулгах ёстой
sudo apt-get python-pip python-dev install-essential суулгах
sudo pip суулгах numpy
эсвэл хэрэв та apt багц ашиглахыг хүсч байвал
sudo apt install python-numpy
3. Matplotlib бол 2D график номын сан бөгөөд Tkinter, wxPython, Qt, GTK+гэх мэт ерөнхий зориулалттай GUI багаж хэрэгслийг ашиглан програмуудыг програмд оруулах зориулалттай объектод чиглэсэн API өгдөг. Үүнийг суулгахын тулд командыг ашиглана уу
sudo pip суулгах matplotlib
эсвэл
sudo apt суулгах python-matplotlib
4. Drawnow нь ерөнхийдөө давталт бүрийн дараа үр дүнг харахын тулд MATLAB -д "imshow" -г ашигладаг. Үүнийг суулгахын тулд командыг ашиглана уу
sudo pip install drawow
Алхам 5: Python Scipt


Дараагийн алхам бол python скрипт бичих бөгөөд та үүнийг ямар ч засварлагч ашиглаж болно.
1. Өгөгдлийг нэг графикаар зур
цуваа # импорт Цуваа номын сан
импортлох numpy # Импортлох
matplotlib.pyplot -ийг plt болгон импортлох #matplotlib номын сан
татаж авах импортоос *
tempC = #Хоосон массивын чийгшил =
arduino = serial. Serial ("/dev/ttyACM0", 115200)
plt.ion () # интерактив горим нь өгөгдлийн шууд өгөгдлийг төлөвлөх = 0
def makeFig (): #Бидний хүссэн схемийг хийх функцийг бий болго
plt.ylim (20, 30) #y мин ба хамгийн их утгыг тохируулна уу
plt.title ('Real Time DHT11 Data') #Гарчигийг зур
plt.grid (Үнэн) #Сүлжээг асаана уу
plt.ylabel ('Temp C') #Ylabel тохируулах
plt.plot (tempC, 'b^-', шошго = 'Зэрэг С') #температурын график
plt.legend (loc = 'баруун дээд') #домог зохиох
plt2 = plt.twinx () #Хоёрдахь y тэнхлэг үүсгэх
plt.ylim (50, 70) #Хоёр дахь тэнхлэгийн хязгаарыг тохируулна уу
plt2.plot (чийгшил, 'g*-', шошго = 'Чийгшил') #талбайн даралтын өгөгдөл
plt2.set_ylabel ('Чийглэг') #шошго хоёр дахь y тэнхлэг
plt2.ticklabel_format (useOffset = Худал)
plt2.legend (loc = 'зүүн дээд')
while True: # үүрд гогцоо
while (arduino.inWaiting () == 0): #Мэдээлэл гарах хүртэл энд хүлээнэ үү
өнгөрөх #юу ч хийхгүй
arduinoString = arduino.readline ()
dataArray = arduinoString.split (',') #Үүнийг массив болгон хуваах
temp = float (dataArray [0])
hum = float (dataArray [1])
tempC.append (temp)
чийгшил.
зурсан (makeFig)
plt. түр зогсоох (.000001)
count = count+1 if (count> 20): #өгөгдөл илүү байвал зөвхөн сүүлийн 20 өгөгдлийг авна
tempC.pop (0)
чийгшил.pop (0)
2. Чийглэг ба температурыг тусад нь төлөвлөх
цуваа # импорт Цуваа номын сан
импортлох numpy # Импортлох
matplotlib.pyplot -ийг plt болгон импортлох #matplotlib номын сан
татаж авах импортоос *
tempC = #Хоосон массив
чийгшил =
arduino = serial. Serial ("/dev/ttyACM0", 115200) #arduino холбогдсон цуваа порт ба Baudrate
plt.ion () #Интерпактив горимд амьд өгөгдлийг төлөвлөхийг хүсч байгаагаа matplotlib хэлээрэй
def CreatePlot (): #Бидний хүссэн схемийг бий болгох функцийг бий болго
plt.subplot (2, 1, 1) #Өндөр, Өргөн, Эхний хэсэг
plt.ylim (22, 34) #y мин ба хамгийн их утгыг тохируулна уу
plt.title ('Real Time DHT11 Data') #Гарчигийг зур
plt.grid (Үнэн) #Сүлжээг асаана уу
plt.ylabel ('Temp C') #Шошго тавих
plt.plot (tempC, 'b^-', шошго = 'Зэрэг С') #температурын график
plt.legend (loc = 'дээд төв') #домог бичих
plt.subplot (2, 1, 2) # Өндөр, Өргөн, Хоёрдугаар зураг
plt.grid (Үнэн)
plt.ylim (45, 70) #Хоёр дахь тэнхлэгийн хязгаарыг тохируулна уу
plt.plot (чийгшил, 'g*-', шошго = 'Чийглэг (g/m^3)') #талбай чийгшлийн өгөгдөл
plt.ylabel ('Чийглэг (g/m^3)') #шошго хоёр дахь y тэнхлэг
plt.ticklabel_format (useOffset = False) #автомат хэмжигдэхүүн y тэнхлэгийг зогсоох
plt.legend (loc = 'дээд төв')
while True: # үүрд гогцоо
while (arduino.inWaiting () == 0): #Мэдээлэл дамжих хүртэл энд хүлээ #юу ч хийхгүй
arduinoString = arduino.readline () #өгөгдлийг цуваа портоос унших
dataArray = arduinoString.split (',') #Үүнийг массив болгон хуваах
temp = float (dataArray [0]) #Эхний элементийг хөвөгч тоо болгон хөрвүүлж, температурыг оруулна уу
hum = float (dataArray [1]) #Хоёр дахь элементийг хөвөгч тоо болгон хөрвүүлээд hum -д оруулна уу
tempC.append (temp) #Temp уншуулалтыг нэмж манай tempC массивыг үүсгээрэй
чийгшил.append (hum) #Хум уншихыг нэмж бидний чийгшлийн массивыг бүтээх
drawow (CreatePlot)
plt. түр зогсоох (.000001)
тоолох = тоолох+1
if (count> 20): #өгөгдөл илүү байвал зөвхөн эхний 20 өгөгдлийг авна
tempC.pop (0) # гарч ирэх эхний элемент
чийгшил.pop (0)
Алхам 6: Хэлхээний диаграм



Arduino ==> DHT11
3.3V ==> VCC
GND ==> GND
D7 ==> OUT
Зөвлөмж болгож буй:
MSP432 LaunchPad болон Python ашиглан температур мэдрэгчийн (TMP006) шууд өгөгдлийг зурах: 9 алхам

MSP432 LaunchPad болон Python ашиглан температур мэдрэгчийн (TMP006) шууд өгөгдлийг диаграммд оруулах: TMP006 бол объектын температурыг объекттой холбоо барих шаардлагагүй хэмждэг температур мэдрэгч юм. Энэхүү гарын авлагад бид Python ашиглан BoosterPack (TI BOOSTXL-EDUMKII) -аас амьд температурын өгөгдлийг гаргах болно
Arduino болон Python -ийн Arduino мастер номын санг ашиглан гэрлийн эрчимийг төлөвлөх нь: 5 алхам

Arduino болон Python -ийн Arduino мастер номын санг ашиглан гэрлийн эрчимийг төлөвлөх: Arduino нь хэмнэлттэй боловч өндөр үр ашигтай, ажиллагаатай хэрэгсэл бөгөөд үүнийг Embedded C дээр програмчлах нь төслүүдийг ядаргаатай болгоход хүргэдэг. Python -ийн Arduino_Master модуль нь үүнийг хялбарчилж, тооцоолол хийх, хог хаягдлыг арилгах
NodeMCU ашиглан DHT11 өгөгдлийг MySQL сервер рүү хэрхэн илгээх вэ: 6 алхам

NodeMCU ашиглан DHT11 өгөгдлийг MySQL сервер рүү хэрхэн илгээх вэ: Энэхүү төсөлд бид DHT11 -ийг nodemcu -той холбож, дараа нь чийгшил, температур болох dht11 -ийн өгөгдлийг phpmyadmin мэдээллийн санд илгээдэг
EC/pH/ORP өгөгдлийг TICK Stack болон NoCAN платформ ашиглан хадгалах ба графиклах: 8 алхам

EC/pH/ORP өгөгдлийг TICK Stack болон NoCAN платформоор хадгалах ба графиклах: Энэ нь NoCAN платформыг Omzlo болон uFire мэдрэгч ашиглан EC, pH, ORP хэмжихэд ашиглах болно. Тэдний вэбсайтын хэлснээр заримдаа мэдрэгчийн зангилаа руу зарим кабелийг ажиллуулах нь илүү хялбар байдаг. CAN нь харилцаа холбоо, хүч чадлын нэг давуу талтай
Arduino нь Python ашиглан Dht11 өгөгдлийг MySQL сервер (PHPMYADMIN) руу илгээж байна: 5 алхам

Arduino нь Python ашиглан Dht11 өгөгдлийг MySQL Сервер (PHPMYADMIN) руу илгээж байна: Энэ төсөлд би DHT11 -ийг arduino -той холбож, дараа нь чийгшил, температур болох dht11 -ийн өгөгдлийг phpmyadmin мэдээллийн санд илгээж байна. Өмнөх төслөөс ялгаатай нь бид энэ тохиолдолд ямар ч Ethernet бамбай ашигладаггүй, энд бид зүгээр л уншиж байна