Circuits

Paano Gumawa ng Robot - Aralin 6: Bumuo ng Arduino Robot na Makapag-Monitor ng Densidad ng CO2: 11 Mga Hakbang

IoT Sleepbuddy - babyphone - Instruction Manual

IoT Sleepbuddy - babyphone - Instruction Manual

Talaan ng mga Nilalaman:

Anonim

Ito ang ikalimang tutorial ng 'Paano Gumawa ng isang Robot' Serye. Sa tutorial na ito, isasama namin ang platform ng robot na may sensor ng CO2 upang matukoy mo ang densidad ng CO2 sa isang lugar.

Kapareho ng huling apat na tutorial, isang Arduino robot kit (Pirate: 4WD Arduino Mobile Robot Kit na may Bluetooth 4.0) ay ginagamit dito bilang isang halimbawa.

Mga Aralin Menu:

Aralin 1: Panimula

Aralin 2: Bumuo ng isang Basic Arduino Robot

Aralin 3: Gumawa ng Pagsubaybay sa Linya ng Arduino Robot

Aralin 4: Gumawa ng isang Arduino Robot na Maaring Iwasan ang mga Balakid

Aralin 5: Buuin ang isang Arduino Robot na May Liwanag At Mga Epekto sa Tunog

Aralin 6: Gumawa ng isang Arduino Robot na Puwede ang Monitor Environment

Aralin 7: Bumuo ng isang Arduino Robot na Kinokontrol ng Bluetooth

Mga bahagi ng hardware

CO2 Gas Sensor for Arduino × 1

Mga Kagamitan:

Hakbang 1:

Digital Touch Sensor × 1

Hakbang 2:

LCD Keypad Shield Para sa Arduino × 1

Hakbang 3:

M3 * 6MM Naylon haligi at tie-wraps

Hakbang 4:

Pagtitipon ng ASSEMBLY:

HAKBANG 1: Idagdag ang touch sensor

Mayroong dalawang mga butas sa touch sensor para sa pag-aayos ng mga haligi ng Naylon.

Ayusin ang mga haligi ng Naylon. Mangyaring huwag i-over-twist ang mga haligi.

Hakbang 5:

Pagkatapos ay i-attach ang touch sensor sa plato.

Hakbang 6:

STEP2: Idagdag ang LCD Screen

I-slide ang mga baybayin sa apat na butas ng screen ng LCD at ayusin ang mga ito. Gupitin ang natitirang bahagi ng tie-wraps.

Hakbang 7:

STEP3: Idagdag ang CO2 Sensor

Ayusin ang mga hanay ng Naylon sa CO2 Sensor. Ilakip ang CO2 Sensor sa plate ng sensor.

Hakbang 8:

Halos makumpleto mo ang assembling. Mangyaring huwag ayusin ang itaas na plato papunta sa platform pa dahil kailangan namin upang magtrabaho sa koneksyon sa circuit mamaya.

Hakbang 9:

CONNECT THE HARDWARE:

Mangyaring iingat ang mga kable.

Ang interface ay kulay tulad ng sumusunod:

Ang Red ay nagpapahiwatig ng kapangyarihan

Ang black ay nagpapahiwatig ng lupa

Ang Blue ay nagpapahiwatig ng Analog Input Pin

Ang Green ay nagpapahiwatig ng Digital I / O Pin

Ang LCD monitor ay dapat na konektado sa VCC, GND, SCL at SDA sa partikular na order.

Hakbang 10:

CODING

Hanapin ang code na pinangalanan DHT11_Display.ino at i-download ito. Huwag kalimutan ang library para sa LiquidCrystal_I2C at CO2.

Hakbang 11:

Pagkatapos ng matagumpay na i-download ang code, ang real-time CO2 density ay ipapakita sa LCD screen. Ang touch sensor ay may dalawang function dito:

1. Kung hindi mo hawakan ang sensor pagkatapos ng ilang oras, awtomatiko itong i-off.

2. Kung nais mong magdagdag ng higit pang mga sensors upang subaybayan ang iba pang mga data sa kapaligiran, ang touch sensor ay maaaring lumipat sa data ng pagmamanman sa LCD.

Mahalaga ang Library SYNOPSIS Library. Mahirap maintindihan ang library na walang library.

#include #include

LiquidCrystal_I2C lcd (0x20,16,2);

# isama ang "CO2.h"

CO2Sensor CO2ppm;

Narito ang kailangan mong malaman tungkol sa CO2Pin, isang variable na ginagamit upang ipahayag ang mga pin ng sensor.

int CO2Pin = A1;

Nito, ang DHT11Pin ay kumakatawan sa Analog Pin1. Ibig sabihin, ang aming CO2 sensor ay konektado sa Analog Pin1.

Ang mga sumusunod ay ilang mga deklarasyon para sa mga variable ng oras. Ang TouchPin ay kumakatawan sa touch sensor habang ang 13 ay kumakatawan sa digital pin.

mahaba ang kasalukuyangMillis = 0;

mahaba ang datingMillis;

mahaba ang pagitan = 4000;

int count = 0; / counting numbers

int touchPin = 13;

Dalhin sa pag-andar ng setup (), na kung saan ay isang setting-up para sa pagsisiyasat.

pinMode (touchPin, INPUT);

Pagkatapos ay panatilihin ang touch sensor na may isang uri ng mode. Para sa tiyak na impormasyon, maaari mong suriin ang Arduino Reference sa Arduino Website (www.arduino.cc), na nagpapakilala sa pag-andar ng pinMode ().

Susunod, kailangan mong simulan ang LCD screen at i-on ang liwanag ng LCD, na nagpapakita na ang LCD screen ay handa na.

