Skip to content

MinDl1/labs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laboratory works

About project

Labs is a project based on different hardware and software.
The project is made possible by MinDl, Gryn69, Goremika26, IrinaBelous, KseniiaFilippova who've generously donated dozens of hours in code development and upkeep.

Laboratory 1

Collaborators

Documentation

Laboratory 1.1

Lab_1.1

Lab_1.1 is a project based on Arduino that allows you to control the brightness of a three-color LED from the keyboard.

Lab_1.1 source code is made available on Arduino Uno.

Documentation

Narrative documentation:

Hardware and Software:

Hardware:

Minimum kit(to complete task_0 - task_2 one by one):
  • Computer - 1
  • Arduino UNO - 1
  • Wire for connecting an Arduino UNO to a computer - 1
  • Small breadboard - 1
  • RGB LED - 1
  • Wires Male-Male - 4
  • 220 Ohm resistor- 1

lab_1.1 Minimum kit for Project

Maximum kit(to complete all tasks one by one):
  • Computer - 1
  • Arduino UNO - 1
  • Wire for connecting an Arduino UNO to a computer - 1
  • Small breadboard - 1
  • RGB LED - 3
  • Wires Male-Male - 19
  • 220 Ohm resistor - 3
  • Slider switches - 6

lab_1.1 Maximum kit for Project

Base scheme for Project

lab_1.1 task_1_image

lab_1.1 task_0_Circuit

DFD

lab_1.1 DFD

Other images

Other images with connection in /lab_1/lab_1.1/images

Software:

Our code has clear comments, but for you we will write the main points here.
This is a base code for our Project.

//For Arduino Uno
//Determining which pins the RGB LED is connected to
#define R_PIN 6
#define G_PIN 3
#define B_PIN 5

//setup code
void setup() {
  //assign the pins a mode of operation(output or input)
  pinMode(R_PIN, OUTPUT); 
  pinMode(G_PIN, OUTPUT);
  pinMode(B_PIN, OUTPUT);
}

//loop that will nonestop work on Arduino UNO
void loop() {
  //on RGB LED(Red) for second and off
  on_off_diod(R_PIN);
  //on RGB LED(Green) for second and off
  on_off_diod(G_PIN);
  //on RGB LED(Blue) for second and off
  on_off_diod(B_PIN);
}

//function for on and off RGB LED with one second delay (Function for turning on and off with one second delay the electric current on the pin)
void on_off_diod(int pin){
  //on RGB LED on pin (Start electric current transmission on the pin)
  digitalWrite(pin, 1);
  //second delay
  delay(1000);
  //off RGB LED on pin (Stop electric current transmission on the pin)
  digitalWrite(pin, 0);
}

Other code in folder in /lab_1/lab_1.1/code

Tinkercad

Click to see task_0

lab_1.1 Task_0 in Tinkercad
This circuit and code allows you to control the brightness of a RGB LED from the keyboard to make one of 16.7 million. For work you need to write r(number)g(number)b(number). For example:

  • Red - r9g0b0
  • Green - r0g9b0
  • Blue - r0g0b9
Click to see task_1

lab_1.1 Task_1 in Tinkercad
This circuit and code allows you to on and off the brightness of a RGB LED.
It works like this, one second is red, one second is green, one second is blue.
You can't on or off, it just work after upload on Arduino Uno.

Click to see task_2_V1

lab_1.1 Task_2_V1 in Tinkercad
This circuit and code allows you to on and off the brightness of a RGB LED. It has one mode. You can on and off RGB LED if you write 'g'

Click to see task_2_V2

lab_1.1 Task_2_V2 in Tinkercad
This circuit and code allows you to on and off the brightness of a RGB LED. It has two modes:

  • First mode work like, you need to write r(number)g(number)b(number). Like in task_0. To on off this mode you need to write 'q'.
  • Second mode work like, one second is red, one second is green, one second is blue. Like in task_1. To on off this mode you need to write 'w'.
Click to see task_3-4

lab_1.1 Task_3-4 in Tinkercad
This circuit and code allows you to on and off the brightness of a Three RGB LEDs. It has two modes:

  • First mode work like, you need to write r(number)g(number)b(number). Like in task_0. To on off this mode you need to write 'q'.
  • Second mode work like, one second is red, one second is green, one second is blue. Like in task_1. To on off this mode you need to write 'w'.
    The code is the same as the code in task_2_V2
