Мазмұны:

Mongoose OS пен XinaBox қолданатын виртуалды есік түймесі: 10 қадам
Mongoose OS пен XinaBox қолданатын виртуалды есік түймесі: 10 қадам

Бейне: Mongoose OS пен XinaBox қолданатын виртуалды есік түймесі: 10 қадам

Бейне: Mongoose OS пен XinaBox қолданатын виртуалды есік түймесі: 10 қадам
Бейне: Подключение модулей на базе esp8266 и esp32 к облачной платформе 2024, Қараша
Anonim
Mongoose OS және XinaBox көмегімен виртуалды есік түймесі
Mongoose OS және XinaBox көмегімен виртуалды есік түймесі

Mongoose және кейбір xChips көмегімен біз виртуалды есік түймесін жасадық. Қызметкерлерді шулататын физикалық түйменің орнына олар енді өздері жасай алады.

1 -қадам: Бұл жобада қолданылатын заттар

Аппараттық компоненттер

  • XinaBox CW02 x 1 Оның орнына CW01 қолдануға болады
  • XinaBox IP01 x 1
  • XinaBox PU01 x 1 Егер сіз басқа модульдерді бағдарламалауды қаламасаңыз, IP01 -ді қуат үшін қолдана аласыз.
  • XinaBox OC03 x 1
  • XinaBox XC10 x 1 Барлығын жұмыс істейтін «желім»!

Бағдарламалық жасақтама және онлайн қызметтері

Mongoose ОЖ шынымен керемет және қарапайым IoT құралы … және ақысыз

2 -қадам: Әңгіме

Біздің қабылдауымызда біздің қызметкерлерді шулату қажет болды, сондықтан біз өз дәрі -дәрмектерімізді қабылдауға және виртуалды түймені құруға шешім қабылдадық, бұл код сізге кез келген браузерден қалыпты HTTP қоңырауына ұқсайтын RPC (Remote Prosedure Call) жіберуге мүмкіндік береді. Біз Mongoose-ты қолдандық, өйткені онымен жұмыс істеу өте оңай және жылдам және ол OTA (ауада) кодының жаңартылған нұсқасы, біз өз технологиямызды орната аламыз және уақыт өте келе микробағдарламаны қайта бағдарламалау үшін бөлшектемей жаңарта аламыз.

3 -қадам: Дайындық

  • Mongoose-OS орнатыңыз: Тікелей алға, ОЖ үшін мына қарапайым қадамдарды орындаңыз:
  • XC10 коннекторын пайдаланып IP01 мен CW02 бірге басыңыз. Төмендегі суретті қараңыз:
Кескін
Кескін
  • USB портына IP01 салыңыз
  • IP01 қосқыштарының В және DCE позициясында екеніне көз жеткізіңіз.
  • Mongoose-OS жүйесін CW02 пәрмен жолынан жарқылдатыңыз. Бұл сияқты:

cd

экспорт MOS_PORT = bin/mos flash esp32

Сіз сондай -ақ консольге кіре аласыз және көп нәрсені сол жерден жасай аласыз, бірақ мұнда біз оны пәрмен жолынан жасаймыз, сондықтан жұмыс тез орындалады. Консольге кіру үшін:

cd

бин/мос

4 -қадам: конфигурация

Бұл қадамдарды бір ұзақ мәлімдемеде жасауға болатын болса да, біз оларды бөлуге шешім қабылдадық, және сіз оларды көшіруге және қоюға болатындықтан, оны жеңілдетуге рұқсат етіңіз:

I2C түйреуіштерін xChips стандартына орнатыңыз:

bin/mos config-set i2c.scl_gpio = 14 i2c.sda_gpio = 2

CW02 -ді WiFi -ге қосыңыз:

bin/mos wifi

Қатысу режимінде WiFi ажыратыңыз және домен атауын орнатыңыз, осылайша сіз CW01 -ге хост атауымен дұрыс IP -адресті табудың орнына қосыла аласыз. Бұл келесі жағдайларда ғана жұмыс істейді:

  • Сіз төмендегідей AP режимінде WiFi ажыратасыз.
  • Mac қолданыңыз немесе Bonjour бағдарламасын Windows компьютеріне орнатыңыз.

bin/mos шақыруы Config. Set '{«config»: {«wifi»: {«ap»: {«enable»: false}}}}' орнатыңыз

bin/mos шақыруы Config. Set '{«config»: {«dns_sd»: {«enable»: true}}}' bin/mos шақыруы Config. Set '{«config»: {«dns_sd»: {«host- аты «:» xinabox_switch «}}}