lcd.init ();

lcd.backlight ();

pagkaantala (100);

lcd.setBacklight (0);

Ngayon ito ay para sa pag-andar ng loop (). Una kailangan naming basahin ang halaga mula sa touch sensor at pagkatapos ay iimbak ang mga data na may isang variable touchState.

int touchState = digitalRead (touchPin);

Pagkatapos suriin kung ang controller ay makakatanggap ng isang signal ng HIGH sa sandaling hinawakan mo ang touch sensor sa iyo mga daliri, 1 ay idadagdag sa bilang.

kung (touchState == HIGH) (count ++; previousMillis = millis (); }

Ang bilang nito ay nangangahulugan kung gaano karaming beses na iyong hinawakan ang screen. Ngunit kung mahawakan mo lamang ang sensor isang oras, pagkatapos ay ang dami ng oras para sa bawat ugnay ay kasama sa pag-andar ng millis ().

Binago namin ang haba ng oras ng pag-ugnay sa isang subtitle na nagsisimula sa kung. Ang agwat dito ay nangangahulugan ng panahon para sa pagpindot na na-set up namin. Kaya, alam namin kung anong aksyon ang dadalhin sa loob ng apat na segundo ng pag-ugnay at higit sa apat na segundo 'pindutin ayon sa pagkakabanggit.

kung (currentMillis - previousMillis <Interval) {// gumawa ng isang bagay sa 4 segundo

ibang {/ / gumawa ng isang bagay na higit sa 4 na segundo}

lcd.setBacklight (0);

Ang function ng setBacklight () ay ginagamit upang i-off ang LCD backlight lamp.

Anong aksyon ang dapat gawin kapag hinawakan namin ang sensor nang higit sa apat na segundo

Kung hinahawakan namin ang sensor ng higit sa apat na segundo, alam namin na ang LCD backlight lamp ay maaaring naka-off.

anong pagkilos ang dapat dalhin sa loob ng apat na segundo ng pagpindot.

kung (count == 1) (/ / One touch, ang LCD screen ay hindi magpapakita ng anumang pagkakaiba)

ibang tao kung (count == 2) (/ Pindutin nang dalawang beses, ang halaga ay ipapakita sa screen ng LCD)

Pindutin ang touch sensor nang higit pa oras sa loob ng apat na segundo; ang screen ay magiging off pa rin. Lamang kung hinawakan mo ito ng dalawang beses sa parehong oras, ang LCD backlight ay magiging at ang mga bilang ng densidad ng CO2 ay ipapakita.

Mangyaring tandaan na panatilihin ang count bilang zero pagkatapos mong pindutin ang sensor para sa huling oras.

count = 0;

Kaya ang kumpletong code ay dapat:

kung (count == 1) {lcd.setBacklight (0); }

iba pa kung (count == 2) {lcd.backlight (); DustShow (); count = 0; }

Pagkatapos ay kailangan namin upang panatilihin ang isang track ng kasalukuyang oras bilang maaari naming ihambing ito sa nakaraangMillis. Ang puntong ito ay napakahalaga.

currentMillis = millis ();

Ang function ng CO2ppm.Read () ay ginagamit upang basahin ang data. At ang variable na CO2Value ay gagamitin upang iimbak ang data mula sa sensor ng CO2.

Int CO2Value = CO2ppm.Read (CO2Pin);

Narito kung paano namin ginamit ang function na may kaugnayan sa LCD screen.

lcd.setCursor (0,0);

lcd.setCursor (0,1);

Ang function ng setCursor (haligi, hilera) ay ginagamit upang ipakita kung aling hanay at hilera ang cursor ay ipinapakita, simula sa zero sa loob ng mga bracket.

lcd.print (CO2Value);

print () ay nangangahulugan na ang figure na ito ay maaaring maipakita sa screen nang direkta.

lcd.print ("");

Ang lcd.print ("") ay nangangahulugan ng blangko na espasyo na ipinapakita sa screen. Ginagamit ito upang i-clear ang screen.

Isang Kumbinasyon ng Maramihang Sensor Paano mo pagsamahin ang maramihang mga sensors sa kapaligiran sa sandaling bumili ka ng ilang uri ng mga sensor?

Huwag mag-alala. Kami ay nag-aalok sa iyo guys ng isang coding template para sa pagsubok ng maramihang mga sensor. Maaari kang gumawa ng mga pagsasaayos ng kumbinasyon sa pamamagitan ng pagtukoy sa nabanggit na template. Sa katunayan, ang teorya ay pareho ng nag-iisang sensor maliban na may mga hakbang para sa mga pagbabago ng screen ng LCD.

Ang coding na red sa ibaba ay kailangang baguhin. Namin nabanggit bago count na tumutukoy sa kung gaano karaming beses daliri pindutin ang sensor. Kaya, ang count = 2 ay nangangahulugan na kami ay pinindot nang dalawang beses at nagpapakita ito ng mga numero para sa unang sensor. Tuloy lang! Mangyaring tandaan na dapat mong panatilihin muli ang count zero.

Sample Code:

kung (currentMillis - previousMillis <Interval) {

kung (count == 1) {lcd.setBacklight (0); }

ibang tao kung (count == 2) {//No.1 Sensor Sensor1Show (); lcd.backlight (); }

ibang tao kung (count == 3) {//No.2 Sensor Sensor2Show (); lcd.backlight (); count = 0; }

Siyempre, ang pagsisimula ng pag-set up, deklarasyon ng mga variable sa simula, para sa sensor ay mahalaga.

Maaari mong suriin ang sample code na pinangalanang WeatherStation.ino para sa sanggunian kung wala kang ideya kung paano baguhin ang iyong mga code.