All streams
Search
Write a publication
Pull to refresh
44
0
Send message
С одной стороны вы правы. Звук в Ардуино реализуется встроенной функцией tone() очень просто.
С другой стороны, если все устройства моего умного дома буду периодически (при смене режимов) день и ночь попискивать, то через какое то время со мной, как изготовителем может случиться акт насилия )))
p.s. Кстати в той ссылке, что вы привели написано, что один из подходов обхождения «блокировки delay()» это использование прерывания, но это не его метод )))

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

void delay(unsigned long ms)
{
	uint16_t start = (uint16_t)micros();

	while (ms > 0) {
		yield();
		if (((uint16_t)micros() - start) >= 1000) {
			ms--;
			start += 1000;
		}
	}
} 

Вот код delay() из ардуины. Где там блокирование прерываний?
Реализация манчестерского кода несколько сложнее, чем описано в данной статье. В ту же тиньку 13 ее еще нужно умудриться запихнуть.
Ну delay() точно не блокирует прерывания. Все примеры с прерываниями в данной статье это иллюстрируют. Можете убедиться, примеры абсолютно рабочие, хотя там сплошные delay() в цикле.
А кто сказал, что delay делает NOP много раз? За delay() скорее всего отвечает 0-й таймер, который генерит миллисекунды для функции millis()
А что там подключать?
Пример есть в ESP8266 Core для Arduino IDE
Внешний SPI там работает:
pinMode(SCK, SPECIAL); ///< GPIO14
pinMode(MISO, SPECIAL); ///< GPIO12
pinMode(MOSI, SPECIAL); ///< GPIO13
ну а CS к любому GPIO

Там даже есть WEB-сервер с файлами на карточке!

Что не попробовал еще, это зарузку программы с карты памяти
Последняя 1.6.7?
Она еще и с ESP8266 core плохо дружит. Уже сколько народу присылало претензии, что код не хочет компилироваться. При откате на 1.6.5 все собиралось как часы
Кстати, кто мешает фигурные скобки в одну строчку использовать?
if( !( millis() % 200 ) ){ digitalWrite( 13, !digitalRead( 13 ) ); }

Это Си, великий и могучий!
Даже если бы сброс WDT работал без глюков, это не всегда спасает.
Например, делаю выгрузку LOG-фала с SD-карточки через WEB-сервер.
При размере файла 100-200к WDT гарантированно срабатывает.
Может тогда так для классики жанра?
if( !( millis() % 200 ) )digitalWrite( 13, !digitalRead( 13 ) );
Или азбуку Морзе учить и первые буквы режимов траслировать )))
Функция для тех, кто мучится, а не оставил ли он [она] включенным утюг )))
Дешево и сердито делать умную розетку на ESP8266 (если нет другой беспроводной сети типа Zigbee, Mysensors и т.д.)
Здесь делал прототип в корпусе розетки
Скетч, как кодировать и пр. прилагается

А вот перед практическим применением умных розеток я буксую. Разве что подсветку и полив растений включать по расписанию с сервера.
Переполнение памяти происходит в основном из за страшной для микроконтроллера переменной типа String. Там ведь память динамически выделяется.
Когда строка, например, для выдачи страницы, формируется сперва в памяти, а потом одним оператором выводится.

Борьба же в основном ведется с внутренним таймером WDT, срабатывающим, я так понял при невозможности выполнить базовые действия контроллера (чаще всего WiFi функции), связанные с обработкой моего кода.
Причем, отключить данный таймер у меня так и не получилось.

Например, 100% срабатывание данного таймера вызывает попытка выгрузить из контроллера по WEB интерфейсу файл размером более 200к (была у меня мысль логи на карточку писать и потом их выгружать)

Во многих местах спасают дополнительные задержки 100 и более миллисекунд, позволяющие эти самые WiFi функции отработать и успокоить WDT
Я размещал во внешней розетке.
Думаю, со встраиваемыми розетками и коробками под них тоже не должно быть проблем
Очепятка.
Сейчас разве что ESP32 дождаться с нормальным SDK
Во первых, это хобби, что то делать своими руками
Во вторых, из экономических соображений. Ваш вентилятор стоит больше 10 крублей
В в третьих, мне и моим домашним не нравится, когда вентилятор включается при принятии душа ибо дует )))
Купил супруге на АЛИ такой вот измеритель
image
Там как раз похоже ЭДС почвы и мерится
Электрод угольный и медный
image
Работает уже года 3. Только лучше в почве не оставлять его.
Показания стабильны и с сухостью почвы коррелируют нормально

А переменный ток подавать на измеритель, это просто. Можно с ШИМ выхода.
Влажность должна во всей квартире быть 40-50
Летом так и происходит
А ванной получается 60-70 после принятия душа. Грибок будет на потолке развиваться

По CO2 хорошо кухню проветривать
CO2 + датчик дыма (прозрачности воздуха) + датчик газа
Тоже планирую сделать такой

Information

Rating
Does not participate
Location
Пермь, Пермский край, Россия
Date of birth
Registered
Activity