
Բովանդակություն:
2025 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2025-01-23 14:48

Այս հրահանգը բացատրում է, թե ինչպես եմ ես գծագրում ջերմաստիճանի տվիչի DHT11 տվյալները ՝ օգտագործելով Arduino Uno- ն և Raspberry Pi- ն: Այս ջերմաստիճանում սենսորը միացված է Arduino Uno- ի հետ, իսկ Arduino Uno- ն սերիականորեն `Raspberry Pi- ի հետ: Raspberry Pi Side- ում matplotlib, numpy և drawnow գրադարաններն օգտագործվում են գծապատկերներ գծելու համար:
Քայլ 1. ingsրագրի համար անհրաժեշտ բաներ



1. Ազնվամորի Պի
2. Արդուինո Ունո
3. DHT11 ջերմաստիճանի տվիչ
4. Jumper լարերը
5. Հացաթուղթ
Քայլ 2: Ներբեռնեք և տեղադրեք Arduino IDE- ն Raspberry Pi- ում



Նշում.
Առաջին քայլը 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 ==> գրադարանների թղթապանակում:
ՆՇՈՄ. Եթե կա (-), անվանափոխեք այն:
մենք ուսուցանելու համար կօգտագործենք երկու գրադարան ՝ DHT_Sensor և Adafruit_Sensor
Քայլ 3. Կոդ Arduino- ի համար

Եկեք պիթոնին և Արդուինոյին միասին խոսենք: Նախ մեզ պետք է մի պարզ ծրագիր ՝ Arduino- ն սերիական նավահանգստով տվյալներ ուղարկելու համար: Հետևյալ ծրագիրը պարզ ծրագիր է, որը կունենա Arduino- ի հաշվարկը և տվյալները կուղարկի սերիական նավահանգիստ:
Arduino կոդ
#ներառել «DHT.h» float tempC; // փոփոխական կամ պահող ջերմաստիճան C float tempF- ում; // F բոց խոնավության ջերմաստիճանը պահելու համար փոփոխական; // iableնշման ընթերցում պահելու համար փոփոխական
#սահմանեք 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- ն

Երբ կոդը վերբեռնվի, տեղադրեք որոշ գրադարաններ, որպեսզի մենք կարողանանք գծել Arduino Uno- ի սերիականորեն ստացվող տվյալների գրաֆիկը:
1. PySerial- ը գրադարան է, որն ապահովում է տարբեր սարքերի սերիական կապերի աջակցություն: Տեղադրելու համար օգտագործեք հրամանը:
Sudo apt-get տեղադրել python- սերիալ
2. Numpy- ը փաթեթ է, որը սահմանում է բազմաչափ զանգվածի օբյեկտ և դրա վրա գործող արագ մաթեմատիկական գործառույթներ: Այն նաև ապահովում է գծային հանրահաշվի և FFT- ի (Արագ Ֆուրյեի արագ փոխակերպում) պարզ ընթացակարգեր և բարդ պատահական թվերի սերունդ: Դուք կարող եք այն տեղադրել բազմաթիվ եղանակներով ՝ օգտագործելով apt փաթեթ կամ pip: Այստեղ ես տեղադրում եմ pip օգտագործելով, դրա համար նախ պետք է տեղադրել pip
sudo apt-get տեղադրել python-pip python-dev build-essential
sudo pip տեղադրել numpy
կամ եթե ցանկանում եք օգտագործել համապատասխան փաթեթ
sudo apt տեղադրել python-numpy
3. Matplotlib- ը 2D գծագրման գրադարան է, որն ապահովում է օբյեկտային կողմնորոշված API ՝ ծրագրերի մեջ սյուժեներ ներդնելու համար ՝ օգտագործելով ընդհանուր նշանակության GUI գործիքակազմեր, ինչպիսիք են Tkinter, wxPython, Qt կամ GTK+: Տեղադրելու համար օգտագործեք հրամանը
sudo pip տեղադրել matplotlib
կամ
sudo apt տեղադրել python-matplotlib
4. Drawnow- ը հիմնականում օգտագործվում է արդյունքները յուրաքանչյուր կրկնությունից հետո տեսնելու համար, քանի որ մենք օգտագործում ենք «imshow» - ը MATLAB- ում: Տեղադրելու համար օգտագործեք հրամանը
sudo pip տեղադրել drawnow
Քայլ 5: Python Scipt


Հաջորդ քայլը պիթոնի սցենար գրելն է, որի համար կարող եք օգտագործել ցանկացած խմբագիր:
1. Հողամասի տվյալները մեկ գրաֆիկի մեջ
ներմուծել սերիա # ներմուծել սերիական գրադարան
ներմուծել numpy # Ներմուծել numpy
ներմուծել matplotlib.pyplot որպես plt #import matplotlib գրադարան
անհապաղ ներմուծումից *
tempC = #Դատարկ զանգվածային խոնավություն =
arduino = serial. Serial ("/dev/ttyACM0", 115200)
plt.ion () # ինտերակտիվ ռեժիմ ՝ կենդանի տվյալների հաշվարկ = 0 գծագրելու համար
def makeFig (): #Ստեղծեք գործառույթ, որը դարձնում է մեր ցանկալի գծապատկերը
plt.ylim (20, 30) #Սահմանել y min և առավելագույն արժեքները
plt.title ('Իրական ժամանակի DHT11 տվյալներ') #Կազմեք վերնագիրը
plt.grid (True) #Միացրեք ցանցը
plt.ylabel ('Temp C') #Սահմանել ylabel
plt.plot (tempC, 'b^-', label = 'Degree C') #ցույց ջերմաստիճանը
plt.legend (loc = 'վերին աջ') #գրեք լեգենդը
plt2 = plt.twinx () #Ստեղծեք երկրորդ y առանցքը
plt.ylim (50, 70) #Երկրորդ y առանցքի սահմաններ
plt2.plot (խոնավություն, 'g*-', label = 'Խոնավություն') #հողամաս ճնշման տվյալներ
plt2.set_ylabel («Խոնավություն») #պիտակի երկրորդ y առանցք
plt2.ticklabel_format (useOffset = Կեղծ)
plt2.legend (loc = 'վերին ձախ')
while True: # while loop- ը, որը հավերժ պտտվում է
while (arduino.inWaiting () == 0): #Սպասեք այստեղ, մինչև տվյալներ չլինեն
անցնել #ոչինչ չանել
arduinoString = arduino.readline ()
dataArray = arduinoString.split (',') #Պառակտել այն զանգվածի մեջ
temp = float (dataArray [0])
hum = float (dataArray [1])
tempC.append (ջերմաստիճան)
խոնավություն: կցել (բզզոց)
drawnow (makeFig)
plt. դադար (.000001)
հաշվել = հաշվել+1 եթե (հաշվել> 20). #միայն վերցրեք վերջին 20 տվյալները, եթե տվյալները ավելի շատ լինեն, այն առաջինը կհայտնվի
tempC.pop (0)
խոնավություն: pop (0)
2. Խոնավության և ջերմաստիճանի առանձին գծագրման համար
ներմուծել սերիա # ներմուծել սերիական գրադարան
ներմուծել numpy # Ներմուծել numpy
ներմուծել matplotlib.pyplot որպես plt #import 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 min և առավելագույն արժեքները
plt.title ('Իրական ժամանակի DHT11 տվյալներ') #Կազմեք վերնագիրը
plt.grid (True) #Միացրեք ցանցը
plt.ylabel ('Temp C') #Սահմանել ylabels
plt.plot (tempC, 'b^-', label = 'Degree C') #ցույց ջերմաստիճանը
plt.legend (loc = 'վերին կենտրոն') #գրեք լեգենդը
plt.subplot (2, 1, 2) # Բարձրություն, Լայնություն, Երկրորդ հողամաս
plt.grid (Trueշմարիտ)
plt.ylim (45, 70) #Երկրորդ y առանցքի սահմաններ
plt.plot (խոնավություն, 'g*-', label = 'Խոնավություն (գ/մ^3)') #հողամասի խոնավության տվյալներ
plt.ylabel ('Խոնավություն (գ/մ^3)') #պիտակի երկրորդ y առանցք
plt.ticklabel_format (useOffset = False) #կանգնեցնել autoscale y առանցքը
plt.legend (loc = 'վերին կենտրոն')
while True: # while loop- ը, որը հավերժ պտտվում է
while (arduino.inWaiting () == 0): #Սպասեք այստեղ, մինչև տվյալների փոխանցումը լինի #ոչինչ չանել
arduinoString = arduino.readline () #կարդալ տվյալները սերիական նավահանգստից
dataArray = arduinoString.split (',') #Պառակտել այն զանգվածի մեջ
temp = float (dataArray [0]) #Փոխարկել առաջին տարրը լողացող համարի և տեղադրել ջերմաստիճանի մեջ
hum = float (dataArray [1]) #Փոխարկեք երկրորդ տարրը լողացող համարի և դրեք բզզոցի մեջ
tempC.append (temp) #Կառուցեք մեր tempC զանգվածը `կցելով temp ընթերցմանը
խոնավություն. կցել (բզզոց) #Կառուցել մեր խոնավության զանգվածը `կցելով բզզոց ընթերցում
drawnow (CreatePlot)
plt. դադար (.000001)
հաշվել = հաշվել+1
if (count> 20): #միայն վերցրեք վերջին 20 տվյալները, եթե տվյալները ավելի շատ լինեն, այն առաջինը կհայտնվի
tempC.pop (0) # բացեք առաջին տարրը
խոնավություն: pop (0)
Քայլ 6: Շղթայի դիագրամ



