Სარჩევი:
- ნაბიჯი 1: ნივთები, რომლებიც გამოიყენება ამ პროექტში
- ნაბიჯი 2: ისტორია
- ნაბიჯი 3: მომზადება
- ნაბიჯი 4: კონფიგურაცია
- ნაბიჯი 5: ინსტალაცია
- ნაბიჯი 6: პროგრამირება
- ნაბიჯი 7: ტესტი
- ნაბიჯი 8: შემდეგი ნაბიჯი
- ნაბიჯი 9: სქემა
- ნაბიჯი 10: კოდი
ვიდეო: ვირტუალური კარის ღილაკი Mongoose OS და XinaBox– ის გამოყენებით: 10 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:19
მონგუსისა და 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 OS მართლაც გასაოცარი და მარტივი IoT განვითარების ინსტრუმენტი … და უფასოდ
ნაბიჯი 2: ისტორია
ჩვენს მისაღებში საჭირო იყო ჩვენი თანამშრომლების აჟიოტაჟი, ამიტომ ჩვენ გადავწყვიტეთ ჩვენი მედიკამენტების მიღება და ვირტუალური ღილაკის შექმნა. ეს კოდი გაძლევთ საშუალებას გააგზავნოთ RPC (დისტანციური პროცედურის ზარი), რომელიც ჰგავს ჩვეულებრივ HTTP ზარს ნებისმიერი ბრაუზერიდან. ჩვენ გამოვიყენეთ Mongoose, რადგან მასთან მუშაობა მართლაც ადვილი და სწრაფია და ეს არის ჩაშენებული OTA (Over The Air) კოდის განახლება, რაც იმას ნიშნავს, რომ ჩვენ შეგვიძლია დავაინსტალიროთ ჩვენი ტექნიკა და დროთა განმავლობაში მაინც გავაუმჯობესოთ firmware, მისი გადაპროგრამებისათვის დაშლის გარეშე.
ნაბიჯი 3: მომზადება
- დააინსტალირეთ Mongoose-OS: პირდაპირ წინ, უბრალოდ მიყევით ამ ძალიან მარტივ ნაბიჯებს თქვენი OS– სთვის აქ:
- დააწკაპუნეთ IP01 და CW02 ერთად XC10 კონექტორის გამოყენებით. იხილეთ სურათი ქვემოთ:
- ჩადეთ IP01 თქვენს USB პორტში
- დარწმუნდით, რომ IP01 კონცენტრატორები არის B და 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 AP რეჟიმში და შექმენით დომენის სახელი, ასე რომ თქვენ შეგიძლიათ დაუკავშირდეთ CW01– ს მასპინძლის სახელით, სწორი IP მისამართის საპოვნელად. ეს იმუშავებს მხოლოდ იმ შემთხვევაში, თუ:
- თქვენ გათიშავთ WiFi- ს AP რეჟიმში, როგორც ამას ქვემოთ ვაკეთებთ.
- ან გამოიყენეთ Mac ან დააინსტალირეთ Bonjour თქვენს Windows მოწყობილობაზე.
bin/mos დარეკეთ Config. Set '{"config": {"wifi": {"ap": {"enable": false}}}}'
bin/mos call Config. Set '{"config": {"dns_sd": {"enable": true}}}' bin/mos call config. Set '{"config": {"dns_sd": {"host- სახელი ":" xinabox_switch "}}}
და ბოლოს, თქვენ უნდა გადატვირთოთ CW02, რომ კონფიგურაცია იმუშაოს
bin/mos დარეკეთ Config.save '{"reboot": true}'
ამის შემდეგ ძალიან სწრაფად თქვენ უნდა შეგეძლოთ ping xinabox_switch.local
ნაბიჯი 5: ინსტალაცია
გათიშეთ IP01 კომპიუტერიდან და ააწყვეთ წრე ზედა სურათის მიხედვით.
შეაერთეთ PU01 (ან თუ თქვენ გადაწყვიტეთ გამყარებაში IP01) USB დენის წყაროსთან. შეაერთეთ მავთულები თქვენი არსებული გადამრთველიდან (დატოვეთ ეს, მხოლოდ იმ შემთხვევაში) OC03- თან (პოლარობას მნიშვნელობა არ აქვს). იხილეთ ფრიზინგის ნახაზი.
ერთხელ ჩართვისას და იმის დასადგენად, რომ თქვენ ნამდვილად ესაუბრებით თქვენს xCW02– ს, რაც შეეხება BUS– ის სკანირებას, იგივე I2C ავტობუსს:
bin/mos --port ws: //xinabox_switch.local/rpc დარეკეთ I2C. სკანირება
თუ ყველაფერი მუშაობს და თქვენი xOC03 სწორად არის დაინსტალირებული, თქვენ უნდა ნახოთ რიცხვი '56', რომელიც ბრუნდება. ეს არის OC03- ის I2C მისამართი ათწილადში (ექვსკუთხედში არის 0x38).
ნაბიჯი 6: პროგრამირება
- ახლა გახსენით Mongoose კონსოლის რეჟიმში, იხილეთ ზემოთ. ის უნდა გაიხსნას ფანჯრით, სადაც ითხოვს პორტის ნომერს, შეიყვანეთ: ws: //xinabox_switch.local/rpc
- ის დაუკავშირდება CW02– ს და გააცნობიერებს, რომ ერთეული უკვე ციმციმებულია და უკავშირდება WiFi– ს, ასე რომ ის მხოლოდ 3 გამშვებ ნიშანს მისცემს. დახურეთ ფანჯარა და განაახლეთ ფაილების სია
- დააკოპირეთ და ჩასვით ქვემოთ კოდი init.js და დააწკაპუნეთ შენახვაზე+გადატვირთვაზე
- თქვენი წრე ახლა დაპროგრამებულია.
ნაბიჯი 7: ტესტი
თქვენ ახლა განახორციელეთ სხვა RPC ზარი, ასე რომ თქვენი ტერმინალიდან შეგიძლიათ შეიყვანოთ:
bin/mos --port ws: //xinabox_switch.local/rpc ზარის გადამრთველი
… და თქვენი ზარი უნდა წახვიდეს 2 წმ. თქვენ ასევე შეგიძლიათ ამის გაკეთება - თითქმის - ნებისმიერი ბრაუზერიდან:
xinabox_switch.local/rpc/Switch
… იგივე ეფექტით.
ნაბიჯი 8: შემდეგი ნაბიჯი
თქვენ შეგიძლიათ გამოიყენოთ ნებისმიერი ინსტრუმენტი, რომელსაც შეუძლია გათიშოს URL. მე ამას ვაკეთებ Apple აპლიკაციიდან სახელწოდებით Workflow, რაც მაძლევს საშუალებას გავაკეთო ეს ჩემი ტელეფონიდან ან როგორც გართულება ჩემი Apple Watch– დან, მაგრამ ბევრი სხვა ვარიანტი არსებობს. აქ არის ჩემი Workflow სკრიპტი, მაგრამ მყარი კოდირებული IP მისამართით: ისიამოვნეთ!
Apple აპლიკაცია: სამუშაო ნაკადი - აქ მყარი კოდირებული IP მისამართით
ნაბიჯი 9: სქემა
Buzzer Circuit დააინსტალირეთ 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; ნება ავტობუსი = I2C.get (); I2C.writeRegB (ავტობუსი, ადრ, 3, 0); I2C.writeRegB (ავტობუსი, ადრ, 1, 0); / * გამორთეთ მხოლოდ დარწმუნებისთვის */ ნება დაგვიანება = 2000; GPIO.set_mode (led, GPIO. MODE_OUTPUT); RPC.addHandler ('გადართვა', ფუნქცია (args) {GPIO.toggle (led); I2C.writeRegB (bus, adr, 3, 0); / * იმ შემთხვევაში, თუ OC03 ხელახლა შეერთდება * / I2C.writeRegB (ავტობუსი, ადრ, 1, 1); Timer.set (დაგვიანებით, ცრუ, ფუნქცია () {GPIO.toggle (led); I2C.writeRegB (bus, adr, 1, 0);}, null); true true;});
გირჩევთ:
საბაჟო კარის ხალი გამოიწვია კარის ზარი .: 6 ნაბიჯი
საბაჟო კარის ხალი გამოიწვია კარის ზარი .: გამარჯობა! მე მქვია ჯასტინი, მე ვარ უმცროსი საშუალო სკოლაში და ეს ინსტრუქცია გაჩვენებთ, თუ როგორ უნდა გააკეთოთ კარზე ზარი, რომელიც გააქტიურდება, როდესაც ვინმე თქვენს კარის ხალიჩაზე დააბიჯებს და შეიძლება იყოს ნებისმიერი მელოდია ან სიმღერა, რაც გსურთ! ვინაიდან კარის ხალიჩა კარს აღებს
ვირტუალური ყუთი ვირტუალური მანქანა: 6 ნაბიჯი
Virtualbox ვირტუალური მანქანა: კეთილი იყოს თქვენი მობრძანება, თუ როგორ უნდა დააინსტალიროთ და გამოიყენოთ VirtualBox
გადააქციეთ თქვენი სადენიანი კარის ზარი ჭკვიან კარის ზარად IFTTT– ით: 8 ნაბიჯი
გადააქციეთ თქვენი სადენიანი კარის ზარი ჭკვიან კარის ზარად IFTTT– ით: WiFi კარის ზარი თქვენს არსებულ სადენიან კარზე ზარს აქცევს ჭკვიან ზარის ზარად. https://www.fireflyelectronix.com/product/wifidoor
გადააქციეთ თქვენი სადენიანი კარის ზარი ჭკვიან კარის ზარად სახლის ასისტენტით: 6 ნაბიჯი
გადააქციეთ თქვენი სადენიანი კარის ჭკვიანი ზარი სახლის ასისტენტით: გადააქციეთ თქვენი არსებული სადენიანი კარის ზარი ჭკვიან ზარზე. მიიღეთ შეტყობინება თქვენს ტელეფონზე ან შეუერთეთ თქვენს წინა კარის კამერას, რომ მიიღოთ ფოტო ან ვიდეო გაფრთხილება ნებისმიერ დროს, როცა ვინმე დარეკავს თქვენს კარზე. შეიტყვეთ მეტი აქ: fireflyelectronix.com/pro
IRobot ვირტუალური კედლის ზედა ღილაკი: 6 ნაბიჯი
IRobot ვირტუალური კედლის ზედა ღილაკი: ასე რომ, მე მაღიზიანებს, რომ დიდი ღილაკი, რომელიც გამოიყურება iRobot ვირტუალური კედლის თავზე, არ არის დენის ღილაკი. როგორც ჩანს, უნდა იყოს, მაგრამ ეს ასე არ არის. ამიტომ მე უნდა შევიდე და დავამატო გადამრთველი ვირტუალური კედლის თავზე