С уважением Администрация Hello-Vitebsk.
Мы рады объявить о выпуске phpBB "Richard 'D¡cky' Foote" 3.
Эта версия является техническим выпуском для решения различных ошибок и не добавляет каких либо новых функций.
Модераторы больше не освобождаются от одобрения сообщений, право "может писать без одобрения" применяется всех остальных пользователей.
Теперь мы отвергаем очень долго входы пароль сразу в целях экономии ресурсов во время проверки пароля???
Мы настоятельно рекомендуем вам обновиться как можно скорее.
Наша служба поддержки будет поддерживать только PHPBB 3.
Вы можете скачать русифицированный установочный пакет phpBB 3.
Теги темы скачать phpBB 3.
А второй раз всё на месте осталось.
Вчера днём обновил все свои форумы до версии 3.
Я - совсем новичок, чайник в квадрате, но передо мной стоит задача обновить форум с версии 3.
Но вот вопрос: имя базы данных, которое прописано в программе sdx, вкладка "Экспорт базы данных", стоит в окошке по умолчаниюне совпадает с именем базы данных, которое указано в файле config.
Какое имя из них актуальное?
Дошел до шага " Далее возвращаемся на главную страницу Denver ищем программку PhpMyAdmin, заходим, находим нашу базу данных и жмем в верхнем ряду навигации ИМПОРТ, загружаем дамп Скачать драйвера на f 401 unauthorized сделанный в Шаге 2.
Что бы это значило?
Размер, действительно, немаленький - 20 МБт.
Заранее признателен за ответ.
Если что попутал, простите - это мое первое сообщение на данном форуме.
Зачем делать три копии в разных кодировках?
Мне бы с одной разобраться.
Мне нужна резервная копия на тот случай, если что-то в форуме "крякнется" при обновлении с 3.
Заодно я хотел бы загрузить ее через Denwer, раз уж я его установил на компе.
Для загрузки в Денвер нужна кодировка UTF-8 без BOM?
Да, у меня на хостинге сделано несколько БД.
Только делал их не я, а программист, которого уже не найти, и я, честно говоря, даже и не знаю, что в какой БД находится.
В корень форума я и так поставил SXD иначе бы как я сделал резервную копию на 20 МБт.
В данный момент у меня "затык" вот в каком месте.
Шаг 1 - "После во вкладке УТИЛИТЫ кликните на пункт заведение Новых БД и пользователей MySQL".
Новую скачать драйвера на f 401 unauthorized создал, указав имя БД из файла config.
Рано или поздно приходится столкнуться с необходимостью замены bootloader загрузчика микроконтроллера.
В моём случае остро потребовался функционал загрузчикаиз-за реализованного в нем сторожевого таймера watchdog.
Плюс ко всему, он весит в четыре раза меньше стандартного и освобождает дополнительно 1.
Сразу хочу отметить, что Optiboot залит по умолчанию на Arduino UNO и Mega 2560.
У меня в наличии имелись: Arduino Nano и Arduino Pro Mini на чипах ATmega328P-AU, и просто пачка "голых" ATmega328P-PU.
Есть несколько простых способов перезаписать загрузчик которыми я воспользовался это далеко не все возможные варианты.
Использование программатора USBasp Как по мне, это самый простой способ не требующий никакой магии.
Он представляет из себя плату с ATmega8 или ATmega128, USB на входе и 10Pin ICSP интерфейс на выходе.
От стандартного 6Pin интерфейса он отличается лишь тремя дополнительными пинами GND и одним не использующимся NC.
Совмещаем одноименные контакты программатора с платой Arduino.
Если готового разъема нет, то используем соответствующие ноги на плате Arduino или на самом микроконтроллере.
В случае с последним, конденсаторы можно выкинуть из схемы.
Он является устаревшим и более нас не интересует!
В данном случае все достаточно только перезапустить среду разработки.
Сам архив прикреплен к посту.
Выбираем программатор USBasp И жмем "Записать загрузчик".
Только в этом случае будет выбран программатор для заливки, а соответствующая подсказка изменится за " Загрузить через программатор".
В ходе данной операции могут сыпаться ошибки указывающие на проблемы с USBasp.
Использование Arduino в качестве программатора Нам понадобится вторая плата Arduino.
Прошиваем её скетчем ArduinoISP, идущим по умолчанию со средой разработки.
После этого Arduino становится полноценным программатором.
Изменяем в Arduino IDE программатор на Arduino as ISP, выбираем необходимую плату, к которой подключен наш вновь испеченный программатор и "прожигаем" загрузчик.
Если необходимо записать какой либо скетч, то делаем это также при зажатой клавиши SHIFT как и в первом варианте.
PS: По умолчанию в среде разработки имеются файлы загрузчика optiboot и скачивать ничего не нужно.
Достаточно выбрать плату Arduino UNO и перезаписать загрузчик.
Но в этом случае Ваше детище станет определяться именно как UNO, даже если на самом деле это NANO, Pro Mini или еще что-то.
Чтобы решить данную задачу, необходимо временно отключить обязательную проверку подписи драйверов.
Для начала, необходимо скачать сами драйвера.
Для этого идем на автор Thomas Fischlскачиваем архив с последней обновленной версией и распаковываем в удобную для Вас директорию.
Теперь нажимаем и удерживая клавишу SHIFT отправляем компьютер на перезагрузку.
Это заставит Windows выйти в режим восстановления.
Выбираем "Поиск и устранение неисправностей".
После всех этим манипуляций мы попадаем в меню выбора параметров загрузки.
Выбрать один из перечисленных вариантов можно клавишами от F1 до F9, но нас интересует вариант F7 - "отключить обязательную проверку подписи драйверов".
Далее все по стандарту.
Идем в список устройств, ищем наш не установленный USBasp программатор и обновляем драйвер с локального компьютера указав путь до распакованного ранее архива.
Во время установки драйвера Вы увидите предупреждение об отсутствии электронной подписи.
Игнорируем его и продолжаем установку.
После этих, не хитрых манипуляций, мы получаем установленный в системе USBasp программатор.
Создайте аккаунт или войдите для комментирования Вы должны быть пользователем, чтобы оставить комментарий Всем доброго времени суток, сегодня поговорим о esp8266 и парсинге погоды с интернета.
Это довольно интересная альтернатива метеостанции описанной в параллельной теме и думаю, что первый пост стоит посвятить базовой программе - своего рода фундаменту, на базе которого можно производить дальнейшие модификации от подключения дисплея до прикручивания MQTT протокола для системы умного дома.
О самом проекте OpenWeatherMap много написано в сети, но я познакомился с ним недавно, как и с микроконтроллером esp8266 который мы будем программировать в доработанной среде Arduino IDE.
Но перед тем как начать, необходимо посетить сайт, с которого мы будем вытаскивать данные об окружающей среде.
И так, OpenWeatherMap предоставляет нам удобный и бесплатный API.
На момент публикации статьи 05.
Регистрируемся и в личном кабинете переходим в раздел API Keys.
По умолчанию нам уже дадут один ключ, можно воспользоваться им, а можно создать новый и обозвать его более понятным именем.
Это довольно актуально, если планируется использовать несколько устройств, да и вообще должен быть порядок везде.
Без данного ключа получить доступ к API невозможно.
Осталось определиться с интересующей нас местностью.
API гласит, что есть несколько вариантов: По названию города и коду страны По уникальному идентификатору города По географическим координатам По почтовому индексу Мне показалось удобным использовать географические координаты.
При этом сервер сам найдет ближайший населенный пункт, а по сути, ближайшую метеостанцию и предоставит данные с неё.
Данные по необходимым для Вас координатам можно взять прямо с сайта, воспользовавшись любезно предоставленной картой.
При выборе населенного пункта долгота и широта будут указаны в описании.
В начале поста я оставил ссылку на ресурс, подробно описывающий все процедуры необходимые, чтобы завести контроллер использовать Arduino IDE для прошивки.
Но я пошел еще более простым путем и приобрел ESP-12E с обвесом под NodeMCU, это позволило прошивать контроллер без нажатия кнопок RESET и FLASH.
Получать данные от сервера можно в двух форматах, XML и JSON.
И так, на данный момент мы собираем: weather.
WiFi connected IP address: 10.
Думаю, что это будет хорошей отправной точкой для дальнейшего развития проекта.
Внимание: Очень много фотографий в статье!
В один обыденный рабочий день ко мне обратились мои друзья и по совместительству коллеги по работе с идеей сделать замок с радиочастотной идентификацией.
Электронный замок должен обслуживать дверь в рабочее помещение.
Все бы хорошо, но дверь далеко не домашняя, сделана из метала и стоит в металлической коробки.
Собрать электронную начинку замка и написать программу для микроконтроллера - решаемая задача, но как механически удержать такого монстра в зафиксированном состоянии?
Но то, что для меня казалось проблемой, было воспринято моими друзьями с ухмылкой, и мне показали здоровый электромагнит.
Точно такие же электромагниты используются в домофонах.
Даже не хочу знать, откуда они его достали, но меня увиденное воодушевило.
Задача поставлена, приступаем к реализации!
Техническое задание Замок должен аутентифицировать хозяев без физического контакта пользователя с устройством Память должна вмещать не менее двух десятков ключей Устройство должно иметь возможность добавлять в память новые ключи Добавлять новые ключи можно только, используя специальный, мастер ключ Мастер ключ должен также иметь возможность открывать замок Должна быть реализована возможность обнуления списка используемых ключей, в том числе и удаление мастер ключа Замок должен иметь возможность открываться изнутри по нажатию на кнопку как в домофоне Все описанные пункты должны быть просты в использовании и не требовать знания программирования Реализация За основу было решено взять клон Arduino UNO с ATmega328p на борту в паре с RFID NRF сканером RC522.
Сам сканер является очень удачным выбором т.
Данные чипы используются в различных карточках метро и прочего общественного транспорта, ключах современных домофонов, различных умных браслетах и носимой электроники.
У братьев Китайцев можно купить даже кольца с RFID NRF меткой.
Некоторые чипы имеют энергонезависимую память небольшого объема.
Прокручиваем решение в голове Хранить все ключи будем в энергонезависимой памяти микроконтроллера EEPROM.
Хорошее и как мне кажется единственное решение.
ATmega328p имеет 1kB памяти, RFID NRF ключи содержат уникальный номер размером от 4 до N байт.
Если уровнять все типы ключей, то читать мы будем только первый четыре байта любого ключа.
Но необходимо знать точное их количество чтобы не читать пустую память, иначе можно взломать замок так, как это делается с некоторыми домофонами, а именно - передать ключ, состоящий из одних 0 или 255 и Вуаля!
Это более чем скачать драйвера на f 401 unauthorized, хоть домофон делай.
Добавлять ключи будем путем записи его первых четырех байт, в свободную память микроконтроллера, начиная с N+1 занятого байта памяти Arduino.
Но делать это необходимо только с использованием мастер ключа.
И тут встают два вопроса, какой из ключей должен быть мастером и как его найти среди кучи всех остальных?
А пусть мастер ключ хранится в строго определенных "ячейках" памяти микроконтроллера, мы ведь делаем это с количеством ключей!
Пусть первый байт EEPROM отвечает за количество известных нам ключей, а следующие четыре байта будут отведены мастер ключу.
Оставшуюся память отдаем под все остальное.
Как понять, что поднесенный к сканеру ключ является тем самым или наоборот.
Давайте опять отталкиваться от идеи четырехбайтного ключа.
Пройдя все предыдущие этапы записи памяти микроконтроллера, мы с 100% точностью можем сказать, сколько ключей и как они расположены в памяти Arduino.
Следовательно, для быстрого сравнения логичнее искать совпадение по первому байту каждого ключа в памяти, и только если оно найдено переходить к сравнению следующего байта.
Если какой либо из 4 байт не совпал, то останавливаем проверку и переходить к следующему ключу в памяти микроконтроллера.
Если найдено совпадение всех четырех байт ключа, то прекращаем проверку и устанавливаем замок в состояние открыто, иначе оставляем замок запертым.
Пройдя эту не хитрую процедуру, мы можем точно сказать разрешен данному ключу доступ или нет, а заодно является ли он мастер ключом.
Ведь мы будем знать номер совпавшего ключа в памяти Arduino следовательно, если он первый на самом деле нулевойто это волшебный ключ.
Чтобы добавить новый ключ в память замка необходимо поднести и удерживать у RFID NRF сканера мастер ключ.
Для начала будет открыта дверь, чтобы впустить владыку в обитель.
Но если мастер ключ удерживается в течение 5 секунд по умолчаниюто замок переводится в постоянно открытое состояние и система распознавания ключей, описанная ранее, начинает работать как проверка наличия ключа в памяти.
Ключа нет, тогда записываем его.
Ключ найден, значит, ругаемся, плюемся и топаем ногами.
Таким образом, можно добавлять ключи пачками.
Для выхода из режима программирования необходимо поднести ключ владыки и удерживает его 5 секунд.
Для очистки памяти решено ввести красную кнопку с защитой от ложного нажатия.
Если удерживать её в течение 5 секунд, то контроллер начинает перезапись EEPROM одними нулями.
По окончанию операции производится перезапуск программы микроконтроллера.
Но теперь нет ни единого ключа, следовательно, и мастера тоже.
В этом безмятежном состоянии замок стоит держать постоянно открытым иначе "Се Ля Ви", что в переводе с древнегреческого "не повезло"!
Первый поднесенный к сканеру ключ будет записан в память Arduino и станет мастером т.
Следом за этим замок перестанет бездельничать и перейдет в состояние закрыто.
С этого момента помещение считается святым, и проникнуть в него может только обладатель единственного записанного в память ключа.
Для всех остальных нужно начать процедуру добавления ключей, но её мы уже придумали.
Открытие двери изнутри по нажатию на волшебную кнопку поначалу показалось мне тривиальной задачей, и я добавил этот механизм простым способом как и кнопку очистки памяти - ногу микроконтроллера посадил через резистор на землю, а сама кнопка коммутировала на эту же ногу +5V.
Все дешево и сердито, но вся соль кроется в деталях!
Кнопок открытия двери будет несколько.
Все они должны сидеть параллельно и самая дальняя будет расположена как минимум в 15, а то и больше, метрах от контроллера если мерить длинной кабеля!
Это расстояние смело можно умножать на 2 и получить нереальную для +5V цифру.
Необходимо пересадить ногу Arduino с GND на +5V через резистор 10kпредварительно задействовать встроенный подтягивающий резистор микроконтроллера, а сама кнопка станет прижимать ногу к земле.
Резистор между ногой и питанием необходим для избегания короткого замыкания при использовании самой кнопки.
Управление электромагнитом, по понятным и так причинам, происходит через реле.
Электромагнит подключен через постоянно замкнутую группу контактов и соответственно при открытии замка, на реле подается логическая единица.
В общем, Вам самим выбирать какой из подводных камней оставить.
Я свой выбор сделал.
На самом деле, если вы будите внедрять подобное где-то в обиходе, а не просто собирать на столе, то обязательно все документируйте и перепроверяйте по несколько раз.
Для быстрого монтажа я использовал плату для прототипирования.
Цена на неё довольно завышена у братьев Китайцев, но я не пожалел.
Перед установкой всего это добра на заслуженное рабочее место проводились испытания различных кабелей для выноса рабочей части RFID сканера за стену.
В итоге выбор остановился на медной, многожильной витой паре используемой для прокладки Ethernet.
Если использовать одножильную моно витую пару, то потери могут быть довольно высоки, как и с использованием различных Китайских якобы медных шлейфов.
Гарантию работы, а соответственно и Вашего попадания в помещение, сможет гарантировать лишь страховой полис.
Сам сканер был помещен в крышку от металлической коробки и закрыт стеклотекстолитом, естественно НЕ фольгированным!
Полученный результат показался мне довольно сносным и был передан заказчику для установки.
Для питания был задействован компьютерный блок питания, с которого, через стабилизатор напряжения 12v в 8v для запитки Arduino UNO через стандартный 5,5мм разъем.
Фото монтажа За дверью все выглядит очень скромно.
Довольно эстетически приятный вид, для промышленного помещения.
Программная часть Вам понадобятся следующие библиотеки: RFID-RC522 NRF Bounce2 избавляет от дребезга контактов при нажатии кнопок Сам скетч Все довольно плотно закомментировано, но есть большой фронт для доработки.
Надеюсь, Вы дополните это создание своими идеями и нужным функционалом, а я в свою очередь уже присмотрел идеи для будущего обновления и заказал новый модуль RC522 для теста.
PS: Желаю Вам приятного и надеюсь полезного использования.
Постепенно будем её улучшать обвешивая всяческими лампочками, свистульками и т.
Текущий вариант протестирован и стабильно работает с июля 2015.
Думаю не имеет смысла кидать ссылки т.
Я использовал в скетче сторожевой таймер Watchdog timer.
Для этого необходимо перепрошить загрузчик Arduino NANO ATmega328p со стандартного на Оptiboot как это сделать описано тут.
Если залить выложенный ниже скетч в неподготовленный контроллер, получите "кирпич".
Если Вы читаете эту часть уже после того как залили скетч, то необходимо перезапустить микроконтроллер по питанию и только по питанию и у Вас будет 8 сек.
Иначе "селяви", что в переводе с древнегреческого - НЕ ПОВЕЗЛО!
Процедуру можно повторять сколько угодно раз, пока не восстановите беднягу.
Вступительная часть окончена, переходим к делу Станция разделена на две части Первая находится дома, состоит из микроконтроллера и сетевого модуля, её задача производить все необходимые вычисления и держать связь с проектом "Народный мониторинг".
Вторая часть состоит из двух датчиков описанных выше и размещенных на улице в продуваемом пластиковом корпусе, защищенным от прямых попаданий воды и солнечных лучей.
На самом деле есть стандарты для размещения погодных станций и ни одно из изделий используемых в быту пусть даже самое дорогое и крутое никогда не покажет Вам точных данных.
Это связано с местом её установки.
Погодная станция должна стоять в чистом поле на высоте пары метров от земли и т.
Вы это легко найдете в сети.
Ну а нас интересуют приблизительные значения.
Схема этого безобразия, за исключением Ethernet модуля это просо "бутерброд"выглядит так.
На схеме использовал датчик BMP085 т.
На практике стоит BMP180 и подключен по 5V а не по 3.
Датчик DHT22 имеет обвязку в виде SMD резистора 0805 на 10kOm между двумя ногами - питание и 1-Wire.
Но братья Китайцы могут продать датчик уже в обвязке по значительно завышенной ценой.
Для корпуса уличной части я выбрал пластиковую распределительную коробку со съемными заглушками.
Датчики разместил в верхней части т.
Остальные заглушки убраны для повышения точности измерений.
Из-за того, что доступ у меня имеется только к солнечной стороне дома, пришлось спрятать коробку за WiFi тарелкой.
Кстати это дополнительно дало возможность хоть немного отдалить сенсоры от самого здания, ведь ночью нагретый дом выделяет энергию в виде тепла искажает показания.
Если следовать ГОСТу, то сенсоры должны быть размещены в тени в течение всего дня.
В качестве идентификатора, чтобы не запутать себя, Вы можете использовать MAC адрес Ethernet модуля.
В данном случае мы будем передавать данные по TCP на 8283 порт сервера.
Телеграмма будет состоять из: Идентификатора устройства MAC адрес Названия устройства GPS координаты для позиционирования на карте проекта т.
Точка росы рассчитывается исходя из текущих показаний температуры и влажности.
В коде имеются две функции взятые с просторов интернета: dewPoint dewPointFast Использовать можно любую.
Также имеется проверка показаний точки росы.
Вычисления не производятся при минусовой температуре и значение обнуляется при показаниях ниже нуля.
Если я не прав, то прошу меня поправить.
Я использую Android и для примера взял два разных виджета.
Выглядит это следующим образом.
В дальнейшем планирую: Увеличить разнообразие датчиков Объединить обе части метеостанции и вынести все на улицу Уйти от ENC28J60 в пользу W5100 или W5500 Использовать POE для питания всей кухни PS: пока все доволен.
Посмотрим как конструкция переживет зиму и сделаем дополнительные выводы.
Хочу поделиться опытом автоматизации изобретения Джона Уэбстера - Жалюзи, что в переводе с Французского звучит как Ревность!
Скажу честно, что мой опыт обуздать это не хитрое устройство имеет как положительный, так и отрицательный результат.
И я буду очень рад поделиться им с Вами, дабы Вы не совершали моих ошибок, и результат Вашей работы вызывал настоящую Ревность у всех, кто её видит!
Первое с чего стоит начать это изучить конструкцию механизма Ваших жалюзи.
У меня дома внедрен и плотно эксплуатируется в спальне механизм с вертикальным расположением ламелей.
Сам механизм прост как две копейки.
Веревка с расположенными на ней пластиковыми шариками вращает вал, который производит поворот всех секций с ламелями.
Ничего лишнего, устройство работает как часы.
Второе, и самое главное на чем я прокололсяэто выбор привода для управления механизмом.
Я правильно подумал, что для поворота всех секций необходимо довольно большой крутящий момент и дать его мне может сервопривод.
Решено было взять серву MG995 с металлическими шестернями, крутящим моментом 13 кг.
Сама процедура модернизация "мускул" проекта очень проста.
Аккуратно разбираем привод внутри много смазки и запоминаем его устройство.
На основной шестерни расположен ограничитель хода простой цилиндр из другого метала, отличается цветом от шестернейудаляем его без усилия вытягивается плоскогубцами.
Вынимаем всю электронику и запоминаем расположения контактов переменного резистора необходимого для позиционирования устройства.
Удаляем переменный резистор и заменяем его двумя обычными и равными половине номинала удаленного органа в моем случае это два резистора по 2.
Полагаю, что можно воспользоваться любыми резисторами одинакового номинала до 10 кОм.
Но это стоит перепроверить!
К сожалению, у меня не сохранились фотографии всего процесса извращения над сервоприводом.
Запечатленным остался лишь момент замены не нужного переменка на делитель из постоянных резисторов.
Далее идет примерка сервы к поворотному шкиву Жалюзи и соответственно попытки приколхозить привод к нему.
Ничего сложного в этой операции нет.
Можно использовать один из рычагов идущих в комплекте с сервоприводом.
Но я решил заменить подходящий пластиковый рычаг, на железный, купленный отдельно.
Пара минут манипуляций и союз между шкивом и рычагом хотя второй тоже выглядит как шкив, тфу.
Позже, было принято решение перевернуть крепежные болты дабы сохранить возможность установки фиксирующей крышки от Жалюзи.
На самом деле позже было принято очень много решений.
После теста возможностей сервопривода был выявлен один крошечный недостаток, но он убивал на корню всю возможность автоматизации.
Это был дребезг другого слова я подобрать не могу который заставлял привод совершать еле заметные и слышимые дерганья в произвольном направлении, но иногда постоянно в одном, что могло привести к натяжению поворотного вала Жалюзи в одном из крайних положений.
Причина крылась в неидеальности нашего мира.
Создать идеальный резистор не подверженный окружающей среде способна только задача из учебника по физике.
А в результате, как только в комнате изменялась температура, даже на короткий миг, один из резисторов менял свои свойства.
Вот тут и проявлялись те самые 1%, 5%, 10% погрешностей которые обещал производитель.
Мириться с этим я не мог!
Решений было два: Разобраться в устройстве мозгов сервопривода и заложить эту погрешность в программу микроконтроллера сервы.
Купить заводскую серву постоянного вращения.
И как Вы угадали, я сделал единственно верный выбор!
Заказал новую серву и ею стало произведения Китайского искуства - модель DS04-NFC.
Пластиковые шестерни, крутящий момент 5,5 кг.
Взяв её в руки, и сравнив с предшественницей, я отчетливо испытал чувство со столь красивым названием Жалюзи!
Да это была Ревность!
Как можно променять MG995 на DS04-NFC, каааакккк!
Ладно, боль стихла, выбор сделан.
Необходимо проверить её в деле.
И забегая вперед, я обязан сказать, что новая серва была подвержена той же болезни, что и переделанная MG995.
Фокус не удался, но исправить проблему получилось программно в самом скетче!
Тут стоит сделать небольшой отступ и для Новичков вроде меня дать пояснение.
Питать сервопривод от самого контроллера невозможно т.
Контроллер начнет задыхаться и уйдет в ребут.
Для исправления данного недостатка я посадил параллельно нестабилизированного входа Arduino преобразователь AMS-1117-5.
Таким образом, я могу подавать питание рекомендую 7-9V на вход платы c контроллером иметь раздельное стабилизированное питание, как самого контроллера, так и сервопривода.
Думаю, что схему параллельного соединения приводить нет смысла.
Добавлю лишь обвязку преобразователя два танталовых конденсатора по 10mF.
Для первого раза было решено использовать управление от старого пульта TV-тюнера.
Ну, раз пошла такая пляска, то в довесок выдернуть из TV-тюнера IR приемник и гнездо для него.
Если быть честным, то я не собирался потрошить тюнер, но один из моих Китайских поставщиков электроники решил меня обмануть кинуть скажу по секрету, это был не его день!
Пару тройку минут с паяльником и в руках красуется изделие способное произвести неимоверное впечатление на средневекового человека, но не на нас.
Выглядит этот колхоз следующим образом.
Согласен, не очень красиво но, что я могу поделать.
Исправлю в следующей версии.
Переходим к программной части По началу стоит определиться с командами, на которые будет реагировать контроллер.
Это зависит только от используемого Вами пульта дистанционного управления.
За основу я взял библиотеку Arduino-IRremote-master.
Speed " + String Speed ; myservo.
Speed " + String Speed ; myservo.
За это отвечает переменная fullSpeedTime, принимающая значения в миллисекундах.
Думаю, что трех секунд достаточно, чтобы плавно регулировать разгон и тем самым позволить, в случае необходимости, управлять поворотом ламелей на очень малый угол, используя кратковременные нажатия на кнопку пульта дистанционного управления.
Углы поворота влияют на скорость: от 0 до 100 от 100 до 180 Это те значения, что получились у меня на двух сервах, и которые я использовал в скетче.
Чтобы заставить сервопривод не дергаться во время простоя я произвожу его отключение с использованием метода myservo.
Серва крутит, а в простоях молчит и даже не думает дернуться.
Привожу еще немного снимков всей получившейся конструкции Самый главный вывод - стоит подобрать очень тихий привод.
Серва жутко шумит, и если днем это терпимо, то вечером или ночью.
PS: В общем первая версия была проверена и зарекомендовала себя хорошо, правда выглядит ужасно.
Планирую добавить пару датчиков освещенности и автоматически менять угол поворота ламелей в зависимости от освещенности в течении дня.
И заменить серву на тихий шаговый двигатель c редуктором.
Я сам активно использую микроконтроллеры в сети для сбора различной информации на удаленных объектах.
И в один прекрасный день натолкнулся на мысль, что изменять настройки моих поделок можно только перезаписывая микропрограмму, что не совсем удобно.
Намного приятнее производить конфигурацию и менять поведение контроллера через Web интерфейс.
Но последовала мысль, что любой может набрать в браузере адрес моей железки и оказаться там, где его не ждут, со всеми вытекающими последствиями!
Нужно сделать хотя бы картонную дверь.
Идея есть, приступаем к реализации.
Забегая вперед скажу, что у меня все заработало в браузерах: chrome, firefox и opera.
Через ишака не завелось, но он живет своей жизнью и меня не интересует даже разбираться не стал.
В остальных не проверял, но думаю, что все будет работать.
Механизм выглядит следующим образом При запросе страницы, браузер например Opera отправляет множество различной информации на Web сервер.
Делаем правильный вывод - клиент не авторизован.
Отправляем пользователю заголовок который заставит его браузер отобразить форму авторизации.
CLUB" После заполнения пользователем соответствующих форм и отправки данных на сервер, мы получаем тот же шлак, но в нем присутствует интересующий нас заголовок.
И при её преобразовании в читаемый вид получаем login:password.
Это и есть наши данные разделенные спец.
Они имеют серьезные отличия и требуют для работы различные библиотеки.
Следовательно в ENC28J60 вся эта кухня должна быть реализована программно, что отразится на свободной памяти микроконтроллера.
W5100 Для работы требуются библиотеки Ethernet.
Поставляется совместно со средой разработки Arduino.
Скетч для микроконтроллера будет выглядеть следующим образом: ENC28J60 Для данного чипа требуется сторонняя библиотека.
PS: Не забывайте изменить IP в скетче.
Не так давно, вышла вторая версия популярного в определённых кругах фреймворка CodeIgniter 2.
Волей случая, мне пришлось столкнуться с этой версией FW, что бы внести некоторые доработки в уже готовый проект.
Возможно, кто-то знает рабочее, готовое решение для авторизации, совместимое с CI v.
Подскажите пожалуйста, если таковое имеется.
Если будет возможность назначить пользователю группы или роли и доп.
Может быть, кому-то известны "имена" названия уже готовых решений, совместимых с CI v.
Хотя может быть твоя задача без проблем решиться с помощью скаффолдинга, например на yii.
Но, меня заинтересовало несколько другое.
Там же, среди прочих указан и CodeIgniter.
Скажите пожалуйста, у CI тоже есть встроенная авто генерация кода?
Добавлено через 6 минут и 29 секунд Нашел описание, судя по всему это "Мини phpMyAdmin" для CI.
Для CI - не интересно.
Добавлено через 9 минут и 15 секунд CI - такой хороший проект был как мне вначале показалось и так резко "встал одной ногой в могилу".
Нашёл библиотеку судя по всему совместимую с CodeIgniter 2.
На счёт "качества" пока ничего не скажу, т.
Она уже подаёт признаки жизни работает 2.
Если кому-то известны ещё какие-либо варианты - с удовольствием их выслушаю.
За все то время, пока мы ведем тут дискуссии, уже можно было написать полноценную авторизацию на CI Автор: WolfAlone 31.
Представляете, сколько уже можно было написать, не только систем авторизации, но и других полезные плюшек для CodeIgniter'a даже версии 2 за то время с которого он существует?
Глядишь, тогда бы ему не так быстро крышку бы заколачивали.
Ion Auth по ходу дела "зажигает".
Как "обновить" пользователя - я нашёл, как зарегистрировать пользователя в нужную группу - я нашёл, а вот как изменить группу пользователю.
Судя по всему, средствами самого модуля - никак Автор: StachelDraht 31.
Только, скорее не документации, а перевода на русский тоже без вопросов, если оно того стоитибо документация на него есть и даже оформлена точь в точь как дока по CodeIgniter.
Добавлено 14:03 Скажите пожалуйста, CodeIgniter Reactor - это что за зверь?
В справке написано, что это Community Driven версия CI.
Я так понял, это версия CI от сообщества?
С ней кто-нибудь работал?
Может быть там есть какая-нибудь более ли менее человеческая плюшка для авторизации, совместимая с CI v.
Если кто-нибудь в двух словах подскажет, в чём ключевое отличие Reactor'a от обычного CI v.
Думаю что вопросом авторизации задавались многие, и решали этот вопрос в течении часа используя сессии и md5 Автор: WolfAlone 31.
Видимо, по мнению разработчиков CI, авторизация - это не типичная задача.
Но, разговор собственно не об этом.
Решение вопроса авторизации на уровне сессий и шифрования - это конечно решение!
Но звучит оно на мой взгляд не совсем легитимно.
Это примерно как на вопрос "где взять драйвер для принтера XXX" ответить: "попробуй воспользоваться C++ и Ассемблером.
Многие так и решили эту задачу в течении недели".
Если исходить от обратного, то разумеется своя собственная система авторизации будет гораздо "тоньше", чем 99% имеющихся, и гораздо лучше подходящая под конкретные в данным случае мои нужды.
Но если следовать по такому пути, то сначала мы получим собственную систему авторизации.
Потом мы получим свой собственный FW, потом свой собственный язык, потом вообще перейдём на низкоуровневое программирование С++, ассемблерпотом получим свой протокол, предназначенный для решения узкоспециализированной задачи, потом процессор и компьютер по этой же стезе изобретём свой, и закончим на "производстве" людей на генном уровне, предназначенных для решения узкого спектра задач Это я собственно к тому, что можно было бы давным давно, за час а тем более за 6 часов!
Но вопрос, опять же, в другом.
Почему до сих пор этого никто не сделал?
FrameWork кто-то сделал, выложил в общественное пользование, занимается его поддержкой и т.
Именно это меня и удивляет.
И, к тому же, требующее изучения дополнительных тех.
Я говорил лишь о том, что с точки зрения разработчков CI, авторизация - это не типичная задача и всё из этого вытекающее.
Если быть совсем кратким и говорить совсем прямо, я хотел сказать только два предложения: 1.
Во всех фреймворках есть средства сделать это.
Но это не решения "из коробки", которые можно просто так взять и все готово.
Авторизацию вы будете делать намного быстрей в CI чем в ZFне смотря на готовый класс.
Это потому что CI очень прост.
Суть фреймворка облегчить разработку и уберечь разработчика от изобретения велосипедов, что позволяет сосредоточится на самом продукте а не на общих линиях которые есть в каждом проекте.
Дать какие то общие правила игры, которые помогут найти общий язык и общие правила в команде разработчиков.
Я к примеру когда свой велосипед писал тратил больше времени на велосипед чем на сам проект всегда появляются идеи как улучшитьхочется изменить и тп.
Если хотите "все" готовое - таки нужно в сторону CMS смотреть.
Просто на мой взгляд, не добавить авторизацию в "коробку" с ФВ - это всё равно, что не добавить Paint в комплект поставки Windows 98 по тому, что он очень простой.
К тому же, скачать из интернета какой-нибудь аналог Paint гораздо проще, чем изучить Photoshop.
Это всё само собой разумеется.
Но вопрос опять же, не в этом.
Вы себе представляете виндовс без рабочего стола, по тому, что он очень прост?
И комплект рабочих столов к нему, которые подходили бы только для Win9.
Разумеется, можно изобрести свой рабочий стол для виндовса, и даже не 1, а 10, 20, 100.
Но должно же быть какое-то стандартное, общепризнанное решение этой, на мой взгляд весьма тривиальной задачи, к тому же в столь популярном продукте!
То, что он очень прост - я ни в коем случае не отрицаю, но по моему авторизацию пользователей можно было бы изобрести разработчикам хотя скачать драйвера на f 401 unauthorized за столько лет существования ФВ, и не мотивировать её отсутствие тем, что ФВ очень прост.
Его простота говорит о том, что авторизация пользователей крайне редко бывает необходимой?
В нём достаточно мусорных и просто редко используемых модулей, а столь нужного - нет.
Если поставить вопрос ребром, то звучать он будет примерно так: почему, за столько лет существования фреймворка разработчикам не пришло в голову сделать модуль авторизации???
На мой взгяд ключевая польза вот ФВ во время командной разработки в том, что каждый может делать какую-то его часть, при этом не мешая другим и не зависимо от них коллег.
Хотя с некоторой долей "дисциплины" - не могу не согласиться, впрочем как и с тем, что они реально позволяют сосредоточиться больше на самом проекте, чем на решении тривиальных задач.
На разработку всего, ушло минут 40 Но, отсутствие такой библиотеки в стандартном комплекте поставки меня не перестало удивлять Добавлено через 1 минуту и 51 секунду Цитата StachelDraht 31.
Кто-нибудь может, что за CI "Reactor", отличия и пр.
Вы путайте роли FW и CMS Вариантов реализации авторизаций ,разделения прав, групп пользователей просто бесконечность.
Не возможно дать что то одно что будет правильно всегда.
Если давать вариант который работает из коробки вам нужно давать тогда и структуру базы, и форму может авторизации и регистрации.
Фреймворк здесь не причем.
FW дает базовый функционал, нельзя удовлетворить все нужды.
НО зато есть всегда масса дополнений и готовых примеров Автор: StachelDraht 31.
Всем спасибо за конструктивную дискуссию!
Рекомендую видео-курс "Науменко Д.
ADB Unauthorized
Для этого, необходимо написать всего лишь несколько строк кода.
Микроприложения подходят для реализации небольших приложений, различных API и прототипов на практике.
При создании путей необходимо указывать, какой метод HTTP используется, чтобы запросы путей соответствовали методам HTTP.
Обработка пути выполняется, когда путь совпадает.
Обработчик может быть любого типа, который возвращает данные в PHP-среде.
Следующий пример демонстрирует, как создавать различные типы обработчиков пути: Hello!
Имя параметра должно находиться в скобках.
Параметры также можно задавать с помощью регулярных выражений для того, чтобы быть уверенным в наличии данных.
Чаще всего, обращения будут идти именно к нему через метод GET.
Поддерживаются следующие события: Имя события Действие Можно ли оставить операцию?
Может быть использован для управления доступом к приложению Да after Выполняется после вызова обработчика.
Может быть использован для подготовки ответа Нет finish Выполняется после отправки ответа.