Ақыр соңында, конфигурация жұмыс істеуі үшін CW02 қайта жүктеу керек

bin/mos қоңырау Config. Save '{«reboot»: true}'

Осыдан кейін сіз xinabox_switch.local пингін жіберуіңіз керек

5 -қадам: Орнату

IP01 -ді компьютерден ажыратып, жоғарғы суреттегідей схеманы жинаңыз.

PU01 (немесе егер сіз IP01 -ді ұстануды шешсеңіз) USB қуат көзіне қосыңыз. Сымдарды қолданыстағы коммутатордан параллель жалғаңыз (бұл жағдайда қалдырыңыз) OC03 (полярлық маңызды емес). Фритинг суретін қараңыз.

Іске қосылғаннан кейін және сіз шынымен xCW02 -мен сөйлесіп жатқаныңызды білу үшін, I2C шинасы деп аталатын автобусты сканерлеу туралы не деуге болады:

bin/mos -порт ws: //xinabox_switch.local/rpc I2C қоңырау шалу.

Егер бәрі жұмыс істесе және сіздің xOC03 дұрыс орнатылса, сіз '56' нөмірінің қайтарылғанын көресіз. Бұл OC03 -тің I2C адресі ондық бөлшекте (он алтылықта ол 0x38).

6 -қадам: Бағдарламалау

  • Енді Mongoose консоль режимінде ашыңыз, жоғарыдан қараңыз. Ол порт нөмірін сұрайтын тереземен ашылуы керек: ws: //xinabox_switch.local/rpc
  • Ол CW02 -мен байланысады және құрылғы қазірдің өзінде жыпылықтап, Wi -Fi желісіне қосылғанын түсінеді, сондықтан ол тек 3 құсбелгі береді. Терезені жабыңыз және файлдар тізімін жаңартыңыз
  • Төмендегі кодты көшіріп, init.js қойыңыз және сақтау+қайта жүктеу түймесін басыңыз
  • Сіздің схемаңыз қазір бағдарламаланған.

7 -қадам: Тест

Сіз енді басқа RPC қоңырауын енгіздіңіз, сондықтан сіз өзіңіздің терминалыңыздан кіре аласыз:

bin/mos -порт ws: //xinabox_switch.local/rpc қоңырау шалу

… Және сіздің дыбыстық сигналыңыз 2 секундқа созылуы керек. Сіз мұны кез келген шолғыштан жасай аласыз:

xinabox_switch.local/rpc/Switch

… сол әсермен.

8 -қадам: Келесі қадам

Сіз URL мекенжайын өшіретін кез келген құралды қолдана аласыз. Мен мұны жұмыс ағыны деп аталатын Apple қосымшасынан жасаймын, бұл маған телефоннан немесе Apple Watch -тың қиындығы ретінде жасауға мүмкіндік береді, бірақ басқа да көптеген нұсқалар бар. Міне, менің Workflow сценарийі, бірақ IP -адресі қатаң: Ләззат алыңыз!

Кескін
Кескін

Apple қосымшасы: жұмыс ағыны - мұнда қате кодталған IP мекенжайы бар

9 -қадам: Схемалар

Дыбыстық сигналдар тізбегі OC03 қолданыстағы түймеге параллель орнатыңыз.

Оны мына жерден жүктеп алыңыз.

OC03 схемасы OC03 -ті қолданыстағы батырмамен қатар орнатыңыз.

Оны мына жерден жүктеп алыңыз.

Кескін
Кескін

10 -қадам: код

init.js JavaScript Бұл жобаның негізгі және жалғыз коды.

жүктеу ('api_config.js');

жүктеме ('api_gpio.js'); жүктеме ('api_i2c.js'); жүктеме ('api_net.js'); жүктеме ('api_sys.js'); жүктеме ('api_timer.js'); жүктеме («api_rpc.js»); led = Cfg.get ('pins.led') болсын; adr = 0x38 болсын; bus = I2C.get () болсын; I2C.writeRegB (автобус, адрес, 3, 0); I2C.writeRegB (автобус, адрес, 1, 0); / * сенімді болу үшін өшіріңіз */ let delay = 2000; GPIO.set_mode (жетекші, GPIO. MODE_OUTPUT); RPC.addHandler ('Switch', функция (args) {GPIO.toggle (led); I2C.writeRegB (bus, adr, 3, 0); / * егер OC03 қайта қосылған болса * / I2C.writeRegB (шина, адр., 1, 1); Timer.set (кешігу, жалған, функция () {GPIO.toggle (жетекші); I2C.writeRegB (шина, адр, 1, 0);}, нөл); шындыққа қайтару;});

Ұсынылған: