Датчик качества пищи: определение свежести продуктов на Arduino
Компоненты и материалы
| Arduino UNO | × | 1 |
| Резистор 10 кОм | × | 1 |
| Adafruit Standard LCD 16x2 (белый на синем) | × | 1 |
| Макетная плата | × | 1 |
| Перемычки | × | 1 |
О проекте
Скучал, листал идеи проектов на Arduino — наткнулся на странное: «Датчик еды: измерение сопротивления». Ссылка вела на фото парня, тыкающего амперметр в огурец — это взорвало мозг.
Вот супер-простая схема: нужен только Arduino и резистор 10 кОм. Хотите LCD (у меня из SparkFun Inventor Kit) — добавляйте.
Шаг 1: Сборка

Нужно:
- Arduino UNO R3 (или любой с «мозгами»).
- Резистор 10 кОм.
- Провода.
Собирайте как на фото.
Шаг 2: Код
Идея: у разных продуктов разное сопротивление. Замеряем через Serial, делаем диапазоны в if-else, выводим название продукта.
Алгоритм:
- Проверьте диапазоны сопротивления разных продуктов через Serial.
- Создайте диапазоны для каждого.
- Выводите название в Serial (и на LCD, если есть).
Код ниже сэкономит время, но лучше сделайте сами — так научитесь.
ВНИМАНИЕ: Сопротивления ниже — для моих продуктов, у вас будут другие. Используйте свои замеры.
ВАЖНО:
Пытался замерить разрезанное яблоко — значения скакали безумно. Вероятно, химические изменения от контакта с воздухом меняют сопротивление. Экспериментируйте и пишите, что работает лучше. Огурец и клубника — отлично.
Код
Arduion Food Detect C/C++
Копируйте в Arduino IDE
const int frootSense = 0;
int frootResistance, high = 0, low = 1023;
int frootDetect;
#include <LiquidCrystal.h> // удалите, если нет LCD
LiquidCrystal lcd(12,11,5,4,3,2); // удалите, если нет LCD
void setup(){
Serial.begin(9600);
lcd.begin(16, 2); // удалите, если нет LCD
lcd.clear(); // удалите, если нет LCD
}
void loop() {
lcd.clear(); // удалите, если нет LCD
lcd.setCursor(0,0); // удалите, если нет LCD
lcd.print("Food Detect:"); // удалите, если нет LCD
lcd.setCursor(0,1); // удалите, если нет LCD
frootResistance = analogRead(frootSense);
Serial.print("Resistance:");
Serial.print(frootResistance);
Serial.print("\n");
if (frootResistance > 400 && frootResistance < 700){
Serial.print("Cucumber \n");
lcd.print("Cucumber"); // удалите, если нет LCD
} else if(frootResistance > 140 && frootResistance < 300){
Serial.print("Apple");
lcd.print("Apple"); // удалите, если нет LCD
} else {
Serial.print("No Food \n");
lcd.print("No Food"); // удалите, если нет LCD
}
delay(1000);
}
Схемы
Производственный процесс
- Наука и промышленность замороженных овощей: от сбора к столу
- Телевизионные ужины: история, производство и будущие инновации
- Датчики угарного газа: технологии, конструкция и стандарты безопасности для домашней защиты
- Полное руководство по сублимационной сушке продуктов: сохранение, производство и будущие тренды
- Производство кормов для домашних животных: от ингредиентов к регулированию
- Датчики дыма: спасающая жизнь технология, история и современные инновации
- Преобразование RF в DC с Raspberry Pi: сборка и отладка детектора огибающей
- Создание детектора вора на базе Raspberry Pi — пошаговое руководство
- Сборка Bluetooth-робота-шпиона на Arduino с управлением с телефона
- FlickMote: жестовое IR-пульт для умного дома на Arduino 101 и ультразвуковом датчике