1. Trang chủ
  2. » Thể loại khác

Báo cáo thực hành kỹ thuật cảm biến

20 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 20
Dung lượng 2,92 MB
File đính kèm 19020612_Nguyễn Ngọc Sơn.rar (3 MB)

Nội dung

BÁO CÁO THỰC HÀNH Bài 1: CHUYỂN ĐỔI ADC TRÊN ARDUINO 1. Phần cứng 1 biến trở 10k 1 arduino esp 8266 1 led 2. Code nạp arduinio int ledPin = D7; LED nối với chân D7 int ADCvalue = 0; Biến lưu trữ giá trị ADC int PWMvalue; Biến lưu giá trị PWM float ADC_mV; Biến lưu trữ ADC nhưng ở giá trị mV void setup() { pinMode(ledPin, OUTPUT); Thiết lập ledPin là chân đầu ra } void loop() { ADCvalue = analogRead(A0); Đọc ADC tại A0 PWMvalue = map(ADCvalue, 0, 1023, 0, 255); Biến đổi phạm vi giá trị từ 0–1023 sang thành từ 0255 analogWrite(ledPin, PWMvalue); Ghi giá trị PWMvalue ra chân LED printf(“A0 = %d ”, ADCvalue); Ghi giá trị ADC hiện thời (ở mức lượng tử) và dấu xuống dòng printf(“PWM = %d ”, PWMvalue); Ghi giá trị PWM hiện thời và dấu xuống dòng Chuyển đổi về giá trị mV ADC_mV = 3.3 (float)ADCvalue 1023 1000; printf(“Dien ap A0 = %.2f mV ”, ADC_mV); Ghi giá trị điện áp tại A0 hiện thời (mức mV) delay(1000); Dừng lại 1 giây } 3. Kết nối mạch với nhau 4. Kết quả https:photos.app.goo.glS9UQ6mcXRmLtawhs7 Bài 2: Giao tiếp I2C trên Wifi ESP8266 Phần cứng Kit Arduino Môđun AT24C32 Môđun MFRC522 Code include include define SS_PIN 10 define RST_PIN 9 define LED_1 2 led 1 gắn chân 2 define LED_2 4 led 2 gắn chân 4 MFRC522 mfrc522(SS_PIN, RST_PIN); Create MFRC522 instance. ..... Thu vien LCD I2C..... include include LiquidCrystal_I2C lcd(0x27, 16, 2);

BÁO CÁO THỰC HÀNH Bài 1: CHUYỂN ĐỔI ADC TRÊN ARDUINO Phần cứng - biến trở 10k - arduino esp 8266 - led Code nạp arduinio int ledPin = D7; //LED nối với chân D7 int ADCvalue = 0; // Biến lưu trữ giá trị ADC int PWMvalue; //Biến lưu giá trị PWM float ADC_mV; // Biến lưu trữ ADC giá trị mV void setup() { pinMode(ledPin, OUTPUT); /* Thiết lập ledPin chân đầu */ } void loop() { ADCvalue = analogRead(A0); // Đọc ADC A0 PWMvalue = map(ADCvalue, 0, 1023, 0, 255); /* Biến đổi phạm vi giá trị từ 0–1023 sang thành từ 0-255 */ analogWrite(ledPin, PWMvalue); /* Ghi giá trị PWMvalue chân LED */ printf(“A0 = %d\n”, ADCvalue);/* Ghi giá trị ADC thời (ở mức lượng tử) dấu xuống dòng */ printf(“PWM = %d\n”, PWMvalue);/* Ghi giá trị PWM thời dấu xuống dòng */ // Chuyển đổi giá trị mV ADC_mV = 3.3 * (float)ADCvalue / 1023 * 1000; printf(“Dien ap A0 = %.2f mV\n”, ADC_mV);/* Ghi giá trị điện áp A0 thời (mức mV) */ delay(1000);// Dừng lại giây } Kết nối mạch với Kết https://photos.app.goo.gl/S9UQ6mcXRmLtawhs7 Bài 2: Giao tiếp I2C Wifi ESP8266 Phần cứng - Kit Arduino - Mô-đun AT24C32 - Mô-đun MFRC522 Code #include #include #define SS_PIN 10 #define RST_PIN #define LED_1 // led gắn chân #define LED_2 // led gắn chân MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance // Thu vien LCD I2C // #include #include LiquidCrystal_I2C lcd(0x27, 16, 2); void setup() { Serial.begin(9600); // Initiate a serial communication SPI.begin(); // Initiate SPI bus mfrc522.PCD_Init(); // Initiate MFRC522 pinMode(LED_1, OUTPUT); pinMode(LED_2, OUTPUT); pinMode(KHOA, OUTPUT); noTone(BUZZER); digitalWrite(KHOA, LOW); Serial.println("Dua the vao "); Serial.println(); } void loop() { lcd.setCursor(2, 0); lcd.print("MOI QUET THE "); // Look for new cards if ( ! mfrc522.PICC_IsNewCardPresent()) { return; } // Select one of the cards if ( ! mfrc522.PICC_ReadCardSerial()) { return; } //Show UID on serial monitor Serial.print("UID tag :"); String content = ""; byte letter; for (byte i = 0; i < mfrc522.uid.size; i++) { Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "); Serial.print(mfrc522.uid.uidByte[i], HEX); content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ")); content.concat(String(mfrc522.uid.uidByte[i], HEX)); } Serial.println(); Serial.print("Message : "); content.toUpperCase(); if (content.substring(1) == "E9 E8 9C 8D" || content.substring(1) == "E9 E7 9C 8D" ) // dán ID thẻ vừa đọc từ trước { Serial.println("DUNG THE"); Serial.println(); digitalWrite(LED_1, HIGH); digitalWrite(LED_2, LOW); delay(5000); // để 5s led sáng digitalWrite(LED_1, LOW); } else { Serial.println("SAI THE"); Serial.println(); digitalWrite(LED_1, LOW); digitalWrite(LED_2, HIGH); delay(5000); digitalWrite(LED_2, LOW); digitalWrite(LED_1, LOW); } } // để 5s led sáng Kết video test: https://photos.app.goo.gl/v987WPciEy1Qqnbz8 Bài 3: Điều Chế Độ Rộng Xung - Pulse-Width Modulation Phần cứng - Kit Arduino x - Biến trở 50kΩ x - OLED x (oled bị hỏng nên không nối chân code phần oled) - Động Servo x Code #include #include "SSD1306.h" #include "Wire.h" #define SERVO_PIN D9 SSD1306 display(0x3c, D14, D15); Servo myservo; int pos = 0; void setup() { myservo.attach(SERVO_PIN); Serial.begin(115200); Serial.println(); display.init(); display.flipScreenVertically(); display.setFont(ArialMT_Plain_10); display.drawString(35, 15, "servo motor"); display.display(); } void loop() { display.clear(); for (pos = 0; pos = 0; pos -= 5) { display.drawString(35, 15, "Rotation:" + String(pos)); display.display(); myservo.write(pos); Serial.print("Pos= "); Serial.print(pos); Serial.println(); delay(100); display.clear(); } Nối chân Kết servo chuyển động qua chậm nên em không quay lại video Bài 4: Kết nối ESP8266 với cảm biến nhiệt độ, độ ẩm DHT11 Phần cứng - Kit Arduino x - Cảm biến DHT11 x - OLED x ( oled phịng thực hành bị hỏng nên khơng sử dụng nên em không nối chân code cho oled) Code #include "DHT.h" #define DHTPIN D7 // Chân nối ESP8266 với DHT11 // Uncomment whatever type you're using! #define DHTTYPE DHT11 // DHT 11 DHT dht(DHTPIN, DHTTYPE); void setup() { Serial.begin(115200); Serial.println("DHT11 test!"); dht.begin(); } void loop() { // Đợi lần đọc DHT11 delay(2000); // Đọc độ ẩm float h = dht.readHumidity(); // Đọc nhiệt độ dạng độ C (Celsius) float t = dht.readTemperature(); // Đọc nhiệt độ dạng độ F (Fahrenheit) float f = dht.readTemperature(true); // Kiểm tra xem có lỗi hay khơng, lỗi return đầu vịng lặp if (isnan(h) || isnan(t) || isnan(f)) { Serial.println("Failed to read from DHT sensor!"); return; } // Tính theo số nhiệt độ ẩm dạng độ F float hif = dht.computeHeatIndex(f, h); // Tính theo số nhiệt độ ẩm dạng độ C float hic = dht.computeHeatIndex(t, h, false); /* Chỉ số nhiệt số thể người cảm nhận được, theo mơi trường ẩm rét, mơi trường khơ nóng */ Serial.print("Humidity: "); Serial.print(h); Serial.print(" %\t"); Serial.print("Temperature: "); Serial.print(t); Serial.print(" *C "); Serial.print(f); Serial.print(" *F\t"); Serial.print("Heat index: "); Serial.print(hic); Serial.print(" *C "); Serial.print(hif); Serial.println(" *F"); } Nối chân Kết Bài 5: Kết nối ESP8266 với cảm biến áp suất Phần cứng - ESP8266 - Mơ-đun đo áp suất khí BMP180 Code Bấm vào “File → Examples →BMP180-master → ReadAndCalc”, để lấy code Nối chân Kết Bài 6: Kết nối ESP8266 với cảm biến cường độ sáng Phần cứng - ESP8266 - Mô-đun đo cường độ sáng TSL2561 Code Bấm vào “File →Examples → Adafruit_TSL2561→ sensorapi” Để lấy code thư viện Nối chân Kết Video thực nghiệm: https://photos.app.goo.gl/kc449yWS3P6WiiVL9 Bài 7: Cảm biến đo nhịp tim MAX30100 Phần cứng - Arduino ESP8266 - Cảm biến MAX30100 Code Bấm vào “File → Examples → MAX30100lib → MAX30100_Debug” Để lấy code Nối chân Kết Video thực nghiệm: https://photos.app.goo.gl/VmbviMB1iGk4gTvK7 Bài 7: Cảm biến đo khoảng cách dùng siêu âm Phần cứng - ESP8266 - Cảm biến siêu âm HC-SR04 Code const int trig = 12; // chân trig HC-SR04 const int echo = 11; // chân echo HC-SR04 void setup() { Serial.begin(9600); // giao tiếp Serial với baudrate 9600 pinMode(trig,OUTPUT); // chân trig phát tín hiệu pinMode(echo,INPUT); // chân echo nhận tín hiệu } void loop() { unsigned long duration; // biến đo thời gian int distance; // biến lưu khoảng cách /* Phát xung từ chân trig */ digitalWrite(trig,0); // tắt chân trig delayMicroseconds(2); digitalWrite(trig,1); // phát xung từ chân trig delayMicroseconds(5); // xung có độ dài microSeconds digitalWrite(trig,0); // tắt chân trig /* Tính tốn thời gian */ // Đo độ rộng xung HIGH chân echo duration = pulseIn(echo,HIGH); // Tính khoảng cách đến vật distance = int(duration/2/29.412); /* In kết Serial Monitor */ Serial.print(distance); Serial.println("cm"); delay(200); } Nối chân Kết ... không quay lại video Bài 4: Kết nối ESP8266 với cảm biến nhiệt độ, độ ẩm DHT11 Phần cứng - Kit Arduino x - Cảm biến DHT11 x - OLED x ( oled phòng thực hành bị hỏng nên không sử dụng nên em không... code thư viện Nối chân Kết Video thực nghiệm: https://photos.app.goo.gl/kc449yWS3P6WiiVL9 Bài 7: Cảm biến đo nhịp tim MAX30100 Phần cứng - Arduino ESP8266 - Cảm biến MAX30100 Code Bấm vào “File... MAX30100_Debug” Để lấy code Nối chân Kết Video thực nghiệm: https://photos.app.goo.gl/VmbviMB1iGk4gTvK7 Bài 7: Cảm biến đo khoảng cách dùng siêu âm Phần cứng - ESP8266 - Cảm biến siêu âm HC-SR04 Code const

Ngày đăng: 29/06/2022, 17:33

w