Но чтобы добиться этого, Джеффу Безосу пришлось много ругаться.

В общем, я не самый большой поклонник Amazon. Насколько их удобство восхитительно, я стараюсь не покупать у них, когда могу. Нельзя отрицать, что Джефф Безос заставляет своих складских рабочих работать в ужасных условиях. У меня были друзья, работающие на одном из его складов во Флориде, и даже те, которые не совсем ужасны, все равно довольно неприятны.

Тем не менее, хотя я стараюсь не набивать карманы Безоса своими мелкими покупками, я иногда обращаюсь к Amazon, если мне нужно что-то, что я не могу купить на месте очень быстро.

Например, компоненты Arduino. И когда я начал паниковать, что мне грозит оценка, если я не сделаю все вовремя, я поддался дьявольскому соблазну двухдневной доставки Amazon и кучи компонентов, чтобы следовать Arduino love- учебник по o-метру. Поскольку я не чувствовал, что разбираюсь в компонентах достаточно хорошо, чтобы делать что-либо без очень четких инструкций, я чувствовал, что следовать учебному пособию из Arduino Project Hub было моим единственным вариантом.

Я узнал, что вам абсолютно не следует покупать электронные компоненты на Amazon.

Есть много отличных конкурентов Amazon, когда вам нужны компоненты для проектов Arduino. Я видел, как многие люди ссылались на Adafruit, но я хотел, чтобы мой датчик температуры, дополнительные провода и светодиоды работали быстрее. Так что, конечно, я купил на Amazon.

Затем я провел почти неделю, возясь со своим Arduino из-за плохих компонентов. Моя первая проблема была полностью моей собственной — я случайно поджарил свой Arduino Uno, пытаясь сделать очень дорогой ночник, который не работал. Очень добрый хирург Arduino попытался починить мою плату, но оказалось, что я действительно, действительно сломал ее.

Я кратко попытался заставить их работать с платой Arduino BLE, а не с Uno. Я потратил пару часов на перепроверку проводов, возился с числами в коде и выяснял переводы градусов Цельсия в градусы Фаренгейта, но возникла новая проблема.

Я несколько раз менял датчик температуры — у меня была упаковка из пяти штук.

После того, как я заменил его всеми пятью датчиками в упаковке, я не мог понять, что еще может быть не так.

Я попытался протестировать с помощью базового блинк-кода, чтобы увидеть, может ли это пролить свет на то, что я делал неправильно.

Как оказалось, Amazon просто не продает электронные компоненты надежного качества. Каждый последний датчик в упаковке был бракованным. Датчики работали в том смысле, что они передавали данные, но данные были совершенно неверными. Все они сообщали, что общая комнатная температура в комфортабельном классе на самом деле была между -26 и -27 градусами по Цельсию. Поскольку код ищет умеренные 20 градусов по Цельсию в качестве базовой температуры, эти неправильные показания были

Получив в свои руки живой Uno, я вернулся к работе с кодом, чтобы попытаться заставить его работать. Затем, после того, как мне потребовалась еще одна благотворительная помощь Arduino, я получил работающий датчик температуры и праведно выбросил неисправную упаковку из пяти штук.

Вот идея — думайте о своей возлюбленной, когда держите читатель любви!

На самом деле это всего лишь датчик температуры, но развеселите меня. В зависимости от того, насколько верна ваша любовь, вы получите соответствующее количество светодиодов, которые загорятся.

Один свет? Твоя любовь такая же скучная и холодная, как классная комната.

Две фары? Ваша любовь здесь, но, возможно, вам нужно больше совершенствоваться!

Три огня? Вот это настоящая любовь!

Наконец-то у меня появилась работающая машина любви. Хотя было заманчиво уйти и покончить с этим после мучительного устранения неполадок, я все же хотел сделать этот проект своим собственным.

Следуя руководству, я решил подключить его тематически соответствующим образом с помощью красного, фиолетового и белого проводов. Хотя это немного усложняло устранение неполадок, они казались цветами, подходящими для машины любви. Желтый и оранжевый просто не подойдут. В любом случае, я хотел сделать больше, чем просто выбрать дурацкие цвета проводов, чтобы сделать этот проект действительно моим.

Поэтому я решил подойти к этой задаче так, как это сделал бы сборщик компьютеров: добавьте больше красивых огней!

Amazon пнул меня в последний раз неправильной маркировкой светодиодов.

Немного сложно запечатлеть светодиоды на камеру, но розовато-фиолетовый цвет, который вы видите здесь, должен быть розовым. Я подключил то, что должно было быть фиолетовым, и получил… синий. Поэтому я подключил синий.

Два очень синих цвета, которые вы видите здесь? Да, один должен быть фиолетовым, а другой должен быть синим. Это не такая уж большая проблема, но я решил, что стоит упомянуть, поскольку это был последний гвоздь в гроб посредственного рынка электронных компонентов Amazon. Эти вещи были напрямую со складов Amazon, а не у сторонних продавцов.

Покончив с синими светодиодами, я подключил больше резисторов, соединительных проводов и красных светодиодов, чтобы продолжить цветовую палитру на тему любви. Хотя этот проект требовал многократного построения схемы на разных макетных платах и ​​в общей сложности с тремя разными Arduino (считая мой упавший Uno), повторение оказалось полезным для меня. К тому времени, когда я добавлял дополнительные светодиоды, я точно знал, где выстраиваются контакты светодиода с резистором. Маленькая победа, но, тем не менее, приятная для запоминания этих основ. Исходный код можно найти в учебнике по счетчику любви, но вот как я изменил код, чтобы показать больше уровней увлечения.

const int sensorPin = A0;
// температура в помещении в градусах Цельсия
const float baselineTemp = 20.0;

void setup(){
// открываем последовательное соединение для отображения значений
Serial.begin(9600);
// устанавливаем выводы светодиода в качестве выходов
// for( ) цикл сохраняет дополнительное кодирование
for(int pinNumber = 2; pinNumber‹7; pinNumber++){
pinMode(pinNumber,OUTPUT);
digitalWrite(pinNumber, LOW);

}

void loop(){
// считываем значение на контакте 0 AnalogIn
// и сохраняем его в переменной
int sensorVal = AnalogRead(sensorPin);

// отправляем 10-битное значение датчика через последовательный порт
Serial.println("Sensor Value: ");
Serial.println(sensorVal);

// преобразуем показания АЦП в напряжение
float voltage = (sensorVal/1024.0) * 5.0;

// Отправляем уровень напряжения на последовательный порт
Serial.println(“, Volts: “);
Serial.println(voltage);

// преобразуем напряжение в температуру в градусах Цельсия
// показания датчика изменяются на 10 мВ на градус
// в техническом описании указано смещение 500 мВ
// ((напряжение — 500 мВ) умножить на 100)
Serial.println(“, градусы C: “);
float температура = (напряжение — .5) * 100;
Serial.println(температура);

// если текущая температура ниже базовой
// выключаем все светодиоды
if(temperature ‹ baselineTemp){
digitalWrite(2, LOW);
digitalWrite(3 , LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
} // если температура поднимется на 2-4 градуса, включить светодиод
else if(temperature ›= baselineTemp+2 && Temperature ‹ baselineTemp+4){
digitalWrite(2, HIGH );
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
} // если температура поднимется на 4-6 градусов, включить второй светодиод
else if(temperature ›= baselineTemp+4 && Temperature ‹ baselineTemp+6){
digitalWrite(2, ВЫСОКИЙ);
digitalWrite(3, ВЫСОКИЙ);
digitalWrite(4, НИЗКИЙ);
digitalWrite(5, НИЗКИЙ);
digitalWrite(6, LOW);
} // если температура поднимется более чем на 6 градусов, включить все светодиоды
else if(temperature ›= baselineTemp+4 && Temperature ‹ baselineTemp+5){
digitalWrite(2, HIGH );
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
}
else if(температура ›= baselineTemp+5 && температура ‹ baselineTemp+6){
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
}
else if(температура ›= baselineTemp+6){
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, ВЫСОКИЙ);
digitalWrite(5, ВЫСОКИЙ);
digitalWrite(6, HIGH);
}
задержка(100);
}

С этим новым кодом пришло время протестировать более мощную машину любви.

Большинство изменений, которые я внес, просто включали в себя добавление большего количества светодиодов. Я также понял, что как только я добавил светодиоды 5 и 6, мне нужно было добавить присутствие 5 и 6 даже к первым трем, поскольку они загорались бы случайным образом, если бы им не было сказано, что они должны быть на низком уровне для более низких настроек. Кроме того, я также сделал температурные реакции более постепенными для каждого изменения освещения. Потребовалось несколько проб и ошибок и несколько разных синхронизаций, но в итоге у меня все заработало.

В первый раз, когда я тестировал свою недавно расширенную машину любви, даже когда я яростно цеплялся за считыватель любви (датчик температуры), я не мог получить больше четырех огней. Моя любовь просто не была достаточно сильной. Мне нужно было придумать хороший способ продемонстрировать полную функциональность дополнительных светодиодов.

В конце концов, машина любви Arduino раскрыла мою самую настоящую любовь во всем мире.

В первый раз, когда я тестировал свою недавно расширенную машину любви, даже когда я яростно цеплялся за считыватель любви (датчик температуры), я не мог получить больше четырех огней. Моя любовь просто не была достаточно сильной. Мне нужно было придумать хороший способ продемонстрировать полную функциональность дополнительных светодиодов.

Моей первой мыслью было повесить свою любовную машину Arduino над огнем на плите. Это, безусловно, подвергло бы его достаточному нагреву, чтобы превысить счетчик любви. Однако это казалось немного опасным и вообще нецелесообразным подносить электронику к открытому огню, поэтому я выбрал чуть менее опасный вариант.

Поэтому я решил заручиться поддержкой моего товарища. И под моим Fellow я подразумеваю электрический чайник Fellow Stagg, который позволяет мне нагревать воду до идеальной температуры для заваривания кофе в моем Chemex.

Таким образом, машина любви раскрыла мою самую настоящую любовь во всех сферах — чашку хорошего кофе. Мне даже не нужно было подходить слишком близко к воде. Горячего пара, катящегося от кипящей воды, было достаточно, чтобы счетчик любви зашкаливал. Я хотел бы думать, что эта машина любви на самом деле достаточно точна, чтобы понять это.