Click to see task_5_V1

lab_1.1 Task_5_V1 in Tinkercad
This circuit and code allows you to on and off the brightness of a Three RGB LEDs. It has three modes:

  • First mode work like, you need to write r(number)g(number)b(number). Like in task_0. To on off this mode you need to write 'q'.
  • Second mode work like, one second is red, one second is green, one second is blue. Like in task_1. To on off this mode you need to write 'w'.
  • Third mode work like, first RGB LED red, second RGB LED green, thrid RGB LED blue. To on off this mode you need to write 'e' and switch all slider switches.
    The code is the same as the code in task_3-4
Click to see task_5_V2

lab_1.1 Task_5_V2 in Tinkercad
This circuit and code allows you to on and off the brightness of a Three RGB LEDs. It has two modes:

  • First mode work like, one second is red, one second is green, one second is blue. Like in task_1. To on off this mode you need to write 'w'.
  • Second mode work like, first RGB LED red, second RGB LED green, thrid RGB LED blue. To on off this mode you need to write 'e'.

Language & Applications documentation:

Building

For build code and upload on Arduino, you need to download Arduino IDE.
This code work only for Arduino Uno.


Laboratory 1.2

Lab_1.2

Monkey ping pong
Lab_1.2 is a project based on Arduino that allows you to play ping-pong with flexible sensor.

Lab_1.2 source code is made available on Arduino Uno.

Documentation

Narrative documentation:

Hardware and Software:

Hardware:

Minimum kit(to complete task_0):
  • Computer - 1
  • Arduino UNO - 1
  • Wire for connecting an Arduino UNO to a computer - 1
  • Small breadboard - 1
  • Buttons - 2
  • Set of wires
  • 4 kΩ Resistor - 4
  • Flexible sensor - 2

Minimum kit for Project

Maximum kit(to complete all tasks one by one):
  • Computer - 1
  • Arduino UNO - 1
  • Wire for connecting an Arduino UNO to a computer - 1
  • Small breadboard - 1
  • Buttons - 2
  • Set of wires
  • 4 kΩ Resistor - 6
  • Flexible sensor - 4

Maximum kit for Project

Base scheme for Project

Task_0_image

Task_0_Circuit

DFD

lab_1.2 DFD

Other images

Other images with connection in /lab_1/lab_1.2/images

Software:

Our code has clear comments, but for you we will write the main points here.
This is a base code for our Project.

Arduino code

/*
Сuитыватель показаний датчиков Контекст: Arduino

Сuитывает показания с двух аналоговых входов и двух цифровых входов и выводит их знаuения.

Подклюuения:
Аналоговые датuики — к контактам аналогового ввода A0 и A1 Кнопки — к контактам цифрового ввода 4 и 5
*/


const int leftSensor = A0; // аналоговый ввод для левой руки 
const int rightSensor = A1; // аналоговый ввод для правой руки 
const int resetButton = 4; // цифровой ввод для кнопки сброса 
const int serveButton = 5; // цифровой ввод для кнопки подаuи

int leftReading = 0;	// показания датuика левой руки 
int rightReading = 0;	// показания датuика правой руки 
int resetReading = 0;	// данные кнопки сброса
int serveReading = 0;	// данные кнопки подаuи

void setup() {
// настраиваем последовательное соединение: 
  Serial.begin(9600);
// configure the digital inputs: 
  pinMode(resetButton, INPUT); 
  pinMode(serveButton, INPUT);
}

void loop() {
// сuитываем показания аналоговых датuиков: 
  leftReading = analogRead(leftSensor); 
  rightReading = analogRead(rightSensor);

// сuитываем показания цифровых датuиков: 
  resetReading = digitalRead(resetButton); 
  serveReading = digitalRead(serveButton);

// Выводим результаты на экран: 
  Serial.print(leftReading); 
  Serial.print(','); 
  Serial.print(rightReading); 
  Serial.print(','); 
  Serial.print(resetReading); 
  Serial.print(',');
/* выводим на экран последнее показание датuика
с помощью функции printlin(), uтобы каждый набор из uетырех показаний был на отдельной строке:
*/
Serial.println(serveReading);
}

Processing code

import processing.serial.*;

Serial myPort;
String resultString; // Строuная переменная для результатов

void setup() {
  size(480, 130); // устанавливаем размер окна апплета 
  printArray(Serial.list()); // Выводим на экран все
  // доступные последовательные порты
  
  // Hа моем компьютере порт микроконтроллера обыuно
  // первый порт в списке,
  // поэтому я открываю Serial.list()[0].
  // Измените 0 на номер последовательного порта,
  // к которому подклюuен ваш микроконтроллер: 
  String portName = Serial.list()[1];
  // открываем последовательный порт:
  myPort = new Serial(this, portName, 9600);
  
  // сuитываем байты в буфер, пока не дойдем до символа
  // перевода строки (ASCII 10): 
  myPort.bufferUntil('\n');
}

void draw() {
  // задаем цвет фона и заливки для окна апплета: 
  background(#044f6f);
  fill(#ffffff);
  // выводим строку в окне:
  if (resultString != null) { 
    text(resultString, 10, height/2);
  }
}

/* Метод serialEvent() исполняется автоматиuески в программе каждый раз, когда в буфер записывается
байт со знаuением, определенным в методе bufferUntil() в процедуре setup():
*/

void serialEvent(Serial myPort) {
  // Сuитываем данные из последовательного буфера: 
  String inputString = myPort.readStringUntil('\n');
  
  // Отбрасываем символы возврата каретки
  // и перевода строки из строки ввода: 
  inputString = trim(inputString);
  // Оuищаем переменную resultString: 
  resultString = "";
  
  // Разделяем входную строку по запятым и преобразовываем
  // полуuенные фрагменты в целые uисла:
  int sensors[] = int(inputString.split(", "));
  
  // Добавляем знаuения к строке результата:
  for (int sensorNum = 0; sensorNum < sensors.length; sensorNum++) {
    resultString += "Sensor " + sensorNum + ": ";
    resultString += sensors[sensorNum] + '\t';
  }
  // Выводим результат на экран: 
  println(resultString);
}

Other code in folders in /lab_1/lab1.2/code

Tinkercad

Click to see Task_0

lab_1.2 Task_0 in Tinkercad
This circuit and code allows you to control 2 ping-pong paddles with flexible sensor and show you the game.

Click to see Task_0_Arduino_ultrasonic_sensor

lab_1.2 Task_0_Arduino_ultrasonic_sensor in Tinkercad
This circuit and code allows you to control 2 ping-pong paddles with ultrasonic sensor and show you the game.

Click to see Task_1-3

lab_1.2 Task_1-3 in Tinkercad
This circuit and code allows you to control 4 ping-pong paddles with flexible sensor and show you the game.

Click to see Task_1-3_Arduino_ultrasonic_sensor

lab_1.2 Task_1-3_Arduino_ultrasonic_sensor in Tinkercad
This circuit and code allows you to control 4 ping-pong paddles with ultrasonic sensor and show you the game.

Click to see Task_4
  • Not done

Language & Applications documentation:

Building

For build code and upload on Arduino, you need to download Arduino IDE and Processing to see the game and play.
This code work only for Arduino Uno.


Laboratory 1.3

Lab_1.3

Lab_1.3 Это проект основанный на Arduino который позволяет обнаружить нарушение климатических условий.

Lab_1.3 source code is made available on Arduino Uno.

Documentation

Narrative documentation:

Hardware and Software:

Hardware:

Maximum kit(to complete all tasks one by one):
  • Computer - 1
  • Arduino UNO - 1
  • Wire for connecting an Arduino UNO to a computer - 1
  • Small breadboard - 1
  • DHT11 - 1
  • LCD 16X2 I2C - 1
  • MQ-3- 1
  • Flame sensor - 1
  • 220 Ω resistor - 2
  • LED - 1
  • RGB LED - 1
  • Buzzer - 1
  • Water pump - 1
  • Relay - 1
  • 9V battery - 1
  • Ground humidity sensor - 1
  • Wires kit
Last scheme for Project

lab_1.3 Task_1_image

DFD

lab_1.3 DFD

Other images

Other images with connection in /lab_1/lab_1.3/images

Software:

Our code has clear comments, but for you we will write the main points here.
This is a base code for Task_0.3 for our Project.

// Подключение пинов
#define SENSOR_FLAME_PIN 4
// Переменная для определения огня
int flame;
// Настройка Arduino 
void setup()
{
  // Определения режимов для пинов
  pinMode(SENSOR_FLAME_PIN, INPUT);
  // Частота для работы Arduino с компьютером по USB порту
  Serial.begin(9600);
}
// Цикл который будет бесконечно работать на Arduino 
void loop() {
  // Считывание данных с сенсора
  flame = digitalRead(SENSOR_FLAME_PIN);
  // Если огогнь есть
  if (flame == 1){
    // Выводить сообщение  "Обнаружено пламя" на компьютер
    Serial.println("Обнаружено пламя");
    // Задержка 150 мс
    delay(150);
  } 
  // Если пламени нет
  else{
    // Выводить сообщение  "Пламя не обнаружено" на компьютер
    Serial.println("Пламя не обнаружено");
  }
 // delay(500);
}

Other code in folders in /lab_1/lab_1.3/code/

Electrical circuit

Click to see Task_0.1

lab_1.3 Task_0.1

Принцип работы этой схемы заключается в том, что датчик DHT11 измеряет температуру и влажность окружающй сренды, считывает эти данные, через Arduino передаёт на дисплей LCD 16X2 I2C, который выводит эти данные.

Click to see Task_0.2

lab_1.3 Task_0.2

Принцип работы этой схемы заключается в том, что датчик MQ-3 измеряет количество углексилого газа в воздухе и через Arduino посылает показатели на компьютер.

Click to see Task_0.3

lab_1.3 Task_0.3

Принцип работы этой схемы заключается в том, что датчик Flame Sensor при обнаружении пламени посылает сигнал на Arduino, запускает звуковой и световой сигнал и посылает показатели на компьютер.

Click to see Task_0.4

lab_1.3 Task_0.4

Принцип работы этой схемы заключается в том, что датчик влажности почвы измеряет уровень влажности окружающей среды, если уровень влажности ниже заданных показателей, посылает сигнал на Arduino, который включает водяной насос для увлажнения и выводит сообщение на компьютер "Pump ON" и "Pump OFF".

Click to see Task_1-6

lab_1.3 Task_1-6

lab_1.3 Task_1-6

Объединяем схемы с Task_0.1 по Task_0.4 в одну с помощью беспаечной платы.
Добавляем звуковое и световое оповещения индивидульное для каждого датчика.
Вся информация теперь выводится на дисплей LCD 16X2 I2C.
Теперь водяной насос включается не только от датчика влажности почвы, но и от датчика влажности воздуха.

Language & Applications documentation:

Building

For build code and upload on Arduino, you need to download Arduino IDE.
This code work only for Arduino Uno.


Laboratory 2

Collaborators

Documentation

Laboratory 2.1

Lab_2.1

Lab_2.1 - это проект на базе Arduino, который позволяет протестировать возможность использования Arduino в качестве сервера, а именно создать собственную точку доступа, подключив Arduino UNO R3 к ESP32. Кроме того, разрабатывается многостраничный веб-сайт с автоматическим обновлением данных системы климат-контроля.

Lab_2.1 Проект можно выполнить на Arduino Uno R3 и NodeMCU 32S.

Documentation

Narrative documentation:

Hardware and Software:

Hardware:

Maximum kit(to complete all tasks one by one):
  • Микроконтроллер Arduino Uno R3 – 1 шт.
  • Кабель usb type-b/usb type-a
  • Микроконтроллер ESP32S NodeMCU – 1 шт.
  • Кабель microUSB/usb type-a
  • Компьютер - 1 шт.
  • Беспаечная макетная плата – 1 шт.
  • Датчик температуры и влажности DHT11 – 1шт.
  • Датчик влажности почвы YL38 – 1шт.
  • Датчик огня YG1006 – 1 шт.
  • Датчик газа MQ 135 – 1 шт.
  • Дисплей LCD1602 – 1 шт.
  • Buzzer module Low Level Trigger – 1 шт.
  • Реле 1-5 В – 1 шт.
  • Водяной насос – 1 шт.
  • Резистор 10 Ом – 2 шт.
  • Светодиод LED красный – 1 шт.
  • Светодиод LED зеленый – 1 шт.
  • Источник питания 9 В – 1 шт.
  • Набор проводов - 1 шт.
Base scheme for Project

lab_2.1 task_1-6_image

lab_2.1 task_1-6_Circuit

DFD

lab_2.1 DFD

Other images

Other images with connection in /lab_2/lab_2.1/images

Visio

Visio in folder in /lab_2/lab2.1/visio

Software:

Our code has clear comments.

Code in folder in /lab_2/lab_2.1/code

Language & Applications documentation:

Libraries

  • Wire.h - для работыс i2c
  • DHT.h - для работы с датчиком DHT11
  • MQ135.h - для работы с датчиком MQ135
  • WiFi.h - для подключению к WiFi
  • WebServer - для создания сервера из esp32
  • LiquidCrystal_I2C.h - для работы с LCD i2c дисплея

Building

For build code and upload on Arduino NodeMCU 32S, you need to download Arduino IDE.
This code work only for Arduino Uno and NodeMCU 32S.


Laboratory 2.2

Lab_2.2

Lab_2.2 - Второй этап носит за собой функцию определения возможностей взаимодействия пользователя с приложением посредством работы с RFID модулем. Также анализируется допустимость переноса данных в клиент сервер и создания многостраничного сайта с различными пользователями с возможностью отправки уведомлений на почту.

Lab_2.2 Проект можно выполнить на NodeMCU 32S.

Documentation

Narrative documentation:

Hardware and Software:

Hardware:

Maximum kit(to complete all tasks one by one):
  • Микроконтроллер ESP32S NodeMCU - 1 шт.
  • Кабель microUSB/usb type-a
  • Компьютер - 1 шт.
  • Buzzer madule Louleveltrigger - 1 шт.
  • Беспаечная макетная плата - 1 шт.
  • Дисплей LCD1602 - 1 шт.
  • Резистор 10 Ом - 2 шт.
  • Светодиод LED красный - 1 шт.
  • Светодиод LED зеленый - 1 шт.
  • RFID-модуль RC522 - 1 шт.
Base scheme for Project

Task_1-6_image

Task_1-6_Circuit

DFD

lab_2.2 DFD

Other images

Other images with connection in /lab_2/lab_2.2/images

Visio

Visio in folder in /lab_2/lab2.2/visio

Software:

Our code has clear comments.

Code in folder in /lab_2/lab2.2/code

Language & Applications documentation:

Libraries

  • Wire.h - для работыс i2c
  • ESP32_MailClient.h - для отправки email
  • WiFi.h - для подключению к WiFi
  • WebServer - для создания сервера из esp32
  • LiquidCrystal_I2C.h - для работы с LCD i2c дисплея
  • MFRC522.h - для работы с RFID
  • SPI.h - для устройств поддерживающих spi протокол

Building

For build code and upload on Arduino NodeMCU 32S, you need to download Arduino IDE.
This code work only for NodeMCU 32S.


Laboratory 2.3

Lab_2.3

Lab_2.3 - На третьем этапе производится анализ результатов, полученных на первых двух этапах и последующее создание телеграм бота с интерфейсом напоминаний.

Lab_2.3 Проект можно выполнить на NodeMCU 32S.

Documentation

Narrative documentation:

Hardware and Software:

Hardware:

Maximum kit(to complete all tasks one by one):
  • Беспаечная макетная плата - 1 шт.
  • Компьютер - 1 шт.
  • Дисплей LCD1602 - 1 шт.
  • Плата ESP32S NodeMCU - 1 шт.
  • Кабель microUSB/usb type-a
  • Датчик звука ky – 038 - 1 шт.
  • Датчик света ky – 018 - 1 шт.
Last scheme for Project

lab_2.3 Task_1-6_image

Task_1-6_Circuit

DFD

lab_2.3 DFD

Other images

Other images with connection in /lab_1/lab_2.3/images

Visio

Visio in folder in /lab_2/lab2.3/visio

Software:

Our code has clear comments.

Code in folder in /lab_1/lab_2.3/code/

Language & Applications documentation:

Libraries

  • WiFi.h - для подключению к WiFi
  • FastBot.h - esp32 как сервер для телеграмм бота

Building

For build code and upload on Arduino NodeMCU 32S, you need to download Arduino IDE.
This code work only for NodeMCU 32S.


Laboratory 3

Collaborators

Documentation

Laboratory 3.1

Lab_3.1

Lab_3.1 - На первом этапе производится проверка возможности использования компьютера в локальной сети в качестве сервера и оценка работы Arduino Uno в роли микроконтроллера, к которому подключены датчики мониторинга пространства.

Lab_3.1 Проект можно выполнить на Arduino Uno R3 и NodeMCU 32S.

Documentation

Narrative documentation:

Hardware and Software:

Hardware:

Maximum kit(to complete all tasks one by one):
  • Микроконтроллер Arduino Uno R3 – 1 шт.
  • Кабель usb type-b/usb type-a
  • Компьютер - 1 шт.
  • Набор проводов - 1 шт.
  • Датчик движения HC-SR501
  • Серводвигатель TowerPro SG90 9G
Base scheme for Project

lab_3.1 task_1-6_Circuit

DFD

lab_3.1 DFD

Other images

Other images with connection in /lab_3/lab_3.1/images

Visio

Visio in folder in /lab_3/lab3.1/visio

Software:

Our code has clear comments.

Code in folder in /lab_3/lab_3.1/code

Language & Applications documentation:

Libraries

  • Arduino Programm language(библиотеки: Servo.h)
  • Python(Библиотеки: sqlite3, serial, datetime, csv).

Building

For build code and upload on Arduino NodeMCU 32S, you need to download Arduino IDE.
This code work only for Arduino Uno and NodeMCU 32S.


Laboratory 3.2

Lab_3.2

Lab_3.2 - На втором этапе исследуется система оповещения пользователя при помощи звукового сопровождения.

Lab_3.2 Проект можно выполнить на NodeMCU 32S.

Documentation

Narrative documentation:

Hardware and Software:

Hardware:

Maximum kit(to complete all tasks one by one):
  • Buzzer madule Louleveltrigger - 1 шт.
  • Дисплей LCD1602 – 1 шт.
  • Компьютер - 1 шт.
  • Микроконтроллер Arduino UNO R3 - 1 шт.
Base scheme for Project

Task_1-6_Circuit

DFD

lab_3.2 DFD

Other images

Other images with connection in /lab_3/lab_3.2/images

Visio

Visio in folder in /lab_3/lab3.2/visio

Software:

Our code has clear comments.

Code in folder in /lab_3/lab3.2/code

Language & Applications documentation:

Libraries

  • В Arduino Programm language(Библиотеки: LiquidCrystal_I2C.h, GyverMAX7219.h)
  • Python(Библиотеки: sqlite3, os, sys, pathlib, django)

Building

For build code and upload on Arduino NodeMCU 32S, you need to download Arduino IDE.
This code work only for NodeMCU 32S.


Laboratory 3.3

Lab_3.3

Lab_3.3 - На третьем этапе рассматривается вероятность использования компьютера как сервера с подключенным к нему микроконтроллером Raspberry PI. Также производится подключение системы мониторинга с использованием анализа видеонаблюдения.

Lab_3.3 Проект можно выполнить на NodeMCU 32S.

Documentation

Narrative documentation:

Hardware and Software:

Hardware:

Maximum kit(to complete all tasks one by one):
  • Микроконтроллер Raspberry pi 4 b
  • Компьютер - 1 шт.
  • Кабель usb type-a и type-b .
  • Camera 2.2 - 1 шт.
Last scheme for Project

Task_1-6_Circuit

DFD

lab_3.3 DFD

Other images

Other images with connection in /lab_1/lab_3.3/images

Visio

Visio in folder in /lab_3/lab3.3/visio

Software:

Our code has clear comments.

Code in folder in /lab_3/lab_3.3/code/

Language & Applications documentation:

Libraries

  • Python (picamera2, opencv)

Building

For build code and upload on Arduino NodeMCU 32S, you need to download Arduino IDE.
This code work only for NodeMCU 32S.


Wishes

Use this project wisely.
Best wishes

About

Labs is a project based on different hardware and software.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •