![WebApp კონტროლირებადი კარიბჭის ოპერატორის დამატება (IoT): 20 ნაბიჯი (სურათებით) WebApp კონტროლირებადი კარიბჭის ოპერატორის დამატება (IoT): 20 ნაბიჯი (სურათებით)](https://i.howwhatproduce.com/images/001/image-462-80-j.webp)
Სარჩევი:
- ნაბიჯი 1: შეაგროვეთ ნაწილები
- ნაბიჯი 2: მარაგი
- ნაბიჯი 3: ზომის შემთხვევაში
- ნაბიჯი 4: მავთულის DC-DC კონვერტორი
- ნაბიჯი 5: ელექტროენერგიის მიწოდება მოწყობილობებზე
- ნაბიჯი 6: მავთულის სარელეო მოდულის შეყვანა
- ნაბიჯი 7: IMP Power Jumper
- ნაბიჯი 8: მავთულის კარიბჭის სტატუსის შეყვანა
- ნაბიჯი 9: დაბეჭდეთ ან შეიძინეთ საქმე
- ნაბიჯი 10: დაამშვენე შენი საქმე
- ნაბიჯი 11: საბურღი ხვრელი მავთულისთვის
- ნაბიჯი 12: მოამზადეთ და დააინსტალირეთ დამაკავშირებელი მავთულები
- ნაბიჯი 13: მარშრუტის დამაკავშირებელი მავთულები
- ნაბიჯი 14: კომპონენტების დამონტაჟება
- ნაბიჯი 15: დალუქეთ დამაკავშირებელი მავთულები
- ნაბიჯი 16: დახურეთ საქმე
- ნაბიჯი 17: დააინსტალირეთ Gate Operator
- ნაბიჯი 18: დააყენეთ Aux სარელეო რეჟიმი
- ნაბიჯი 19: IMP აგენტი და მოწყობილობის კოდი
- ნაბიჯი 20: ვებ სერვისის PHP კოდი
2025 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2025-01-23 14:50
![WebApp კონტროლირებადი კარიბჭის ოპერატორის დამატება (IoT) WebApp კონტროლირებადი კარიბჭის ოპერატორის დამატება (IoT)](https://i.howwhatproduce.com/images/001/image-462-81-j.webp)
![WebApp კონტროლირებადი კარიბჭის ოპერატორის დანამატი (IoT) WebApp კონტროლირებადი კარიბჭის ოპერატორის დანამატი (IoT)](https://i.howwhatproduce.com/images/001/image-462-82-j.webp)
![WebApp კონტროლირებადი კარიბჭის ოპერატორის დამატება (IoT) WebApp კონტროლირებადი კარიბჭის ოპერატორის დამატება (IoT)](https://i.howwhatproduce.com/images/001/image-462-83-j.webp)
მე მყავს კლიენტი, რომელსაც ჰქონდა დახურული ტერიტორია, სადაც ბევრ ადამიანს სჭირდებოდა მოსვლა და წასვლა. მათ არ სურდათ გარედან კლავიატურის გამოყენება და მხოლოდ შეზღუდული რაოდენობის საკვანძო გადამცემები ჰქონდათ. ძნელი იყო დამატებითი კლავიშებისათვის ხელმისაწვდომი წყაროს პოვნა. ვიფიქრე, რომ ეს იქნებოდა დიდი შესაძლებლობა ამ ლიფტმასტერის კარიბჭის ოპერატორის განახლებისთვის IoT თავსებადი პერსონალურ აპარატურასთან, ვებ API- სთან და ვებ აპლიკაციის ინტერფეისთან. ამან არა მხოლოდ გადაჭრა მასობრივი წვდომის პრობლემა, არამედ გახსნა დამატებითი ფუნქციონირებაც!
ბოლო ფოტოზე არის საცდელი განყოფილება, რომელსაც თითქმის ერთი წელი ვატარებდი ზიპლოკის ტომარაში. მეგონა განახლების დრო იყო!
ეს არის სრულად ფუნქციონალური გადაწყვეტა ყველა კოდით, აპარატურის ინფორმაციით და დიზაინით აქ ჩამოთვლილი.
ყველა პროექტის ფაილი ასევე განთავსებულია GitHub– ზე: github.com/ThingEngineer/IoT-Gate-Operator-Addon
CodeIgniter WebApp ინტერფეისის მაგალითი განთავსებულია აქ: projects.ajillion.com/gate ეს მაგალითი არ არის დაკავშირებული პირდაპირ კარიბჭესთან, მაგრამ არის ზუსტი ინტერფეისი და კოდი, რომელიც მუშაობს კარიბჭეზე (გამოკლებული უსაფრთხოების ზოგიერთი მახასიათებელი).
--
კიდევ უფრო დიდი ინტეგრაციისთვის შეგიძლიათ გამოიყენოთ IFTTT ბიბლიოთეკა Electric Imp.
ნაბიჯი 1: შეაგროვეთ ნაწილები
![შეაგროვეთ ნაწილები შეაგროვეთ ნაწილები](https://i.howwhatproduce.com/images/001/image-462-84-j.webp)
- თქვენ დაგჭირდებათ ელექტრო IMP მინიმუმ 4 GPIO– ით, მე ვიყენებ IMP001– ს აპრილის გარღვევის დაფაზე.
- მარეგულირებელი წყაროს ძაბვის ვარდნას 5 ვ -მდე. მე ვიყენებ DC-DC Buck Converter Step Down მოდულს. eBoot– ის MP1584EN ვერსია ამაზონიდან.
- ორმაგი (ან მეტი) სარელეო მოდული ან მსგავსი გადართვის მოწყობილობა, რომელიც იმუშავებს IMP– ების გამომავალთან. მე ვიყენებ ამ ერთ JBtek 4 არხს DC 5V სარელეო მოდულს ამაზონიდან.
- 4 მავთულის ხრახნიანი ტერმინალი. მე ვიყენებ ამ ერთ 5Pcs 2 Rows 12P Wire Connector Screw Terminal Barrier Block 300V 20A from Amazon.
ნაბიჯი 2: მარაგი
![მარაგები მარაგები](https://i.howwhatproduce.com/images/001/image-462-85-j.webp)
თქვენ ასევე დაგჭირდებათ:
- წვდომა 3D პრინტერზე ან მცირე პროექტის ყუთზე
- 4 პატარა ხრახნი დაახლოებით 4 მმ x 6 მმ საქმის სახურავისთვის
- დასაკავშირებელი მავთული
- Მავთულის საჭრელები
- მავთულის სტრიპტიზატორები
- მცირე ზომის ხრახნები
- გასაყიდი რკინა
- ცხელი წებო ან სილიკონი
- Zip კავშირები
ნაბიჯი 3: ზომის შემთხვევაში
![ზომის Up შემთხვევაში ზომის Up შემთხვევაში](https://i.howwhatproduce.com/images/001/image-462-86-j.webp)
განალაგეთ თქვენი ნაწილები იმის დასადგენად, თუ რა ზომის ქეისი დაგჭირდებათ. განლაგებით, როგორც სურათზეა, დამჭირდება ქეისი, რომლის სიგანეა დაახლოებით 140 მმ, სიღრმე 70 მმ და სიმაღლე 30 მმ.
ნაბიჯი 4: მავთულის DC-DC კონვერტორი
![მავთულის DC-DC კონვერტორი მავთულის DC-DC კონვერტორი](https://i.howwhatproduce.com/images/001/image-462-87-j.webp)
გაჭერით 3 წყვილი წითელი და შავი მავთული DC-DC გადამყვანი დაფის შიგნით და გარეთ.
- შესასვლელი: 100 მმ
- გამომავალი IMP: 90 მმ
- გამომავალი სარელეო მოდულში: 130 მმ
შეაერთეთ ისინი თქვენს დაფაზე, როგორც ნაჩვენებია.
ნაბიჯი 5: ელექტროენერგიის მიწოდება მოწყობილობებზე
![მავთულის ენერგია მოწყობილობებზე მავთულის ენერგია მოწყობილობებზე](https://i.howwhatproduce.com/images/001/image-462-88-j.webp)
- შეაერთეთ DC-DC გადამყვანის შეყვანა ხრახნიანი ტერმინალის ბლოკის ორ წერტილზე.
- შეაერთეთ მოკლე 5V გამომავალი მავთულები IMP- ს.
- შეაერთეთ უფრო გრძელი 5 ვ გამომავალი მავთულები სარელეო მოდულში.
ნაბიჯი 6: მავთულის სარელეო მოდულის შეყვანა
![მავთულის სარელეო მოდულის შეყვანა მავთულის სარელეო მოდულის შეყვანა](https://i.howwhatproduce.com/images/001/image-462-89-j.webp)
- გაჭრა 4 x 90 მმ მავთულები სარელეო მოდულის შეყვანის კავშირებისთვის. მე გამოვიყენე 4 ცალკეული ფერი შემდგომი კოდირებისას ადვილი მითითებისთვის.
- შეაერთეთ მავთულები სარელეო მოდულის შესასვლელებში 1-4, შემდეგ პირველ 4 IMP GPIO წერტილში (Pin1, 2, 5 და 7) შესაბამისად.
ნაბიჯი 7: IMP Power Jumper
![IMP Power Jumper IMP Power Jumper](https://i.howwhatproduce.com/images/001/image-462-90-j.webp)
შეიძლება დაგჭირდეთ USB ენერგიის გამოყენება, სანამ თავდაპირველად პროგრამირებას და ტესტირებას ახდენთ თქვენს IMP– ზე. დასრულების შემდეგ, დარწმუნდით, რომ გადააადგილეთ დენის ჯამპერი BAT მხარეს.
ნაბიჯი 8: მავთულის კარიბჭის სტატუსის შეყვანა
![მავთულის კარიბჭის სტატუსის შეყვანა მავთულის კარიბჭის სტატუსის შეყვანა](https://i.howwhatproduce.com/images/001/image-462-91-j.webp)
- გაჭერით 2 x 80 მმ მავთული მდგომარეობის შესასვლელებისთვის.
- შეაერთეთ მავთულები დარჩენილი 2 ხრახნიანი ტერმინალით.
- შეაერთეთ მავთულები IMP GPIO წერტილების (Pin8 და 9) შესაბამისად.
ნაბიჯი 9: დაბეჭდეთ ან შეიძინეთ საქმე
![დაბეჭდეთ ან იყიდეთ საქმე დაბეჭდეთ ან იყიდეთ საქმე](https://i.howwhatproduce.com/images/001/image-462-92-j.webp)
თქვენ შეგიძლიათ გადმოწეროთ ჩემი. STL ან. F3D ამ შემთხვევისთვის GitHub ან Thingiverse
თუ თქვენ არ გაქვთ წვდომა 3D პრინტერზე, მცირე პროექტის პროექტი იმუშავებს.
ნაბიჯი 10: დაამშვენე შენი საქმე
![დაამშვენე შენი საქმე დაამშვენე შენი საქმე](https://i.howwhatproduce.com/images/001/image-462-93-j.webp)
იმიტომ!
ჩავიბურტყუნე ტექსტი ჩემზე და უბრალოდ შევაფერადე შავი ბასრი. თუ თავგადასავლების მოყვარული ხართ, შეგიძლიათ გამოიყენოთ აკრილის საღებავი, ფრჩხილის ლაქი ან სხვა რამ, რომ ის კიდევ უფრო გამხდარი იყოს.
ნაბიჯი 11: საბურღი ხვრელი მავთულისთვის
![საბურღი ხვრელი მავთულისთვის საბურღი ხვრელი მავთულისთვის](https://i.howwhatproduce.com/images/001/image-462-94-j.webp)
გაბურღეთ პატარა ხვრელი 10-15 მმ იმ მხარეს, შუა ნაწილში, სადაც ყველა მავთული გაერთიანდება.
პლასტმასის სუფთა, გლუვი ხვრელისთვის Unibit გამოვიყენე.
ნაბიჯი 12: მოამზადეთ და დააინსტალირეთ დამაკავშირებელი მავთულები
![მოამზადეთ და დააინსტალირეთ დამაკავშირებელი მავთულები მოამზადეთ და დააინსტალირეთ დამაკავშირებელი მავთულები](https://i.howwhatproduce.com/images/001/image-462-95-j.webp)
![მოამზადეთ და დააინსტალირეთ დამაკავშირებელი მავთულები მოამზადეთ და დააინსტალირეთ დამაკავშირებელი მავთულები](https://i.howwhatproduce.com/images/001/image-462-96-j.webp)
გათიშეთ 9 x 5-600 მმ მავთული ჩვენი მოწყობილობის დასაკავშირებლად კარიბჭის ოპერატორის დაფაზე.
- 2 24V დენის შეყვანისთვის
- 3 კარიბჭის სტატუსისთვის (2 შეყვანა და საერთო საფუძველი)
- 2 ღია კარიბჭის სიგნალისთვის
- 2 დახურული კარიბჭის სიგნალისთვის
გადაახვიეთ თითოეული ზემოთ ჩამოთვლილი ჯგუფი საბურღის გამოყენებით. ეს ყველაფერი გაადვილებს და უკეთესად გამოიყურება.
გათიშეთ და დააკავშირეთ თითოეული მავთული შესაბამის ტერმინალებთან, როგორც ეს ნაჩვენებია.
ნაბიჯი 13: მარშრუტის დამაკავშირებელი მავთულები
![მარშრუტის დამაკავშირებელი მავთულები მარშრუტის დამაკავშირებელი მავთულები](https://i.howwhatproduce.com/images/001/image-462-97-j.webp)
გადააადგილეთ დამაკავშირებელი მავთულები ხვრელში, როგორც ნაჩვენებია.
ნაბიჯი 14: კომპონენტების დამონტაჟება
![მთა კომპონენტები მთა კომპონენტები](https://i.howwhatproduce.com/images/001/image-462-98-j.webp)
მოათავსეთ და დაამონტაჟეთ კომპონენტები ცხელი წებოს ან სილიკონის პატარა მძივით. არ გამოიყენოთ ძალიან ბევრი იმ შემთხვევაში, თუ თქვენ გჭირდებათ ნაწილის ამოღება, გამოიყენეთ მხოლოდ საკმარისი იმისათვის, რომ დაიცვათ ისინი.
მე თავდაპირველად მინდოდა ამოვბეჭდო საქმე კლიპებით/ჩანართებით, რომ გამეკეთებინა დაფები, მაგრამ მჭირდებოდა ამის დაყენება და დრო არ მქონდა. დაფის კლიპების დამატება თქვენს საქმეში სასიამოვნო შეხება იქნება.
ნაბიჯი 15: დალუქეთ დამაკავშირებელი მავთულები
![Seal Hookup Wires Seal Hookup Wires](https://i.howwhatproduce.com/images/001/image-462-99-j.webp)
დახურეთ სადენები ცხელი წებოთი ან სილიკონით.
ნაბიჯი 16: დახურეთ საქმე
![დახურეთ საქმე დახურეთ საქმე](https://i.howwhatproduce.com/images/001/image-462-100-j.webp)
მე გამოვიყენე პატარა ~ 4 მმ ხრახნები ამ 3D ბეჭდვის შემთხვევაში. თუ თქვენ გაწუხებთ ჭუჭყიანი ან ტენიანობა, დახურვის წინ მოათავსეთ სილიკონის ან ცხელი წებოს მძივი სახურავის გარშემო.
ნაბიჯი 17: დააინსტალირეთ Gate Operator
![დააინსტალირეთ Gate Operator– ში დააინსტალირეთ Gate Operator– ში](https://i.howwhatproduce.com/images/001/image-462-101-j.webp)
![დააინსტალირეთ Gate Operator– ში დააინსტალირეთ Gate Operator– ში](https://i.howwhatproduce.com/images/001/image-462-102-j.webp)
მთავარ დაფაზე:
- მიამაგრეთ ორი მავთული, რომელიც დაკავშირებულია სარელეო გამომავალთან 1 ღია კარიბჭის ტერმინალთან. (ფოტოებში წითელი/ყავისფერი)
- მიამაგრეთ ორი მავთული, რომელიც დაკავშირებულია სარელეო გამომავალთან 2 Close Gate ტერმინალთან. (ფოტოებში ყვითელი/ლურჯი)
- შეაერთეთ ორი მავთული, რომლებიც დაკავშირებულია DC-DC გადამყვანის შეყვანისას 24V აქსესუარის დენის ტერმინალებთან (წითელი/შავი ფოტოებში)
გაფართოების დაფაზე
- Jumper სარელეო საერთო ხრახნიანი ტერმინალები ერთად პატარა ნაჭერი მავთული
- შეაერთეთ საერთო საფუძველი ერთ სარელეო საერთო ხრახნიან ტერმინალთან (მწვანე ფოტოებში)
- შეაერთეთ 2 კარიბჭის სტატუსის შეყვანა (IMP Pin8 & 9) სარელეო ნორმალური ღია (NO) ხრახნიანი ტერმინალებით (ნაცრისფერი/ყვითელი ფოტოებში)
გაუშვით მავთულები, შეაერთეთ ისინი, რომ გამოიყურებოდეს სისუფთავე და იპოვნეთ ადგილი, რომ დაამონტაჟოთ ან დააყენოთ თქვენი ქეისი.
არის დამატებითი, სრული გარჩევადობის ფოტოები, განთავსებული GitHub საცავში.
ნაბიჯი 18: დააყენეთ Aux სარელეო რეჟიმი
![დააყენეთ Aux სარელეო რეჟიმი დააყენეთ Aux სარელეო რეჟიმი](https://i.howwhatproduce.com/images/001/image-462-103-j.webp)
დააყენეთ დამხმარე სარელეო გადამრთველები, როგორც ნაჩვენებია ფოტოში.
ეს მისცემს IMP- ს სიგნალებს, რომლებიც მას სჭირდება იმის დასადგენად, არის თუ არა კარიბჭე დახურული, გახსნილი, გახსნილი თუ დახურული.
ნაბიჯი 19: IMP აგენტი და მოწყობილობის კოდი
![IMP აგენტი და მოწყობილობის კოდი IMP აგენტი და მოწყობილობის კოდი](https://i.howwhatproduce.com/images/001/image-462-104-j.webp)
ელექტრო Imp აგენტის კოდი:
- შექმენით ახალი მოდელი Electric Imp IDE– ში:
- შეცვალეთ URL მიუთითეთ თქვენს სერვერზე
// HTTP დამმუშავებლის ფუნქცია
ფუნქცია httpHandler (req, resp) {try {local d = http.jsondecode (req.body); //server.log(d.c); თუ (d.c == "btn") {//server.log(d.val); device.send ("btn", d.val); resp.send (200, "OK"); }} catch (ex) {// თუ იყო შეცდომა, დააბრუნეთ იგი საპასუხოდ server.log ((შეცდომა: " + ყოფილი); resp.send (500, "შიდა სერვერის შეცდომა:" + ყოფილი); }} // დაარეგისტრირეთ HTTP დამმუშავებელი http.onquest (httpHandler); // GateStateChange დამმუშავებლის ფუნქცია ფუნქცია gateStateChangeHandler (მონაცემები) {// ვებ სერვისის URL url = "https://projects.ajillion.com/save_gate_state"; // კონტენტის ტიპის სათაურის დაყენება json local headers = {"Content-Type": "application/json"}; // მიღებული მონაცემების კოდირება და ლოგის ადგილობრივი ორგანოს = http.jsonencode (მონაცემები); server.log (კორპუსი); // გაგზავნეთ მონაცემები თქვენს ვებ სერვისზე http.post (url, headers, body).sendsync (); } // რეგისტრაცია gateStateChange დამმუშავებელი device.on ("gateStateChange", gateStateChangeHandler);
ელექტრო Imp აგენტის კოდი:
- მიანიჭეთ Imp მოწყობილობა თქვენს მოდელს
- დარწმუნდით, რომ აპარატურის ქინძისთავები ცნობილია როგორც დაკავშირებული
// დებიუს ბიბლიოთეკა
#მოითხოვეთ "Button.class.nut: 1.2.0" // მეტსახელი gateOpen GPIO pin (აქტიური დაბალი) gateOpen <- hardware.pin2; // მეტსახელი კარიბჭისთვის კონტროლის დახურვა GPIO pin (აქტიური დაბალი) კარიბჭე დახურვა <- აპარატურა. // 'gateOpen' კონფიგურაცია იყოს ციფრული გამომავალი ციფრული 1 (მაღალი) gateOpen.pen.configure (DIGITAL_OUT, 1); // კონფიგურაცია 'gateClose' იყოს ციფრული გამომავალი ციფრული 1 (მაღალი) კარიბჭის საწყისი მნიშვნელობით Close.configure (DIGITAL_OUT, 1); // მეტსახელი GPIO პინისთვის, რომელიც მიუთითებს, რომ კარიბჭე მოძრაობს (N. O.) gateMovingState <- ღილაკი (hardware.pin8, DIGITAL_IN_PULLUP); // მეტსახელი GPIO პინისთვის, რომელიც მიუთითებს, რომ კარიბჭე სრულად ღიაა (N. O.) gateOpenState <- ღილაკი (hardware.pin9, DIGITAL_IN_PULLUP); // გლობალური ცვლადი კარიბჭის მდგომარეობის შესანარჩუნებლად (ღია = 1 / დახურული = 0) ადგილობრივი lastGateOpenState = 0; // Latch Timer object local latchTimer = null agent.on ("btn", function (data) {switch (data.cmd) {case "open": gateOpen.write (0); if (latchTimer) imp.cancelwakeup (latchTimer); latchTimer = imp.wakeup (1, releaseOpen); server.log ("ღია ბრძანება მიღებულია"); შესვენება "latch30m": gateOpen.write (0); if (latchTimer) imp.cancelwakeup (latchTimer); latchTimer = imp.wakeup (1800, releaseOpen); server.log ("Latch30m ბრძანება მიღებულია"); შესვენება "latch8h": gateOpen.write (0); if (latchTimer) imp.cancelwakeup (latchTimer); latchTimer = imp.wakeup (28800, releaseOpen); server.log ("Latch8h ბრძანება მიღებულია"); შესვენება "დახურვა": if (latchTimer) imp.cancelwakeup (latchTimer); gateOpen.write (1); gateClose.write (0); latchTimer = imp.wakeup (1, releaseClose); server.log ("დახურე ახლა მიღებული ბრძანება"); default default: server.log ("ღილაკის ბრძანება არ არის აღიარებული");}}); ფუნქცია releaseOpen () {if (latchTimer) imp.cancelwakeup (latchTimer); gateOpen.write (1); //server.log(" ტაიმერის გათავისუფლებული კარიბჭე გახსენით გადამრთველი კონტაქტი "); } ფუნქცია releaseClose () {if (latchTimer) imp.cancelwakeup (latchTimer); gateClose.write (1); //server.log(" ტაიმერი გათავისუფლებულია კარიბჭე დახურეთ გადამრთველი კონტაქტი "); } gateMovingState.onPress (ფუნქცია () {// რელე გააქტიურებულია, კარი მოძრაობს //server.log(" კარიბჭე იხსნება "); ადგილობრივი მონაცემები = {" gatestate ": 1," ტაიმერი ": hardware.millis ()}; agent.send ("gateStateChange", მონაცემები);}). onRelease (ფუნქცია () {// რელე გათავისუფლებულია, კარიბჭე ისვენებს //server.log(" კარი დახურულია "); ადგილობრივი მონაცემები = {"gatestate": 0, "ტაიმერი": hardware.millis ()}; agent.send ("gateStateChange", მონაცემები);}); gateOpenState.onPress (ფუნქცია () {// რელე გააქტიურებულია, კარი მთლიანად გახსნილია //server.log(" კარიბჭე ღიაა)); ადგილობრივი მონაცემები = {"gatestate": 2, "ტაიმერი": hardware.millis ()}; agent.send ("gateStateChange", მონაცემები);}). onRelease (ფუნქცია () {// რელე იხსნება, კარიბჭე ბოლომდე არ არის გახსნილი //server.log(" კარიბჭე იხურება "); ადგილობრივი მონაცემები = {"gatestate": 3, "ტაიმერი": hardware.millis ()}; agent.send ("gateStateChange", მონაცემები);});
ნაბიჯი 20: ვებ სერვისის PHP კოდი
![ვებ სერვისის PHP კოდი ვებ სერვისის PHP კოდი](https://i.howwhatproduce.com/images/001/image-462-105-j.webp)
ეს კოდი დავწერე CodeIgniter ჩარჩოსთვის, რადგან დავამატე ძველ არსებულ პროექტს. კონტროლერი და ხედის კოდი შეიძლება ადვილად მოერგოს თქვენი არჩევანის ჩარჩოს.
იმისათვის, რომ ყველაფერი მარტივი იყოს, მე შევინახე JSON მონაცემები ბრტყელ ფაილში მონაცემთა შესანახად. თუ გჭირდებათ ჟურნალი ან მონაცემებთან დაკავშირებული უფრო რთული ფუნქციები გამოიყენეთ მონაცემთა ბაზა.
აიაქსის ბიბლიოთეკას, რომელიც მე დავწერე და გამოვიყენე ამ პროექტში, შეგიძლიათ გადმოწეროთ GitHub საცავიდან: ThingEngineer/Codeigniter-jQuery-Ajax
PHP კონტროლერის კოდი:
- აპლიკაცია/კონტროლერები/პროექტები. php
- დარწმუნდით, რომ მონაცემთა ბილიკი ხელმისაწვდომია თქვენი PHP სკრიპტით, როგორც ადგილმდებარეობის, ასევე წაკითხვის/ჩაწერის პრივილეგიებით.
load-> დამხმარე (მასივი ("ფაილი", "თარიღი"));
$ data = json_decode (read_file ('../ app/logs/gatestate.data'), TRUE); გადართვა ($ data ['gatestate']) {case 0: $ view_data ['gatestate'] = 'დახურულია'; შესვენება; შემთხვევა 1: $ view_data ['gatestate'] = 'იხსნება…'; შესვენება; შემთხვევა 2: $ view_data ['gatestate'] = 'გახსნილი'; შესვენება; შემთხვევა 3: $ view_data ['gatestate'] = 'იხურება …'; შესვენება; } $ last_opened = json_decode (read_file ('../ app/logs/projects/gateopened.data'), TRUE); $ view_data ['last_opened'] = დროის მონაკვეთი ($ last_opened ['last_opened'], დრო ()). 'წინა'; // ჩატვირთვა $ t ['data'] = $ view_data; $ this-> load-> ნახვა ('gate_view', $ t); } ფუნქცია save_gate_state () {$ this-> load-> დამხმარე ('ფაილი'); $ data = file_get_contents ('php: // input'); write_file ('../ app/logs/projects/gatestate.data', $ data); $ data = json_decode ($ data, TRUE); if ($ data ['gatestate'] == 1) {$ last_opened = მასივი ('last_opened' => დრო ()); write_file ('../ app/logs/projects/gateopened.data', json_encode ($ last_opened)); }} ფუნქცია get_gate_state () {$ this-> load-> დამხმარე (მასივი ('ფაილი', 'თარიღი')); $ this-> load-> ბიბლიოთეკა ('ajax'); $ data = json_decode (read_file ('../ app/logs/projects/gatestate.data'), TRUE); $ last_opened = json_decode (read_file ('../ app/logs/projects/gateopened.data'), TRUE); $ data ['last_opened'] = დროის მონაკვეთი ($ last_opened ['last_opened'], დრო ()). 'წინა'; $ this-> ajax-> output_ajax ($ data, 'json', FALSE); // გაგზავნეთ json მონაცემები, ნუ აღასრულებთ აიაქსის მოთხოვნას}}/ * ფაილის პროექტების დასრულება. php *// * მდებარეობა:./application/controllers/projects.php */
PHP ნახვა კოდი:
მე გამოვიყენე Bootstrap ფრონტისთვის, რადგან ის სწრაფი, მარტივი და საპასუხოა. შეგიძლიათ გადმოწეროთ აქ: https://getbootstrap.com (jQuery შედის)
- app/controllers/gate_view.php
- შეცვალეთ თქვენი აგენტის კოდი თქვენი Electric Imp აგენტის კოდით
IoT Gate Opperator Addon IoT Gate Opperator Addon
- მთავარი
- ადმინისტრატორი
გახსენით Gate Latch გახსენით 30 წთ Latch გახსენით 8 საათი დახურეთ ახლა კარიბჭე agent.electricimp.com/YOUR-AGENT-CODE '; $.პოსტი (url, JSONout); } $ ("#open_gate"). დააწკაპუნეთ (ფუნქცია () {var JSONout = '{"c": "btn", "val": {"cmd": "open"}}'; sendJSON (JSONout); $ ("#სტატუსი"). ტექსტი ("გახსნა …");}); $ ("#latch30m_gate"). დააწკაპუნეთ (ფუნქცია () {var JSONout = '{"c": "btn", "val": {"cmd": "latch30m"}}'; sendJSON (JSONout); $ ("#სტატუსი"). ტექსტი ("იხსნება …");}); $ ("#latch8h_gate"). დააწკაპუნეთ (ფუნქცია () {var JSONout = '{"c": "btn", "val": {"cmd": "latch8h"}}'; sendJSON (JSONout); $ ("#სტატუსი"). ტექსტი ("იხსნება …");}); $ ("#close_gate"). დააწკაპუნეთ (ფუნქცია () {var JSONout = '{"c": "btn", "val": {"cmd": "close"}}'; sendJSON (JSONout); $ ("#სტატუსი"). ტექსტი ("იხურება …");}); ფუნქცია resetStatus () {// სამიზნე url var target = 'https://projects.ajillion.com/get_gate_state'; // მოითხოვეთ var data = {agent: 'app'}; // აიაქსის გამოგზავნის მოთხოვნა $.ajax ({url: target, dataType: 'json', type: 'POST', data: data, success: function (data (text, textStatus, XMLHttpRequest) {switch (data.gatestate) {case 0: $ ("#სტატუსი"). ტექსტი ("დახურულია"); შესვენება; საქმე 1: $ ("#სტატუსი"). ტექსტი ("გახსნა …"); შესვენება; საქმე 2: $ ("#სტატუსი").text ("ღია"); შესვენება; შემთხვევა 3: $ ("#სტატუსი"). ტექსტი ("იხურება …"); შესვენება; ნაგულისხმევი: $ ("#სტატუსი"). ტექსტი ("შეცდომა");} $ ("#ბოლო_ გახსნილი"). ტექსტი (data.last_opened);}, შეცდომა: ფუნქცია (XMLHttpRequest, textStatus, errorThrown) {// შეცდომის შეტყობინება $ ("#სტატუსი"). ტექსტი ("სერვერის შეცდომა");}}); setTimeout (resetStatus, 3000); }
გირჩევთ:
კარიბჭის გამხსნელი: 4 ნაბიჯი
![კარიბჭის გამხსნელი: 4 ნაბიჯი კარიბჭის გამხსნელი: 4 ნაბიჯი](https://i.howwhatproduce.com/images/001/image-2698-j.webp)
კარიბჭის გამხსნელი: ამ პროექტის მიზანი იყო შეექმნა კარიბჭის გამხსნელი, რომლითაც მე შევძლებ ლოგიკის გაკონტროლებას. მე ადრე გამოვიყენე ავტოფარეხის კარის გამხსნელი და შევცვალე სქემები ავტომატური საკეტის ჩასატარებლად (ხელს უშლის კარიბჭის ქარის დაზიანებას), სინათლე სავალი ნაწილის გასანათებლად
ციფრული კარიბჭის ძაბვის გაზომვის სქემის გამოყენება: 7 ნაბიჯი
![ციფრული კარიბჭის ძაბვის გაზომვის სქემის გამოყენება: 7 ნაბიჯი ციფრული კარიბჭის ძაბვის გაზომვის სქემის გამოყენება: 7 ნაბიჯი](https://i.howwhatproduce.com/images/008/image-21368-j.webp)
ციფრული კარის ძაბვის გაზომვის სქემის გამოყენება: ციფრული სქემები ჩვეულებრივ იყენებენ 5 ვოლტის მარაგს. ციფრული ძაბვები, რომლებიც არის 5v -2.7 ვოლტიდან TTL სერიაში (ციფრული ინტეგრირებული ჩიპის ტიპი) ითვლება მაღალი და აქვს 1 მნიშვნელობა. ციფრული ძაბვები ფორმა 0-0.5 ითვლება დაბალი და აქვს
IoT სიმძლავრის მოდული: IoT ენერგიის გაზომვის ფუნქციის დამატება ჩემს მზის დატენვის კონტროლერში: 19 ნაბიჯი (სურათებით)
![IoT სიმძლავრის მოდული: IoT ენერგიის გაზომვის ფუნქციის დამატება ჩემს მზის დატენვის კონტროლერში: 19 ნაბიჯი (სურათებით) IoT სიმძლავრის მოდული: IoT ენერგიის გაზომვის ფუნქციის დამატება ჩემს მზის დატენვის კონტროლერში: 19 ნაბიჯი (სურათებით)](https://i.howwhatproduce.com/images/010/image-29236-j.webp)
IoT სიმძლავრის მოდული: IoT სიმძლავრის გაზომვის მახასიათებლის დამატება ჩემს მზის დატენვის კონტროლერში: გამარჯობა ყველას, ვიმედოვნებ, რომ ყველანი კარგები ხართ! ამ სასწავლო ინსტრუქციაში მე გაჩვენებთ თუ როგორ გავაკეთე IoT სიმძლავრის გაზომვის მოდული, რომელიც ითვლის ჩემი მზის პანელების მიერ გამომუშავებული ენერგიის რაოდენობას, რომელსაც იყენებს ჩემი მზის დამუხტვის კონტროლერი
ანტენა კარიბჭის გახსნის დიაპაზონის გასაგრძელებლად: 6 ნაბიჯი (სურათებით)
![ანტენა კარიბჭის გახსნის დიაპაზონის გასაგრძელებლად: 6 ნაბიჯი (სურათებით) ანტენა კარიბჭის გახსნის დიაპაზონის გასაგრძელებლად: 6 ნაბიჯი (სურათებით)](https://i.howwhatproduce.com/images/010/image-29823-j.webp)
ანტენა კარიბჭის გასახსნელი დიაპაზონის გასაფართოებლად: როდესაც თოვლი მართლაც ღრმა ხდება მთის ჰუდზე, ეს არის სახალისო თხილამურებით სრიალი, სრიალი, თოვლის სიმაგრეების მშენებლობა და ბავშვების გემბანიდან გადმოყრა ღრმა ფხვნილში. მაგრამ გლუვი ნივთები არც ისე სახალისოა, როდესაც ჩვენ ვცდილობთ დავბრუნდეთ გზატკეცილზე და გავაღოთ კარი
კარიბჭის სლაიდერი 100 დოლარამდე: 15 ნაბიჯი (სურათებით)
![კარიბჭის სლაიდერი 100 დოლარამდე: 15 ნაბიჯი (სურათებით) კარიბჭის სლაიდერი 100 დოლარამდე: 15 ნაბიჯი (სურათებით)](https://i.howwhatproduce.com/images/004/image-9323-20-j.webp)
ავტომატური კარიბჭის სლაიდერი 100 დოლარამდე: ზაფხულში, მამაჩემმა მოტივაცია მომცა, მეყიდა კარიბჭის ავტომატიზაციის სისტემის ყიდვა და მისი დაყენება. ასე რომ, მე დავიწყე ჩემი კვლევა და შევხედე პაკეტის გადაწყვეტილებებს AliExpress– ზე და ადგილობრივ გამყიდველებზე. ადგილობრივი გამყიდველები გვთავაზობდნენ სრულ გადაწყვეტილებებს, მათ შორის