Satura rādītājs:

Temperatūra un mitrums no Arduino līdz Raspberry Pi: 6 soļi
Temperatūra un mitrums no Arduino līdz Raspberry Pi: 6 soļi

Video: Temperatūra un mitrums no Arduino līdz Raspberry Pi: 6 soļi

Video: Temperatūra un mitrums no Arduino līdz Raspberry Pi: 6 soļi
Video: Использование Melexis MLX90614 Инфракрасный термометр с Arduino 2024, Novembris
Anonim
Temperatūra un mitrums no Arduino līdz Raspberry Pi
Temperatūra un mitrums no Arduino līdz Raspberry Pi

Temperatūras un mitruma izsekošana ir svarīga, ja jums ir siltumnīca vai nākotnē plānojat uzlabot savu siltumnīcu par mini viedo saimniecību.

Pirmajā pamācībā es parādīšu, kā izveidot prototipu:

  • Pievienojiet DHT11 temperatūras un mitruma sensoru Arduino Mega 2560
  • Programmējiet Arduino C, lai nolasītu sensora datus
  • Parādiet temperatūras un mitruma datus LCD, kas savienots ar Arduino
  • Uzdodiet Arduino nosūtīt sensora datus uz Raspberry Pi 3 modeli B+
  • Ierakstiet kodu Python, lai parādītu sensora datus

Kāpēc izmantot RPi un Arduino kopā?

Arduino un RPi savienojums var nodrošināt lieliskas iespējas, ja jums nepieciešama I/O, ar kuru Arduino izceļas, un tīkla komunikācija/daudzpavedieni/vizuālie attēli, kuros RPi ir daudz labāks.

Citiem vārdiem sakot, mēs izmantosim Arduino intensīvu uzdevumu kontrolei un RPi intensīvu uzdevumu aprēķināšanai.

Rugged-Circuits ir pieejamas izturīgas Arduinos versijas

1. darbība: iegūstiet Arduino un RPi aparatūru

Arduino sākuma komplekti ir viegli pieejami un ļauj eksperimentēt ar dažāda veida sensoriem un sīkrīkiem. Sākuma komplekta iegāde ir lētāka, nevis dažādu detaļu pasūtīšana atsevišķi. Tālāk esmu sniedzis dažas saistītās saites, norādot uz Banggood un Amazon US.

Arduino sākuma komplekts (Banggood)

Arduino sākuma komplekts (Amazon ASV)

Element14 RPi 3 B+ mātesplate (Amazon ASV)

Raspberry Pi 3 B+ korpuss (Amazon ASV)

32 GB Micro SD karte (Amazon ASV).

2. darbība. Savienojiet DHT11 un LCD ar Arduino

Savienojiet DHT11 un LCD ar Arduino
Savienojiet DHT11 un LCD ar Arduino

3. solis: ieprogrammējiet Arduino

#arduino-dht11-lcd2004

#Autors: Vasoo Veerapen

#https://www.instructables.com/member/VasooV/ #Izlasa datus no DHT11, kas savienots ar Arduino, tiek parādīts LCD2004 un nosūta datus sērijveidā uz Raspberry Pi

#iekļaut

#iekļaut

// LCD displejs ir definēts kā ierīces numurs 0x27 I2C kopnē

LiquidCrystal_I2C LCD (0x27, 20, 4);

// DHT11 ir savienots ar 8. tapu

dht DHT; #define sensorsPin 8

// Raspberry Pi ir savienots ar 0

#define serialPi Serial

void setup () {

lcd. sākums (20, 4); // Inicializē saskarni ar LCD ekrānu un norāda displeja izmērus (platumu un augstumu) lcd.init (); lcd.fona apgaismojums (); serialPi.begin (9600); // Arduino uz sērijas monitoru}

void loop () {

// Lasīt sensora datus

int sensorData = DHT.read11 (sensorPin); pludiņa temperatūra = DHT.temperatūra; pludiņa mitrums = DHT.mitrums;

// Drukas temperatūra

lcd.setCursor (0, 0); lcd.print ("Temperatūra"); lcd.print (temperatūra); lcd.print ("C");

// Drukas mitrums

lcd.setCursor (0, 1); lcd.print ("Mitrums"); lcd.print (mitrums); lcd.print (" %");

// Nosūtīt temperatūras un mitruma datus uz Raspberry Pi

serialPi.print ("");

// Pagaidiet 10 sekundes

kavēšanās (10000); }

4. darbība: darba Arduino, LCD un DHT11 iestatīšana

Darba Arduino, LCD un DHT11 iestatīšana
Darba Arduino, LCD un DHT11 iestatīšana

5. solis: savienojiet Raspberry Pi ar Arduino

Savienojiet Raspberry Pi ar Arduino
Savienojiet Raspberry Pi ar Arduino

6. darbība: RPi Python kods, lai nolasītu USB porta sērijas datus

#rpi-arduino-dht11

#Raspberry Pi nolasa temperatūras un mitruma sensoru datus no Arduino

importēt sēriju, virkni, laiku

#Šajā piemērā tiek izmantots /dev /ttyUSB0

#Jūsu gadījumā tas var mainīties uz/dev/ttyUSB1,/dev/ttyUSB2 utt. Ser = serial. Serial ('/dev/ttyUSB0', 9600)

#Šāds koda bloks darbojas šādi:

#Ja ir sērijveida dati, izlasiet rindu, atšifrējiet UTF8 datus, #… noņemiet rakstzīmes beigu beigās #… sadaliet datus temperatūrā un mitrumā #… noņemiet sākuma un beigu norādes () #… drukājiet izvadi, kamēr True: ja ser.in_waiting> 0: rawserial = ser.readline () cookedserial = rawserial.decode ('utf-8'). Sloksne ('\ r / n') datasplit = cookedserial.split (',') temperatūra = datu šķelšanās [0]. josla ('') druka (temperatūra) druka (mitrums)

Ieteicams: