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