![Raspberry Pi жана Arduino UNO аркылуу DHT11 маалыматтарынын сюжети: 7 кадам Raspberry Pi жана Arduino UNO аркылуу DHT11 маалыматтарынын сюжети: 7 кадам](https://i.howwhatproduce.com/images/004/image-9255-8-j.webp)
Мазмуну:
2025 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2025-01-23 14:51
![Raspberry Pi жана Arduino UNO аркылуу DHT11 маалыматтарынын сюжети Raspberry Pi жана Arduino UNO аркылуу DHT11 маалыматтарынын сюжети](https://i.howwhatproduce.com/images/004/image-9255-9-j.webp)
Бул көрсөтмө менин температура сенсорунун DHT11 маалыматтарын Arduino Uno жана Raspberry Pi менен кантип түзөөрүмдү түшүндүрөт. Бул температура сенсору Arduino Uno менен, Arduino Uno Raspberry Pi менен сериялык түрдө туташкан. Raspberry Pi Sideде графиктерди түзүү үчүн matplotlib, numpy жана drawow китепканалары колдонулат.
1 -кадам: Долбоорго керектүү нерселер
![Долбоорго керектүү нерселер Долбоорго керектүү нерселер](https://i.howwhatproduce.com/images/004/image-9255-10-j.webp)
![Долбоорго керектүү нерселер Долбоорго керектүү нерселер](https://i.howwhatproduce.com/images/004/image-9255-11-j.webp)
![Долбоорго керектүү нерселер Долбоорго керектүү нерселер](https://i.howwhatproduce.com/images/004/image-9255-12-j.webp)
1. Raspberry Pi
2. Arduino Uno
3. DHT11 Температура Сенсору
4. Jumper Wires
5. Нан тактасы
2 -кадам: Raspberry Piдеги Arduino IDEди жүктөп алып орнотуңуз
![Raspberry Piдеги Arduino IDEди жүктөп алып, орнотуңуз Raspberry Piдеги Arduino IDEди жүктөп алып, орнотуңуз](https://i.howwhatproduce.com/images/004/image-9255-13-j.webp)
![Raspberry Piдеги Arduino IDEди жүктөп алып, орнотуңуз Raspberry Piдеги Arduino IDEди жүктөп алып, орнотуңуз](https://i.howwhatproduce.com/images/004/image-9255-14-j.webp)
![Raspberry Piдеги Arduino IDEди жүктөп алып, орнотуңуз Raspberry Piдеги Arduino IDEди жүктөп алып, орнотуңуз](https://i.howwhatproduce.com/images/004/image-9255-15-j.webp)
Эскертүү:- Сиз 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 1.8.2 ==> китепканалар папкасына чаптаңыз.
ЭСКЕРТҮҮ:-Экс (DHT-сенсор) үчүн китепкана папкасында (-) жок экендигин текшериңиз. Эгерде кандайдыр бир (-) болсо, анын атын өзгөртүңүз.
Биз бул китепчеде эки китепкананы колдонобуз, DHT_Sensor жана Adafruit_Sensor
3 -кадам: Arduino коду
![Ардуино коду Ардуино коду](https://i.howwhatproduce.com/images/004/image-9255-16-j.webp)
Эми, python менен Arduino чогуу сүйлөшөлү. Биринчиден, Arduino сериялык порт аркылуу маалыматтарды жөнөтүү үчүн жөнөкөй программа керек. Төмөнкү программа Arduino эсептөөчү жана сериялык портко маалыматтарды жөнөтүүчү жөнөкөй программа.
Arduino коду
#include "DHT.h" float tempC; // C float tempF ичинде өзгөрмө же кармап туруучу темп; // F калкып турган нымдуулукта температураны кармоо үчүн өзгөрмө; // Басымдуу окуу үчүн өзгөрмө
#Define 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 (); // Нымдуулукту окуу
Serial.print (tempC);
Serial.print (",");
Serial.print (нымдуулук);
Serial.print ("\ n"); // жаңы линейка үчүн (2000); // Окуунун ортосунда тыныгуу. }
Эскиз түзүлгөндөн кийин, тактаны жана портту тандап, жүктөңүз.
4 -кадам: Raspberry Pi орнотуу
![Raspberry Pi орнотуу Raspberry Pi орнотуу](https://i.howwhatproduce.com/images/004/image-9255-17-j.webp)
Код жүктөлгөндөн кийин, кээ бир китепканаларды орнотуңуз, ошондо биз Arduino Unoдон келе жаткан маалыматтардын графигин түзө алабыз.
1. PySerial - бул ар кандай түзмөктөрдүн сериялык байланыштарын колдогон китепкана. Аны орнотуу үчүн, буйрукту колдонуңуз.
Sudo apt-get install python-serial
2. Numpy-бул көп өлчөмдүү массив объектисин жана аны менен байланышкан тез математикалык функцияларды аныктоочу пакет. Ал ошондой эле сызыктуу алгебра жана FFT (Fast Fourier Transform) жана татаал туш келди сандарды түзүү боюнча жөнөкөй иштерди камсыз кылат. Сиз аны ар кандай жолдор менен орното аласыз же apt пакетин же пипти колдонуңуз. Бул жерде мен пипти колдонуп орнотуп жатам, адегенде биз пипти орнотушубуз керек
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 install python-matplotlib
4. Drawnow көбүнчө MATLABда "imshow" колдонуп жаткандыктан, ар бир кайталоодон кийин натыйжаларды көрүү үчүн колдонулат. Аны орнотуу үчүн буйрукту колдонуңуз
sudo pip орнотулган
5 -кадам: Python скрипти
![Python Scipt Python Scipt](https://i.howwhatproduce.com/images/004/image-9255-18-j.webp)
![Python Scipt Python Scipt](https://i.howwhatproduce.com/images/004/image-9255-19-j.webp)
Кийинки кадам - бул питон скриптин жазуу, аны каалаган редакторду колдоно аласыз.
1. Маалыматтарды бир графикке салыңыз
импорттук сериялык # импорттук сериялык китепкана
импорттоо numpy # Импорттук numpy
matplotlib.pyplot импорттоо plt #import matplotlib китепканасы
тартылган импорттон *
tempC = #Empty arrayhumidity =
arduino = serial. Serial ("/dev/ttyACM0", 115200)
plt.ion () # интерактивдүү режими түз datacount = 0 үчүн
def makeFig (): #Биз каалаган участокту түзүүчү функцияны түзүңүз
plt.ylim (20, 30) #Min y жана max маанилерди коюңуз
plt.title ('Real Time DHT11 Data') #Аталышын жазыңыз
plt.grid (True) #Торду күйгүзүү
plt.ylabel ('Temp C') #Ylabel коюу
plt.plot (tempC, 'b^-', label = 'C Даражасы C') #температура графиги
plt.legend (loc = 'жогорку оң') #легендага сюжет
plt2 = plt.twinx () #Экинчи у огун түзүү
plt.ylim (50, 70) #Экинчи у огунун чектерин коюңуз
plt2.plot (нымдуулук, 'g*-', label = 'Нымдуулук') #участоктун басым маалыматы
plt2.set_ylabel ('Нымдуулук') #белгиси экинчи y огу
plt2.ticklabel_format (useOffset = False)
plt2.legend (loc = 'жогорку сол')
while True: # while цикли түбөлүккө айланат
while (arduino.inWaiting () == 0): #Маалымат жок болгуча бул жерде күт
#эч нерсе кылба
arduinoString = arduino.readline ()
dataArray = arduinoString.split (',') #Аны массивге бөлүү
темп = калкып чыгуу (dataArray [0])
hum = float (dataArray [1])
tempC.append (темп)
нымдуулук.
тартылган (makeFig)
plt.pause (.000001)
count = count+1 if (count> 20): #маалыматтар көбүрөөк болсо, биринчи гана 20 акыркы маалыматты алыңыз
tempC.pop (0)
nem.pop (0)
2. Нымдуулукту жана температураны өзүнчө пландаштыруу
импорттук сериялык # импорттук сериялык китепкана
импорттоо numpy # Импорттук numpy
matplotlib.pyplot импорттоо plt #import matplotlib китепканасы
тартылган импорттон *
tempC = #Бош массив
нымдуулук =
arduino = serial. Serial ("/dev/ttyACM0", 115200) #Ардуино туташкан сериялык порт жана Baudrate
plt.ion () #Айтыңыз matplotlib, интерактивдүү режимде жандуу маалыматтарды пландаштыргыңыз келет
def CreatePlot (): #Биз каалаган участокту түзүүчү функцияны түзүңүз
plt.subplot (2, 1, 1) #Бийиктиги, Туурасы, Биринчи сюжет
plt.ylim (22, 34) #Min y жана max маанилерди коюңуз
plt.title ('Real Time DHT11 Data') #Аталышын жазыңыз
plt.grid (True) #Торду күйгүзүү
plt.ylabel ('Temp C') #Жылдык белгилерди коюу
plt.plot (tempC, 'b^-', label = 'C Degree C') #температура участогу
plt.legend (loc = 'жогорку борбор') #легенда
plt.subplot (2, 1, 2) # Бийиктик, Туура, Экинчи участок
plt.grid (Чыныгы)
plt.ylim (45, 70) #Экинчи у огунун чектерин коюу
plt.plot (нымдуулук, 'g*-', label = 'Нымдуулук (g/m^3)') #участоктун нымдуулук маалыматы
plt.ylabel ('Нымдуулук (g/m^3)') #энбелгиси экинчи y огу
plt.ticklabel_format (useOffset = False) #автоматтык масштабдагы y огун токтотуу үчүн
plt.legend (loc = 'жогорку борбор')
while True: # while цикли түбөлүккө айланат
while (arduino.inWaiting () == 0): #Бул жерде маалымат өтмөйүнчө күт #эчтеке кылба
arduinoString = arduino.readline () #сериялык порттон маалыматтарды окуу
dataArray = arduinoString.split (',') #Аны массивге бөлүү
temp = float (dataArray [0]) #Биринчи элементти өзгөрмөлүү санга айлантып, темпти коюңуз
hum = float (dataArray [1]) #Экинчи элементти өзгөрмөлүү санга айландырып, хумга коюңуз
tempC.append (temp) #tempC массивин темп окуусун кошуу менен куруңуз
нымдуулук
drawow (CreatePlot)
plt.pause (.000001)
эсептөө = саноо+1
if (count> 20): #гана акыркы 20 маалыматты алып, эгер маалымат көбүрөөк болсо, анда ал биринчи чыгат
tempC.pop (0) # биринчи элемент чыгып
nem.pop (0)
6 -кадам: Райондук диаграмма
![Райондук диаграмма Райондук диаграмма](https://i.howwhatproduce.com/images/004/image-9255-20-j.webp)
![Райондук диаграмма Райондук диаграмма](https://i.howwhatproduce.com/images/004/image-9255-21-j.webp)
![Райондук диаграмма Райондук диаграмма](https://i.howwhatproduce.com/images/004/image-9255-22-j.webp)
Arduino ==> DHT11
3.3V ==> VCC
GND ==> GND
D7 ==> ЧЫГЫП
Сунушталууда:
Смартфон аркылуу видео агымы жана көзөмөл 4WD робот машинасы (Bluetooth аркылуу): 5 кадам
![Смартфон аркылуу видео агымы жана көзөмөл 4WD робот машинасы (Bluetooth аркылуу): 5 кадам Смартфон аркылуу видео агымы жана көзөмөл 4WD робот машинасы (Bluetooth аркылуу): 5 кадам](https://i.howwhatproduce.com/images/005/image-13976-j.webp)
Смартфон аркылуу видео агымы жана көзөмөлү 4WD Robot Car (Bluetooth аркылуу): Саламатсызбы! Мен Arduino үчүн уникалдуу TFT калканына арналган макалалардын сериясын улантам. Бул макала " көрүү " ээ болгон 4WD роботун өнүктүрүүгө арналат. сүрөттөрдү өткөрө турган жалпы жана арзан ОВ7670 камерасын колдонуп
DHT11 / DHT22 жана Arduino аркылуу температураны жана нымдуулукту өлчөгүлө: 4 кадам
![DHT11 / DHT22 жана Arduino аркылуу температураны жана нымдуулукту өлчөгүлө: 4 кадам DHT11 / DHT22 жана Arduino аркылуу температураны жана нымдуулукту өлчөгүлө: 4 кадам](https://i.howwhatproduce.com/images/006/image-15095-j.webp)
DHT11 / DHT22 жана Arduino аркылуу температураны жана нымдуулукту өлчөгүлө: Бул Arduino үйрөткүчүндө биз Arduino тактасы менен температураны жана нымдуулукту өлчөө үчүн DHT11 же DHT22 сенсорун колдонууну үйрөнөбүз
Өз алдынча Arduino 3.3V W / Тышкы 8 МГц сааты Arduino Uno аркылуу ICSP / ISP аркылуу программаланат (Сериялык мониторинг менен!): 4 кадам
![Өз алдынча Arduino 3.3V W / Тышкы 8 МГц сааты Arduino Uno аркылуу ICSP / ISP аркылуу программаланат (Сериялык мониторинг менен!): 4 кадам Өз алдынча Arduino 3.3V W / Тышкы 8 МГц сааты Arduino Uno аркылуу ICSP / ISP аркылуу программаланат (Сериялык мониторинг менен!): 4 кадам](https://i.howwhatproduce.com/images/007/image-20833-j.webp)
Автономдуу Arduino 3.3V W / External 8 MHz Clock Arduino Uno программасынан ICSP / ISP аркылуу программаланат (Сериялык мониторинг менен!): Максаттары: 8 МГц тышкы сааттан өчүрүүчү 3.3Вда иштеген автономдуу Arduino куруу. Аны ISP аркылуу программалоо (ошондой эле ICSP катары белгилүү), Arduino Uno (5V менен иштеген) жүктөөчү файлды түзөтүү жана күйгүзүү үчүн
Бир нече BMP280 сенсорлору Arduino Uno аркылуу SPI аркылуу: 6 кадам
![Бир нече BMP280 сенсорлору Arduino Uno аркылуу SPI аркылуу: 6 кадам Бир нече BMP280 сенсорлору Arduino Uno аркылуу SPI аркылуу: 6 кадам](https://i.howwhatproduce.com/images/010/image-28857-j.webp)
Бир нече BMP280 сенсорлору Arduino Uno аркылуу SPI аркылуу: Бул үйрөткүчтө биз үч BMP280ди Arduino Unoго SPI аркылуу туташтырабыз, бирок сен Uno боюнча D3 to D10 санарип портторун колдонуу менен ар бир сенсор үчүн nSS (Slave Select) менен сегиз BMP280ге чейин туташа аласың. В ченегенде атмосфералык басымдын үлгүлөрүнүн
HTTP аркылуу XinaBox жана Ubidots аркылуу аба ырайын кантип курса болот: 7 кадам
![HTTP аркылуу XinaBox жана Ubidots аркылуу аба ырайын кантип курса болот: 7 кадам HTTP аркылуу XinaBox жана Ubidots аркылуу аба ырайын кантип курса болот: 7 кадам](https://i.howwhatproduce.com/images/005/image-13662-7-j.webp)
XinaBox жана Ubidots аркылуу HTTP аркылуу аба бекетин кантип куруу керек: XinaBox xChips (IP01, CW01 жана SW01) аркылуу Ubidotsто өз аба ырайы станцияңызды жасоону үйрөнүңүз ESP8266 Негизги жана Wi-Fi модулу (xChip CW01) колдонуучуларга жөнөтүүгө мүмкүндүк берет. XinaBoxтун модулдук xChips булутунан алынган маалыматтар. Бул маалыматтарды алыстан көзөмөлдөсө болот