Эмулятор Arduino

Редко когда пишу хвалебные отзывы, но тут исключение, ибо наконец нашел хороший инструмент для отладки проектов на ардулино и иже с ними, без доступа к железу. Лично для меня большим не удобством было, что чтобы что-то попрограммировать, нужно обязательно иметь железку, и обязательно собрать схему «в железе». Что иногда долго и безобразно выглядеще. Итак оно: https://wokwi.com/. Прмямо «онлайн» выбираешь железку, собираешь схему и прямо там пишешь код и выполняешь его. Светодиоды моргают, датчики и дисплеи показывают. А вот когда уже отладил всё, собирай железку живьем на здоровье..

Ночник из Arduino Mega

Купили как-то в FixPirice светильник «ночное» небо за 99р. Так-то бы в принципе и ничего, но единственный светодиод дико раздражал своим миганием невпопад. А тут как раз оказалась что у меня есть Arduino Mega завалящаяся да три светодиода. Час работы и вот результат 😉

https://youtu.be/vJfTsvMK9-I

Кому интересно вот Скетч:




Управление реле Arduino из 1с

В продолжение вот этого. Если у arduino есть ethernet шиелд, то ей вполне можно управлять даже из 1С. Например Реле питания.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
&НаКлиенте
Функция ФункцияВосстановления(Свойство, Значение, ДополнительныеПараметры) Экспорт
   Если Свойство = "ДатаJSON"Тогда
      Возврат ПрочитатьДатуJSON(Значение, ФорматДатыJSON.ISO);
   КонецЕсли;
   Если Свойство = "СтрокаJSON" Тогда
      Возврат СокрЛП(Значение);
   КонецЕсли;
   Если Свойство = "uidJSON" Тогда
      Возврат Новый УникальныйИдентификатор(Значение);
   КонецЕсли;
КонецФункции
 
&НаКлиенте
Процедура СчитатьСтатус(Команда)
файл=новый чтениетекста("http://"+этаформа.Объект.ИП+"/");
фф=файл.Прочитать();
файл.Закрыть();
фф=стрзаменить(фф,"<!DOCTYPE HTML>","");
тЧтение=Новый ЧтениеJson;
тЧтение.УстановитьСтроку(фф);
тДанные = ПрочитатьJSON(тЧтение, Ложь, , , "ФункцияВосстановления", ЭтотОбъект);
пинсстат=тДанные.pinsstatus;
к=0;
для каждого стат из пинсстат цикл
к=к+1;
если к=1 и стат=1 тогда этаформа.Объект.Реле1=Истина иначе этаформа.Объект.Реле1=ложь;конецесли;
если к=2 и стат=1 тогда этаформа.Объект.Реле2=Истина иначе этаформа.Объект.Реле3=ложь;конецесли;
если к=3 и стат=1 тогда этаформа.Объект.Реле3=Истина иначе этаформа.Объект.Реле4=ложь;конецесли;
если к=4 и стат=1 тогда этаформа.Объект.Реле4=Истина иначе этаформа.Объект.Реле4=ложь;конецесли;
конеццикла;
   тЧтение.Закрыть();
этаформа.Объект.жсон=фф;
 
КонецПроцедуры
 
&НаКлиенте
Процедура СчитатьСтатус(Команда)
файл=новый чтениетекста("http://"+этаформа.Объект.ИП+"/");
фф=файл.Прочитать();
файл.Закрыть();
фф=стрзаменить(фф,"<!DOCTYPE HTML>","");
тЧтение=Новый ЧтениеJson;
тЧтение.УстановитьСтроку(фф);
тДанные = ПрочитатьJSON(тЧтение, Ложь, , , "ФункцияВосстановления", ЭтотОбъект);
пинсстат=тДанные.pinsstatus;
к=0;
для каждого стат из пинсстат цикл
к=к+1;
если к=1 и стат=1 тогда этаформа.Объект.Реле1=Истина иначе этаформа.Объект.Реле1=ложь;конецесли;
если к=2 и стат=1 тогда этаформа.Объект.Реле2=Истина иначе этаформа.Объект.Реле3=ложь;конецесли;
если к=3 и стат=1 тогда этаформа.Объект.Реле3=Истина иначе этаформа.Объект.Реле4=ложь;конецесли;
если к=4 и стат=1 тогда этаформа.Объект.Реле4=Истина иначе этаформа.Объект.Реле4=ложь;конецесли;
конеццикла;
   тЧтение.Закрыть();
этаформа.Объект.жсон=фф;
 
КонецПроцедуры