Sisukord:

Temperatuur ja niiskus Arduinost Raspberry Pi -ni: 6 sammu
Temperatuur ja niiskus Arduinost Raspberry Pi -ni: 6 sammu

Video: Temperatuur ja niiskus Arduinost Raspberry Pi -ni: 6 sammu

Video: Temperatuur ja niiskus Arduinost Raspberry Pi -ni: 6 sammu
Video: BME280 Sensor Test with Arduino: pressure, humidity and temperature for the New Chronograph Project 2024, November
Anonim
Temperatuur ja niiskus Arduinost Raspberry Pi -ni
Temperatuur ja niiskus Arduinost Raspberry Pi -ni

Temperatuuri ja niiskuse jälgimine on oluline, kui teil on kasvuhoone või teil on tulevikus plaanis oma kasvuhoone mini nutikaks taluks täiendada.

Oma esimese juhendatava jaoks demonstreerin prototüübi loomist:

  • Ühendage DHT11 temperatuuri ja niiskuse andur Arduino Mega 2560 -ga
  • Programmeerige Arduino C -s andurite andmete lugemiseks
  • Kuvage temperatuuri ja niiskuse andmed Arduinoga ühendatud LCD -ekraanil
  • Juhendage Arduinole anduri andmete saatmine Raspberry Pi 3 mudelile B+
  • Andurite andmete kuvamiseks kirjutage Pythonisse kood

Miks kasutada RPi ja Arduino koos?

Arduino ja RPi ühendus võimaldab suurepäraseid võimalusi, kui vajate Arduino suurepärast I/O -d ja võrgusuhtlust/multitreadingut/visuaale, milles RPi on palju parem.

Teisisõnu, me kasutame Arduinot intensiivsete ülesannete kontrollimiseks ja RPi intensiivsete ülesannete arvutamiseks.

Arduinode vastupidavad versioonid on saadaval Rugged-Circuits'is

Samm: hankige Arduino ja RPi riistvara

Arduino stardikomplektid on hõlpsasti saadaval ja võimaldavad teil katsetada erinevat tüüpi andurite ja vidinatega. Stardikomplekti ostmine läheb erinevate osade eraldi tellimise asemel odavamaks. Olen allpool esitanud mõned sidusettevõtte lingid, mis osutavad Banggoodile ja Amazon USA -le.

Arduino stardikomplekt (Banggood)

Arduino stardikomplekt (Amazon USA)

Element14 RPi 3 B+ emaplaat (Amazon USA)

Raspberry Pi 3 B+ ümbris (Amazon USA)

32 GB Micro SD -kaart (Amazon USA).

Samm: ühendage DHT11 ja LCD Arduinoga

Ühendage DHT11 ja LCD Arduinoga
Ühendage DHT11 ja LCD Arduinoga

Samm: programmeerige Arduino

#arduino-dht11-lcd2004

#Autor: Vasoo Veerapen

#https://www.instructables.com/member/VasooV/ #Loeb andmeid Arduinoga ühendatud DHT11 -st, kuvatakse LCD2004 -l ja saadab andmed jada kaudu Raspberry Pi -le

#kaasake

#kaasake

// LCD -ekraan on I2C siinil määratletud kui seadme number 0x27

LiquidCrystal_I2C LCD (0x27, 20, 4);

// DHT11 on ühendatud tihvtiga 8

dht DHT; #define sensorPin 8

// Raspberry Pi on ühendatud Serial 0 -ga

#define serialPi jada

tühine seadistus () {

lcd.algus (20, 4); // Vormistab LCD -ekraani liidese ja määrab ekraani mõõtmed (laius ja kõrgus) lcd.init (); lcd.taustavalgus (); serialPi.begin (9600); // Arduino jadamonitorile}

void loop () {

// Andurite andmete lugemine

int sensorData = DHT.read11 (sensorPin); ujuktemperatuur = DHT.temperatuur; ujuki niiskus = DHT.niiskus;

// Prinditemperatuur

lcd.setCursor (0, 0); lcd.print ("Temperatuur"); lcd.print (temperatuur); lcd.print ("C");

// Prindi niiskus

lcd.setCursor (0, 1); lcd.print ("Niiskus"); lcd.print (niiskus); lcd.print (" %");

// Saada temperatuuri ja niiskuse andmed Raspberry Pi -le

serialPi.print ("");

// Oodake 10 sekundit

viivitus (10000); }

Samm: töötav Arduino, LCD ja DHT11 seadistamine

Töötav Arduino, LCD ja DHT11 seadistus
Töötav Arduino, LCD ja DHT11 seadistus

Samm: ühendage Raspberry Pi Arduinoga

Ühendage Raspberry Pi Arduinoga
Ühendage Raspberry Pi Arduinoga

6. samm: RPi Pythoni kood USB -pordi jadaandmete lugemiseks

#rpi-arduino-dht11

#Raspberry Pi loeb Arduino temperatuuri ja niiskuse anduri andmeid

impordi seeria, string, aeg

#Selles näites kasutatakse /dev /ttyUSB0

#See võib teie puhul muutuda failiks/dev/ttyUSB1,/dev/ttyUSB2 jne. Ser = serial. Serial ('/dev/ttyUSB0', 9600)

#Järgmine koodiplokk töötab järgmiselt:

#Kui seeriaandmed on olemas, lugege rida, dekodeerige UTF8 andmed, #… eemaldage rea tähemärgi lõpp #… jagage andmed temperatuuriks ja niiskuseks #… eemaldage algus- ja lõppviidad () #… printige väljund Tõsi: kui ser.in_waiting> 0: rawserial = ser.readline () cookedserial = rawserial.decode ('utf-8'). Riba ('\ r / n') datasplit = cookedserial.split (',') temperatuur = andmete jagamine [0]. triip ('') print (temperatuur) print (niiskus)

Soovitan: