Как программно перезагрузить ардуино через каждый час

Average Rating
0 out of 5 stars. 0 votes.

Всем привет, столкнулся с проблемой что из-за зависаний по не известным мне пока причинам перестаёт выполняться определённый код на ардуино. Кнопка ресет на микроконтроллере сразу приводит его в чёвство. Я много времени потратил на поиск фикса, но низкий скил в программировании ардуино не позволил мне это сделать. Поэтому на данном этапе я решил перегружать каждый час арудину. Для всех кто ищет готовое простое решение:

unsigned long time;

void setup() {
Serial.begin(9600);
time = millis();
}

void loop() {
if(millis() - time > 3600000){
Serial.print("reboot");
asm volatile("jmp 0x00");
}
}

Есть множество других решений программной перезагрузки, но они более сложные. Конечно будут случаи когда этот способ вам не подойдёт, тогда вам необходимо гуглить про watchdog.

Average Rating
0 out of 5 stars. 0 votes.

Привязываем датчик движения SR501 HC-SR501 к Majordomo

Average Rating
0 out of 5 stars. 0 votes.

Я уже писал про говорящие датчики дыма, а в этой статье я хотел бы описать похожую реализацию, но уже с датчиком движения. На алиекспрес я купил датчик SR501 HC-SR501 вот тут всего за $2.22. Это самая дешёвая цена, которую я смог найти на момент покупки. Так же для реализации своего проекта говорящего датчика движения вам необходимо купить микроконтроллер Arduino Nano, купил я его вот тут за $2.80. Что удобно, продавец за эту цену прилагает и USB кабель для подключения к компьютеру для заливки прошивки и питания одновременно. И Ethernet шилд для передачи данных с самого датчика в сеть. Я его купил вот тут за $3.84. Итого выходит $8.86. Вы скажите, что зачем мне городить весь этот конструктор если я могу купить за теже $10 датчик движения Xiaomi. Я купил и собрал оба варианта и вот вам моя сравнительная характеристка плюсов и минусов.

Кастомный датчик своими руками.
датчик температуры и влажности

Плюсы:
– работоспособность не зависит от китайского сервера
– нет жёсткой привязки по софту к экосистеме от Xiaomi
– не требует дополнительный шлюз (+$28) и полностью автономен
– данные передаются не по воздуху, а по кабелю
– возможность разобрать комплектующие и применять в других проектах
– возможность переписывать прошивку под новые проекты
– прокачка в сборке умных вещей и создание прошивок :)

Минусы:
– стоимость соизмерима с готовым коммерческим решением
– нет красивого дизайна и коробки
– занимает больше места
– сложность в сборке для новичка

Датчик от Xiaomi
датчик движения Xiaomi

Плюсы:
– красивый дизайн
– соизмеримая стоимость с кастомной реализацией
– возможность быстро добавить в сценарии экосистемы Xiaomi
– лёгкость в настройке и подключение

Минусы:
– работа зависит от китайского сервера
– для работы необходим шлюз (+$28)
– если не заставили работать плагин Majordomo то датчик можно использовать исключительно в экосистеме Xiaomi (как у меня :)

Если несмотря на все трудности вы всё таки решили собрать свой датчик, то читаем дальше.
Как подключать сами провода к микроконтроллеру я описывать не буду, в сети множество статей и видео на эту тему. Я же просто предложу использовать мою версию прошивки. Как она работает? Когда датчик зафиксирует движение, то значение 1 будет передано по протоколу MQTT в брокер. В своём примере я использую бесплатный сервис cloudmqtt.com, но вам настоятельно рекомендую использовать свой сервер. Например Mosquitto. В скетче, вот в этой строке

if (client.connect("Client", "login", "password"))

вам нужно будет указать свой логин и пароль к брокеру. В Majordomo у вас должен быть установлен модуль MQTT.

Его так же нужно настроить на ваш брокер указав все настройки. После этого в Majordomo будет приходит значение 1 всякий раз когда ваш датчик зафиксирует движение. В настройках модуля MQTT Majordomo, нужно приязать значение в какому-нибуть свойству, после чего вы сможете использовать его в своих сценариях. Либо вы можете сразу указать что бысрабатывал метод, как только значение измениться. А в самом методе написатьчто-то в роде:

if(gg("Kitchen.HCSR501")=='1'){
say("Зафиксировано движение",2);}
sg("Kitchen.HCSR501","0");

где Kitchen.HCSR501 имя свойства указанное в модуле MQTT куда приходит значение с датчика.
Вот и всё, если у вас возникли какие-нибуть вопросы, то задавайте в коментариях,я постараюсь ответить. Так же рекомендую посмотреть видео, ссылку на которое я оставил в самом начале поста. В нём я детально показываю всё тоже самое, но с датчиками дыма.

Average Rating
0 out of 5 stars. 0 votes.

Управление светодиодной лентой Yeelight Led Strip голосом с помощью Amazon Echo (Alexa)

Average Rating
0 out of 5 stars. 0 votes.

В предидущем посте я рассказал и показал в видео как управлять голосом цветной лампочкой от компании Yeelught. В этом посте я хотел бы показать что с такой же лёгкостью можно управлять голосом и светодиодной лентой от той же компании. В отличие от лампочки, у ленты есть механическая кнопка для управления включением, выключением и сменой цвета. Хотя сложно представить что бы у лампочки была такая кнопка :). С точки зрения настройки процесс ни чем кардинально не отличается, всё так же в оригинальном приложении нужно добавить устройство, переименовать так как бы вы хотели к нему обращаться и добавить нужные сценарии с нужным именем. К сожалению имя нельзя давать на кирилице, вернее имя дать можно, но Алекса его не распознает. Двлее в панели Алекы делаем новый поиск в разделе Skills вот и всё, можно пользоваться.

Average Rating
0 out of 5 stars. 0 votes.