Криптография на ардуино
- Войдите на сайт для отправки комментариев
Здравствуйте. Только-только приобрёл Arduino, после того, как узнал, насколько большим функционалом она обладает. В программировании полный новичок. Хочу сделать сигнализацию, для отключения которой нужно будет ввести пароль, но нет ни капельки времени и возможности на реализацию. Выбор пал на связку ардуино-айфон(связь между ними осуществлять с помощью синезубого). Перед тем, как этим заниматься на айфоновском iOS'е, хочу сделать прототип на винде: нужно с помощью экзешника заставить ардуину включать и выключать светодиод, предварительно введя код доступа(что-то вроде работы с запароленным архивом). Подскажите, как и где создать библиотеку и экзешник? Скетч, заставляющий ардуину это делать, по идее примитивный:
int Pin = 13; void setup() { pinMode(Pin, OUTPUT); // ставим контакт на приём digitalWrite(Pin, HIGH); // зажигаем светодиод } void loop() { if ("нажата кнопка выключения в приложении" { if "введён пароль" digitalWrite(Pin, LOW); } } if "нажата кнопка включения" digitalWrite(Pin, HIGH); }
Но как воспроизвести закавыченные пустоты, не знаю. Уверен, существует тонна готовых библиотек. Пробовал гуглить, ничего не нашёл. А изобретение велосипеда мне претит в принципе, да и зачем, когда есть всё готовое, а я не знаю, откуда взять. Товарищи форумчане, помогите!
Дайте в студию библиотечку работы с синезубым, пожалуйста. Наверняка есть анологи SD.read/SD.write и для блютус шилда.
И да, вы ведь творите магию через bluetooth-шилд? Можно ведь Mega использовать как "хост" для USB блютуса от компа (но это трудоемче) или хардкорно подружить дуину с модулем блютуса.
Пардон, но в ардуиновском программировании я полная дубина, только-только начал, и то не по своей воле: приказали сверху сделать проект(естественно, ни хрена не получается :) ). Библиотеки у меня нет, тк связь с модулем устанавливается с помощью скетча, на robocraft.ru нашёл описание, что да как. С библиотекой и прочей магией буду связываться позже, когда разберусь, с чем это всё едят. Но это уже высший пилотаж, мне сначала нужно на элементарном проводном уровне заставить всё это работать.
Нужно по идее создать приложеньку, где я нажимаю на кнопочку, мне вылезает текст-бокс с просьбой втыркнуть пароль, затем через банальную проверку условия при совпадении пароля с заныканной в коде переменной(как я понял, нужно будет тупо сравнить 2 строковых переменных) зажечь светодиод, а в случае несовпадения снова затребовать пароль. А при нажатии на вторую кнопочку этот светодиод вырубать. Прятать и тем более генерировать переменную не нужно, тк когда эта вкусняха перейдёт в беспроводной вариант, скетч с ардуины никто без проводов не считает. По идее просто, но я в Си ни бум-бум, а сделать надо поскорее. Подскажите лучше с этим, потом про блютус буду ныть :)
Нужно по идее создать приложеньку, где я нажимаю на кнопочку, мне вылезает текст-бокс с просьбой втыркнуть пароль...
Текст-бокс где вылазит? На айфоне? Если да, то сначала лутше бы с таким уровнем знаний научиться через терминал работать, т.к. нужно сначала телефон прикрутить, потом передачу данных организовать, затем прогу для iOS мутить, ужос...
Я бы сначала организовал логику работы на уровне кнопки-диоды, затем организовал бы запрос пароля через терминал и дальнейшую логику. Потом сделал бы клиент или сервер на дуине через интернет (т.к. у меня есть инет.шилд),но этот шаг только даст опыта на тему "удалено отправил пароль и действие, а дуина отреагировала", затем прикрутил бы блютус или wifi шилд к ардуине, научился бы принимать/отправлять с него/на него и компьютер. А уж кодинг для iOS - я тут не помошник.
Разложите по полочкам все шаги и поймите что для вас легко уже сейчас и о чем надо почитать. На самом деле это все можно освоить за 2-3 дня (не включая приложение для айфона).
На iOS лучше благополучно забить(что я и сделаю), тк сначала лучше бы въехать, как это на пк реализовать, потом обратиться к продвинутым. Удалённо через инет не надо, тк это запланировано через блютус на небольшом расстоянии (главное - без проводов), но перед этим надо, чтобы всё было замечательно через USB.
На уровне кнопки-диоды уже реализовал, с тактовой кнопки повключал-повыключал светодиод, но пароль к кнопке никак не прикрутить. Потом полез разбираться со своей пустой головушкой с библиотеками и утоп... Посоветовали попробовать Firmata - с её помощью контролируются порты ардуины, я пока что не разобрался даже в принципах работы библиотек в общем. Но говорят, с помощью фирматы можно осуществить такую задумку(для проводов). Если понимаете в этом, то растолкуйте пожалуйста.
Вот как-то так наипростейшим образом считывается и сравнивается с паролем строка, передаваемая по последовательному каналу. Модификация для Bluetooth будет представлять собой замену объекта Serial на специфичный для Bluetooth объект (ну и, может быть, функции available() и read() в этом объекте будут называться немного иначе).
step962, по отдельности практически все(кроме первой) строки Вашего кода понятны, а в целом как-то не очень :( Я же начинающая тапочка, с ардуино и Си встречаюсь в первый раз. Разложите, пожалуйста, по полочкам каждую строчку кода.
step962, по отдельности практически все(кроме первой) строки Вашего кода понятны, а в целом как-то не очень :(
А что там в первой строке непонятного-то? Так же, как и во второй (а также в третьей) строке объявляются переменные определенного типа.
Чтобы сложилась целостная картина по конкретному алгоритму, почитайте об используемых в нем функциях.
Я же начинающая тапочка, с ардуино и Си встречаюсь в первый раз. Разложите, пожалуйста, по полочкам каждую строчку кода.
Ну так начинайте изучать основы - "разложение по полочкам" вам никоим образом не поможет. Приведенная процедура далеко не последняя и тем более далеко не самая сложная из тех, которые придется реализовать в процессе реализации заявленного проекта.
Про функции я прочитал, более-менее разобрался, но практики нет, и времени на её постижение, к сожалению, тоже. Поэтому и попросил "разжевать" :) В первой строке задан массив? Прочитал в том же разделе про объявление переменных, первый раз вижу, чтобы их объявляли так, не знаю, что это.