Arduino ==> DHT11
3.3V ==> VCC
GND ==> GND
D7 ==> ԴՈUTՐՍ
Խորհուրդ ենք տալիս:
Ինչպես կարդալ DHT տվյալները LCD- ով ՝ օգտագործելով Raspberry Pi: 6 քայլ

Ինչպես կարդալ DHT տվյալները LCD- ով ՝ օգտագործելով Raspberry Pi. Temperatureերմաստիճանը և հարաբերական խոնավությունը կարևոր եղանակային տվյալներ են միջավայրում: Երկուսը կարող են լինել տվյալներ, որոնք տրամադրում է մինի եղանակային կայանը: Raspberry Pi- ի միջոցով ձեր ջերմաստիճանը և հարաբերական խոնավությունը կարդալը կարող է հասնել տարբեր տեսակի
Եղանակի տվյալները ՝ օգտագործելով Google Աղյուսակներ և Google Script: 7 քայլ

Եղանակի տվյալները ՝ օգտագործելով Google Sheets- ը և Google Script- ը. Այս Blogtut- ում մենք SHT25 սենսորի ընթերցումները կուղարկենք google թերթեր ՝ օգտագործելով Adafruit huzzah ESP8266- ը, որն օգնում է տվյալները ուղարկել ինտերնետին: և հիմնական եղանակը, որը պահում է տվյալները
Օգտագործելով Complex Arts Sensor Board- ը ՝ մաքուր տվյալները WiFi- ով վերահսկելու համար. 4 քայլ (նկարներով)

Օգտագործելով Complex Arts Sensor Board- ը ՝ մաքուր տվյալները WiFi- ով վերահսկելու համար. Երբևէ ցանկացե՞լ եք փորձարկել ժեստերի կառավարումը: Ձեռքի շարժումով ստիպո՞ւմ եք իրերին շարժվել: Վերահսկե՞լ երաժշտությունը ձեր դաստակի ոլորումով: Այս Instructable- ը ցույց կտա ձեզ, թե ինչպես: Complex Arts Sensor Board- ը (complexarts.net) բազմակողմանի միկրո
Ինչպես ուղարկել DHT11 տվյալները MySQL սերվերին ՝ օգտագործելով NodeMCU: 6 քայլ

Ինչպես ուղարկել DHT11 տվյալները MySQL սերվերին ՝ օգտագործելով NodeMCU: Այս նախագծում մենք DHT11- ին միացրել ենք nodemcu- ն, այնուհետև dht11- ի տվյալները, որոնք խոնավություն և ջերմաստիճան են, ուղարկում ենք phpmyadmin տվյալների բազա:
Պահպանեք Arduino սենսորային տվյալները MYsql- ում `օգտագործելով վերամշակումը` 6 քայլ

Պահել Arduino սենսորային տվյալները MYsql- ի միջոցով ՝ մշակման միջոցով. Անկեղծ ասած, դժվար է Arduino- ի տվյալները ուղղակիորեն MySQL- ում պահել, որպեսզի Arduino IDE- ից կախվածության դեպքում ես օգտագործեմ Processing IDE- ն, որը նման է Arduino IDE- ին, բայց շատ տարբեր օգտագործմամբ, և դուք կարող եք դրանք կոդավորել: java. Նշում. մի աշխատեք Arduino- ի սերիական միատեսակ