Სარჩევი:

მსოფლიო მიკროკონტროლერის ბმული 20 დოლარამდე საფეხურზე
მსოფლიო მიკროკონტროლერის ბმული 20 დოლარამდე საფეხურზე

ვიდეო: მსოფლიო მიკროკონტროლერის ბმული 20 დოლარამდე საფეხურზე

ვიდეო: მსოფლიო მიკროკონტროლერის ბმული 20 დოლარამდე საფეხურზე
ვიდეო: უფასო FLPROG ინგლისური ვერსია 2024, ივლისი
Anonim
მსოფლიო მიკროკონტროლერის ბმული 20 დოლარამდე
მსოფლიო მიკროკონტროლერის ბმული 20 დოლარამდე

აკონტროლეთ თქვენი სახლის თერმოსტატი სამსახურიდან. ჩართეთ ასხურებელი მსოფლიოს ნებისმიერი ადგილიდან გადამრთველის დაჭერით. ეს ინსტრუქცია გვიჩვენებს, თუ როგორ უნდა დავუკავშიროთ ორი ან მეტი $ 4 მიკროკონტროლი ინტერნეტის ხერხემალისა და რამდენიმე მარტივი VB. Net კოდის გამოყენებით. ეს ემყარება ადრინდელ ინსტრუქციას, რომელიც გვიჩვენებს, თუ როგორ უნდა დაუკავშიროთ მიკროკონტროლერი კომპიუტერს და გამოიყენოთ ქოთანი სერვო https- ის გასაკონტროლებლად: //www.instructables.com/id/Control-real-world-devices-with-your-PC/ ამჯერად ჩვენ გვაქვს მიკროკონტოლერი, რომელიც ესაუბრება VB. Net პროგრამას, შემდეგ ftp ვებსაიტს, უკან სხვა VB. Net- ს პროგრამირება და იქიდან მეორე მიკროკონტროლი მსოფლიოს ნებისმიერ წერტილში, ადამიანის ჩარევით ან მის გარეშე. სხვაგვარად როგორ უნდა დაიჭირონ მატრიქსის მანქანები, თუ მათ არ შეუძლიათ ერთმანეთთან საუბარი?

ნაბიჯი 1: შეაგროვეთ ნაწილები

შეაგროვეთ ნაწილები
შეაგროვეთ ნაწილები

ბევრი ნაწილი იგივეა, რაც PC Control Instructable– ში https://www.instructables.com/id/Control-real-world-devices-with-your-PC/ და ვარაუდობენ, რომ ეს უნდა დასრულდეს ჯერ მცდელობამდე ორი მიკროკონტროლერის დაკავშირება. მიუხედავად იმისა, რომ სავსებით შესაძლებელია ქვაბის გამოყენება სერვოს გასაკონტროლებლად, ამჯერად ჩვენ ვაპირებთ წავიდეთ რაღაც უფრო მარტივზე - გადამრთველი, რომელიც ჩართავს led- ს. გადართვა შეიძლება იყოს სატანკო დონის სენსორი და led შეიძლება იყოს ტუმბო მდინარის მახლობლად, მაგრამ მოდი ჯერ რაღაც მარტივი ვიმუშაოთ. ნაწილები - ორი Picaxe 08M ჩიპი - ხელმისაწვდომია მრავალი წყაროდან Rev Ed https://www.rev- ed.co.uk/picaxe/ (დიდი ბრიტანეთი), PH ანდერსონი https://www.phanderson.com/ (აშშ) და Microzed https://www.microzed.com.au/ (ავსტრალია). ეს ჩიპები 4 აშშ დოლარამდეა. ორი: Protoboard, 9V ბატარეა და ბატარეის სამაგრები, 10k რეზისტორი, 22k რეზისტორი, 33uF 16V კონდენსატორი, 0.1uF კონდენსატორი, 7805L დაბალი სიმძლავრის 5V რეგულატორი, მავთულები (მყარი ძირითადი ტელეფონი/მონაცემთა მავთული მაგ. Cat5/6), LED, 1k რეზისტორი. 1 დან: D9 მდედრობითი ბუდე და საფარი და 2 მეტრი 3 (ან 4) ძირითადი მონაცემთა მავთული (ჩამოსატვირთად) და გადამრთველი გადამრთველი. 2 კომპიუტერი 9 პინიანი სერიული პორტით (შესაძლებელია მათი გამართვა ერთ კომპიუტერზე) და ინტერნეტი. კომპიუტერებისთვის სერიული პორტის გარეშე, USB სერიული მოწყობილობისთვის https://www.rev-ed.co.uk/docs/axe027.pdf და მცირე სტერეო ბუდე.

ნაბიჯი 2: ჩამოტვირთეთ და დააინსტალირეთ რამდენიმე პროგრამა

ჩამოტვირთეთ და დააინსტალირეთ რამდენიმე პროგრამა
ჩამოტვირთეთ და დააინსტალირეთ რამდენიმე პროგრამა

ჩვენ დაგვჭირდება უფასო VB. Net და picaxe კონტროლერის პროგრამული უზრუნველყოფა და თუ თქვენ გააკეთეთ კომპიუტერის კონტროლერი Instructable თქვენ უკვე გექნებათ ეს. VB. Net (Visual Basic Express) ხელმისაწვდომია https://msdn2.microsoft.com/en -us/express/aa718406.aspx პიკას პროგრამული უზრუნველყოფა ხელმისაწვდომია https://www.rev-ed.co.uk/picaxe/ გადმოტვირთვის მისაღებად თქვენ უნდა დარეგისტრირდეთ Microsoft– ში -თუ ეს პრობლემაა გამოიყენეთ ყალბი ელ.წერილი ან რამე. მე ნამდვილად დამხმარე აღმოჩნდა ჩემი რეალური ელ.ფოსტის გაგზავნა, რადგან ისინი აგზავნიან პერიოდულ განახლებებს. მე ასევე ვაპირებ აღვნიშნო პიკაქსის ფორუმი https://www.picaxeforum.co.uk/, რადგან ეს არის ერთგვარი ფორუმი, რომელიც დაკომპლექტებულია მასწავლებლებითა და პედაგოგებით და სადაც სტუდენტებს ჩვეულებრივ შეუძლიათ მიიღონ კითხვებზე პასუხები რამდენიმე საათში. ფორუმს ესმის უმარტივესი კითხვებიც კი, რადგან ზოგიერთი მოსწავლე ჯერ კიდევ დაწყებითი სკოლის დონეზეა. გთხოვთ ნუ შეგეშინდებათ დახმარების თხოვნა!

ნაბიჯი 3: შექმენით გადმოტვირთვის წრე

შექმენით ჩამოტვირთვის წრე
შექმენით ჩამოტვირთვის წრე

ჩამოტვირთვის ეს წრე იყენებს პიკაქსის ჩიპს, რამდენიმე რეზისტორს, მარეგულირებელს და 9 ვ ბატარეას. დამატებითი ინფორმაცია ხელმისაწვდომია პიკაქსის დოკუმენტაციაში/დახმარებაში, რომელიც გამოჩნდება პროგრამის დახმარების მენიუში. მიკროსქემის აშენებას მხოლოდ რამდენიმე წუთი უნდა დასჭირდეს, როდესაც ყველა ნაწილი ხელთ არის. ერთხელ ჩიპი დაპროგრამებულია ის ინარჩუნებს თავის პროგრამას EEPROM- ში მაშინაც კი, როდესაც დენი გამორთულია. ვინაიდან ჩვენ ვპროგრამებთ ორ ჩიპს, შესაძლოა ღირს ჩიპების მარკირება, ასე რომ თქვენ იცით რომელია რომელი. თქვენ ყოველთვის შეგიძლიათ დაბრუნდეთ და გადახალისოთ ჩიპი ბმულის ამოღებით და რეზისტორის გადაადგილებით.

მე ასევე შემიძლია დავამატო, რომ პიკაქსები ბედნიერად მუშაობს 3 AA ბატარეაზე. 5V რეგულირებადი მიწოდება სასარგებლოა ანალოგური შეყვანის გასაშვებად, რადგანაც საცნობარო ძაბვები არ იცვლება, მაგრამ მარტივი ჩართვა/გამორთვის სქემებისთვის რეგულირებადი მიწოდება არ არის საჭირო. ამ სიტუაციებში შეიძლება გამოტოვდეს 5V reg.

ნაბიჯი 4: ჩიპების დაპროგრამება

ჩიპების დაპროგრამება
ჩიპების დაპროგრამება

ჩვენ დავურეკავთ ერთ პროგრამას Tx და ერთ Rx. Tx არის მაკონტროლებელი ჩიპი და აქვს გადამრთველი და led. Rx ასევე აქვს led. როდესაც გადამრთველი ცვლის სიგნალი გადადის Tx– დან Rx– ში, ცვლის led– ს და ასევე ცვლის მეორე ცვლადს, რომელიც შემდეგ ბრუნდება Tx– ზე. ასე რომ გადაახვიეთ გადამრთველი და ერთ წუთზე ნაკლებ დროში led შეცვალეთ ორივე სქემა, რაც მიუთითებს იმაზე, რომ შეტყობინება იქ მოვიდა და Rx მოქმედებს გადართვის ახალ პოზიციაზე. უმარტივეს დონეზე პიკასს აქვს 14 ერთბაიტიანი რეგისტრი. როდესაც ვირტუალური ქსელი იქმნება, ჩვენ ვუკავშირდებით ყველა იმ რეგისტრს, ასე რომ, თუ ბაიტი იცვლება ერთ პიკაქსში, ის იცვლება ყველა პიკაქსში. ცხადია, თუ ორი პიკაქსი ცდილობს შეცვალოს ერთი და იგივე ბაიტი, მაშინ ის ძალიან დამაბნეველი გახდება, მაგრამ თუ თითოეული პიკაქსი იცვლის მხოლოდ ერთ ბაიტს, მაშინ ყველა სხვა პიკაქსს შეუძლია დაინახოს ეს ცვლილება და შეუძლია იმოქმედოს მასზე. მარტივი შეტყობინებების გადაცემა შესაძლებელია წინ და წინ, თუ გარკვეული ბაიტი შეიცვლება მხოლოდ ერთი პიკაქსით. ქოთანს შეუძლია შეცვალოს მნიშვნელობა რეესტრში და ერთი ან მეტი სხვა პიკაქსი იგრძნობს, რომ იცვლება და გადადის სერვო ან სხვა რამ და ჩართავს გამათბობელს. მეორე რეგისტრმა შეიძლება დააბრუნოს ტემპერატურა ოთახში. დააკოპირეთ და ჩასვით პროგრამები თავის მხრივ პიკაქს პროგრამისტად და გადმოწერეთ ისინი თითოეულ შესაბამის ჩიპში პიკაქს პროგრამისტის შიგნიდან გადმოწერის ლურჯი ისრის გამოყენებით. Tx: ძირითადი: სერინი 3, N2400, ("მონაცემები"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 'მიიღეთ პაკეტი კომპიუტერიდან თუ pin2 = 0 შემდეგ 'შეამოწმე ჩამრთველი და დააყენე რეგისტრი b0 სტატუსის მიხედვით b0 = 0 სხვა b0 = 1 endif თუ b1 = 0 მაშინ' სხვა პიკაქსების ნაკრები b1 დამოკიდებულია b0 დაბალი 1 'გამოიწვია სხვა მაღალი 1' led endif serout 0, N2400, ("მონაცემები", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) "კომპიუტერში დაბრუნება goto mainand Rx: main: serin 3, N2400, ("მონაცემები"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 'მიიღეთ კომპიუტერიდან პაკეტი b1 = b0' შეცვალეთ რეესტრი b1 თანაბარი რეგისტრაციით b0 თუ b1 = 0 მაშინ დაბალი 1 'led off სხვა მაღალი 1' led endif serout 0, N2400, ("მონაცემები", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) 'კომპიუტერში დაბრუნება გადავიდა მთავარი

ნაბიჯი 5: შექმენით Tx წრე

ააშენეთ Tx წრე
ააშენეთ Tx წრე

თუ თქვენ გადადიხართ წინ და უკან სამუშაო წრესა და პროგრამირების წრეს შორის, დარწმუნდით, რომ შეცვალეთ კავშირი ფეხი 2 -თან და 22k რეზისტორის მდებარეობა ფეხი 2 -დან ფეხი 4. ან შეგიძლიათ ააწყოთ ჩამოტვირთვის გამოყოფილი წრე და ამოძრაოთ ჩიპები მასშტაბით. უბრალოდ გაითვალისწინეთ, ჩართულია თუ არა გადმოტვირთვა, რადგან შეიძლება საკმაოდ დამაბნეველი იყოს. კერძოდ, გაითვალისწინეთ, რომ გაშვებული წრე არ იმუშავებს, თუ ფეხი 2 დარჩება მცურავი - საჭიროა დამიწება. ფეხი 2 არის ჩამოტვირთვის პინი და თუ ის დარჩა მცურავი, იგი იღებს მაწანწალა RF ფლურო განათებიდან და ჩიპი ფიქრობს, რომ სხვა პროგრამა იტვირთება.

ასევე აღსანიშნავია პიკაქსის ნომენკლატურა, რომელიც ფიზიკურ პინს უწოდებს ფეხს, ხოლო ვირტუალურ პინს - პინს. ამრიგად, კოდში პინ 2 -ის გამომავალი ფაქტიურად არის გამომავალი ფიზიკურ ფეხიზე 5. ეს შეიძლება უცნაურად მოგეჩვენოთ, მაგრამ ეს ნიშნავს, რომ კოდი შეიძლება გადავიდეს უფრო დიდ პიქსებზე, როგორიცაა 28 და 40 პინის ვერსიები და მაინც იმუშაოს.

ნაბიჯი 6: ააშენეთ Rx წრე

ააშენეთ Rx წრე
ააშენეთ Rx წრე

ეს წრე თითქმის იგივეა, რაც გადამცემი - მას უბრალოდ არ აქვს გადამრთველი.

ნაბიჯი 7: ჩაწერეთ VB. Net კოდი

ჩაწერეთ VB. Net კოდი
ჩაწერეთ VB. Net კოდი

შემეძლო შემექმნა კოდი და ეს პროგრამა ხელმისაწვდომი გამხდარიყო.exe, მაგრამ ზოგიერთი VB. Net- ის სწავლა იმდენად წარმოუდგენლად სასარგებლოა, რომ ღირს მისი ეტაპობრივად გავლა. თუ თქვენ მუშაობთ ორ სხვადასხვა კომპიუტერზე, შეგიძლიათ პროგრამის შექმნა.exe- ში, რომელიც ქმნის პატარა პროგრამულ უზრუნველყოფას, რომელიც შეიძლება დამონტაჟდეს მეორე კომპიუტერზე. ან შეგიძლიათ განათავსოთ VB. Net ორივე კომპიუტერზე და გაუშვათ პროგრამები VB. Net– დან. დავუშვათ თქვენ იცით როგორ გახსნათ ახალი VB.net პროექტი ნაბიჯი 7 და 8 https://www.instructables.com/id/S1MMU2XF82EU2GT /ცარიელ ფორმაზე მოდით დავამატოთ ინსტრუმენტების პანელის შემდეგი კომპონენტები და ჩავდოთ ისინი ფორმაში, როგორც ნაჩვენებია. ეტიკეტებისთვის და ტექსტური ყუთებისთვის, შეცვალეთ ტექსტის თვისება (ქვედა მარჯვენა კუთხეში) იმაზე, რაც საჭიროა. არ ინერვიულოთ ქრონომეტრის პარამეტრებზე - ჩვენ შევცვლით მათ კოდში, მაგრამ დარწმუნდით, რომ დააყენეთ ტაიმერი. თქვენ შეგიძლიათ გადაადგილოთ საგნები და არ არსებობს რეალური წესები ადგილმდებარეობის შესახებ. დიდი ტექსტური ყუთი არის RichTextBox და პატარა სამი ჩვეულებრივი Textboxes. შეკვეთის თვალსაზრისით, ჩვენ ვიწყებთ ფორმის ზედა ნაწილს და ქვემოთ მივდივართ. თუ რამეს დატოვებთ, იქნება შეცდომა კოდში, რომელიც უნდა აჩვენებდეს რაიმე სახის მინიშნებას. გთხოვთ აირჩიოთ შემთხვევითი ფაილის სახელი Textbox3– ისთვის - ეს არის სახელი თქვენი უნიკალური ჯგუფის პიკაქსებისა ftp სერვერზე და ცხადია, თუ ჩვენ ყველა ვიყენებთ იგივე სახელი, მაშინ მონაცემები დაიშლება! ------------------------------ NotesLabel1 ------------------ პიკაქსი CommunicationsLabel2 ------------------ FTP StatusLabel3 ------------------ StatusLabel4 ---------- -------- Picaxe RegistersLabel5 ------------------ რეგისტრაცია 0-13 Label6 ------------------ მნიშვნელობა 0-255Label7 ------------------ FTP ბმული ფაილის სახელი Textbox1 ---------------- 0 -------- ------------------------------------------ 0 არის ნული და არა OTextbox2 ----- ----------- 0 Textbox3 ---------------- Myfilename --------------------- ---------- შეცვალეთ ისე, რომ არ მოხდეს შეტაკება! ღილაკი 1 ------------------ შეცვალეთ

ნაბიჯი 8: დაამატეთ რამდენიმე კოდი

დაამატეთ რაიმე კოდი
დაამატეთ რაიმე კოდი

იხილეთ სხვა ინსტრუქციის მე -12 ნაბიჯი ღილაკის ადგილმდებარეობისთვის, რომელიც გადადის ფორმის ხედსა და კოდის ხედს შორის. გადართეთ კოდის ხედზე და ჩასვით შემდეგი კოდი. ყველა ფერი კვლავ უნდა გამოჩნდეს, როგორც ეკრანის სურათზე. თუ სტრიქონი სწორად არ არის კოპირებული სიტყვის შევსების პრობლემის გამო, წაშალეთ სივრცეები, სანამ შეცდომის შეტყობინება არ გაქრება. მე შევეცადე გამომეხმაურა სტრიქონების უმეტესობა, ასე რომ კოდს მაინც აქვს გარკვეული აზრი. წაშალეთ საჯარო კლასის ბიტი ისე, რომ ტექსტი ცარიელი იყოს ამის ჩასვლამდე - ამ კოდს უკვე აქვს საჯარო კლასი. თუ ტექსტის ყუთის მსგავსი ობიექტი არ არის განთავსებული ფორმაზე ან აქვს არასწორი სახელი, მაშინ ის გამოჩნდება ტექსტის კოდში, რომლის ქვეშ არის მოლურჯო ცისფერი ხაზი. ისეთი რამ, როგორიცაა მარცხენა (და მარჯვენა (სტრიქონებისათვის Public Class Form1 Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer) 'ძილის განცხადებებისთვის Dim WithEvents serialPort As New IO. Ports. SerialPort' სერიული პორტი აცხადებს Dim PicaxeRegisters (0 დან 13 -მდე) როგორც ბაიტი 'რეგისტრირებს b0 to b13 Dim ModifyFlag As Boolean Private Sub Form1_Load (ByVal გამგზავნი როგორც ობიექტი, ByVal e As System. EventArgs) ამუშავებს მე. ჩატვირთვას' ეს ყველაფერი სჭირდება. Timer1. Enabled = True 'ჩაწერეთ ეს კოდი როგორც ნაგულისხმევი ყალბი Timer1. Interval = 20000' ყოველ 20 წამში PictureBox1. BackColor = ფერი. ნაცრისფერი 'იწყება comms ყუთებით ნაცრისფერი PictureBox2. BackColor = ფერი. ნაცრისფერი ModifyFlag = მცდარი' თუ მნიშვნელობის ხელით შეცვლა მაშინ s kip download RichTextBox1. Multiline = მართალია 'ასე შეიძლება ერთზე მეტი ხაზის ჩვენება ზარის ჩვენება DisplayPicaxeRegisters ()' აჩვენეთ 14 რეგისტრი Call ReadFTPFilename () 'წაიკითხეთ ფაილის სახელი დისკიდან (შეინახება ყოველ 20 წამში) End Sub Sub SerialTxRx () Dim DataPacket (0 -დან 17 -მდე) ბაიტის სახით "მონაცემთა მთელი პაკეტი" მონაცემები "+14 ბაიტი Dim i როგორც მთელი რიცხვი" i ყოველთვის სასარგებლოა მარყუჟებისთვის და ა.შ., 1)) 'დაამატეთ სიტყვა "მონაცემები" პაკეტს შემდეგი For i = 0 დან 13 DataPacket (i + 4) = PicaxeRegisters (i)' დაამატეთ ყველა ბაიტი პაკეტში შემდეგი თუ serialPort. IsOpen მაშინ serialPort. Close () 'მხოლოდ იმ შემთხვევაში, თუ უკვე გახსნილია დაასრულე სერიალპორტით. მცირე პიკაქსები.პარტიულობა = IO. Ports. Parity. None 'no parity. DataBits = 8' 8 ბიტი. StopBits = IO. Ports. StopBits. One 'one stop bit. ReadTimeout = 1000' მილიწამი ds ასე გადის 1 წამში, თუ პასუხი არ არის. გახსენით () 'გახსენით სერიული პორტი. DiscardInBuffer ()' გაასუფთავეთ შეყვანის ბუფერი. დაწერეთ (DataPacket, 0, 18) 'გაგზავნეთ მონაცემთა პაკეტის მასივი Call Sleep (300)' 100 მილიწამი მინიმალური დაველოდოთ მონაცემების დაბრუნებას და მეტი თუ მონაცემთა ნაკადი უფრო გრძელია. წაიკითხეთ (DataPacket, 0, 18) "წაიკითხეთ მონაცემთა პაკეტის მასივში. დახურეთ ()" დახურეთ სერიული პორტი End For For i = 4 დან 17 PicaxeRegisters (i - 4) = DataPacket (i) 'გადაიტანეთ ახალი მონაცემთა პაკეტი რეესტრის მასივში შემდეგი PictureBox1. BackColor = Color. GreenYellow' სამუშაო Catch ex Exception როგორც PictureBox1. BackColor = ფერი. წითელი 'არ მუშაობს ბოლომდე სცადეთ ბოლო ქვე ქვე FTPUpload (ByVal ფაილის სახელი როგორც სტრიქონი) Dim localFile As String 'მონაცემების შესანახად Dim remoteFile As String' ფაილის სახელი არის მგრძნობიარე, ეს ნამდვილად მნიშვნელოვანია Const host As String = "ftp://ftp.0catch.com" 'შენიშვნა 0 არის ნული არ არის სიმბოლო O Const მომხმარებლის სახელი როგორც სტრიქონი = "picaxe.0catch.com" Const პაროლი როგორც სიმებიანი = "picaxetester" Dim URI როგორც სიმებიანი localFile = ფაილის სახელი 'შეიძლება არ იყოს საჭირო, მაგრამ ადგილმდებარეობის განსაზღვრის შემთხვევაში მაგ: c: / mydirectory შეიძლება ადვილად დაამატოთ ამ გზით. Net. FtpWebRequest = CType (System. Net. FtpWebRequest. Create (URI), System. Net. FtpWebRequest) ftp. Credentials = New System. Net. NetworkCredential (მომხმარებლის სახელი, პაროლი) 'შესვლა ftp. KeepAlive = ყალბი' იქნება გათიშვა ერთხელ გაკეთებული ftp. UseBinary = ჭეშმარიტი 'გამოიყენეთ ორობითი კომუნიკაცია ftp. დრო = 9000' დროის გასვლა 9 წამის შემდეგ - ძალიან სასარგებლოა, რადგან ftp ზოგჯერ კვდება 'დროის გასვლა (და საათის სიხშირე 20 წმ) შეიძლება დაგჭირდეთ უფრო ნელი იყოს დიაპაზონის კავშირებისთვის ftp. მეთოდი = System. Net. WebRequestMethods. Ftp. UploadFile 'დაიწყეთ ფაილის გაგზავნა Dim fs როგორც ახალი FileStream (localFile, FileMode. Open)' გახსენით ლოკალური ფაილი Dim ფაილი შინაარსი (fs. Length) როგორც Byte 'წაიკითხეთ მეხსიერებაში fs. Read (ფაილის შინაარსი, 0, fs. Length) fs. Close () 'დახურეთ ფაილი Dim requestStream As Stream = ftp. GetRequestStream ()' დაწყება ftp ბმულის მოთხოვნაSt ream. Write (filecontents, 0, filecontents. Length) 'send it requestStream. Close ()' დახურეთ ბმული PictureBox2. BackColor = Color. GreenYellow 'შეცვალეთ ყუთი მწვანედ, რომ ითქვას კარგად მუშაობს Label2. Text = "FTP დაკავშირებულია" ტექსტი ნათქვამია დაკავშირებულია დაჭერა 'ვერ აკავშირებს PictureBox2. BackColor = Color. Red' ყუთს წითლად, როგორც კავშირი არ აქვს Label2. Text = "FTP ატვირთვა ვერ ხერხდება" ტექსტი, რომელშიც ნათქვამია, რომ კავშირი ვერ მოხერხდა ბოლომდე სცადეთ ქვე ქვე FTP გადმოტვირთვა (ByVal ფაილის სახელი როგორც სიმებიანი) 'ჩამოტვირთვებს დისტანციურ ფაილს ლოკალურ ფაილში dim localFile As String' მონაცემების შესანახად Dim remoteFile As String 'ფაილის სახელი არის მგრძნობიარე, ეს მართლაც მნიშვნელოვანია Const host As String = "ftp://ftp.0catch.com" Const username As String = "picaxe.0catch.com "Const password as String =" picaxetester "Dim URI As String 'localFile =" C: / " + ფაილის სახელი' ინახება ძირეულ დირექტორიაში, მაგრამ შეუძლია შეცვალოს ეს localFile = ფაილის სახელი ', ასე რომ შეიძლება დაამატოთ c: / საჭიროების შემთხვევაში ფაქტობრივი მდებარეობა სრული მისამართი სცადეთ Dim ftp As System. Net. FtpWebRequest = CType (System. Net. FtpWebRequest. Create (URI), System. Net. FtpWebRequest) ftp. Credentials = ახალი სისტემა. NetworksCredential (მომხმარებლის სახელი, პაროლი) 'შესვლა ftp. KeepAlive = ყალბი 'გათიშვის შემდეგ დასრულდება ftp. UseBinary = ჭეშმარიტი' ორობითი რეჟიმი ftp. Timeout = 9000 'ვადა 9 წამის შემდეგ ftp. Method = System. Net. WebRequestMethods. Ftp. DownloadFile' ჩამოტვირთეთ ფაილი ' არ ვიცი რამდენად დიდია ფაილი საპასუხოდ As System. Net. FtpWebResponse = CType (ftp. GetResponse, System. Net. FtpWebResponse) respondStream As IO. Stream = respond. GetResponseStream fs As New IO. FileStream (localFile, IO. FileMode. Create) Dim ბუფერი (2047) როგორც Byte Dim წაიკითხა როგორც მთელი რიცხვი = 0 წაიკითხე = respondStream. წაიკითხე (ბუფერი, 0, ბუფერი. სიგრძე) 'ცალი ftp fs.- დან დაწერე (ბუფერი, 0, წაიკითხე)' და ჩაწერეთ ფაილში მარყუჟი სანამ არ წაიკითხავთ = 0 'სანამ ნაჭრები არ იქნება e ფაილი End გამოყენებით respondStream. Close () 'დახურეთ მაშინაც კი, თუ იქ არაფერი იყო. მუშაობდა დაასრულე Catch- ის გამოყენებით "შეცდომის კოდების დაყენება აქ PictureBox2. BackColor = Color. Red" წითელი ყუთი, რადგან ის არ მუშაობდა Label2. Text = "FTP Download Fail" და შეტყობინება ამის დასასრულებლად სცადეთ დაასრულეთ Sub Sub Private Sub Timer1_Tick (ByVal გამგზავნი როგორც System. Object, ByVal e As System. EventArgs) ამუშავებს ქრონომეტრს 1. შენიშვნა თუ ModifyFlag = ყალბი მაშინ 'თუ მომხმარებელმა შეცვალა ბაიტი მაშინ არ ჩამოტვირთოთ Label3. Text = "გადმოწერა" System. Windows. Forms. Application. DoEvents () 'ახალი ლეიბლის ტექსტი აჩვენებს ზარს FTPDownload (TextBox3. Text)' ჩამოტვირთეთ დისტანციური ფაილი Label3. Text = "გადმოწერილია" System. Windows. Forms. Application. DoEvents () დარეკეთ ReadRemoteFileToRegisters () "შეინახეთ ფაილის ნომრები რეგისტრაციის მასივში Label3. Text = "საუბარი პიკასთან" System. Windows. Forms. Application. DoEvents () Else ModifyFlag = ყალბი 'გადატვირთეთ დროშა დაასრულე თუ ზარი SerialTxRx () 'გაგზავნე პიკაქსზე და წაიკითხე უკან Label3. Text = "გაგზავნილი და მიღებული პიკაქსიდან" System. Windows. Forms. Application. DoEvents () დარეკეთ DisplayPicaxeRegisters () დარეკეთ SaveRegistersToLocalFile ()' შეინახეთ ნომრები ფაილში Label3. Text = "ატვირთვა" System. Windows. Forms. Application. DoEvents () დარეკეთ FTPUpload (TextBox3. Text) 'გამოაგზავნეთ ftp საიტზე ჩემი სახელით დასახელებული Label3. Text = "დასვენება" დარეკეთ SaveFTPFilename () "ასე იკითხება in გადატვირთვის ბოლოს Sub Sub DisplayPicaxeRegisters () Dim i As Integer Dim რეგისტრატორი რიცხვი როგორც სიმებიანი RichTextBox1. Multiline = ჭეშმარიტი 'ასე რომ შეიძლება გამოჩნდეს ერთზე მეტი სტრიქონი ტექსტის ყუთში RichTextBox1. Clear ()' ტექსტის ყუთის გასუფთავება i = 0 დან 13 მდე registernumber = მორთვა (Str (i)) 'მოაცილეთ წამყვანი სივრცეები თუ i <10 მაშინ registernumber = "0" + registernumber' დაამატეთ 0 რიცხვებს 10 წლამდე)) + Chr (13)) შემდეგი 'chr (13) არის ვაგონის დაბრუნება ასე ახალი ხაზი End Sub Private Sub Button1_Click (ByVal გამგზავნი როგორც System. Object, ByVal e As System. EventArgs) ამუშავებს ღილაკს 1. დააწკაპუნეთ Dim i As Integer 'დიაპაზონიდან პირველი ამოწმეთ i = Val (TextBox1. Text) თუ i <0 ან i> 13 მაშინ TextBox1. Text = 0 დასასრული თუ i = Val (TextBox2. Text) თუ i <0 ან i> 255 მაშინ TextBox2. Text = 0 დასრულდება თუ PicaxeRegisters (Val (TextBox1. Text)) = Val (TextBox2. Text) 'შეცვალეთ მნიშვნელობა Call DisplayPicaxeRegisters ()' და ეკრანის განახლება ModifyFlag = ჭეშმარიტი 'და შემდეგი ftp ბმული გამოტოვეთ გადმოტვირთვა ტექსტის ყუთში i = 0 დან 13 PrintLine (1, Str (PicaxeRegisters (i))) 'შეინახეთ 14 მნიშვნელობა შემდეგი FileClose (1)' დახურეთ ფაილი End Sub Sub ReadRemoteFileToRegisters () 'წაიკითხეთ ადგილობრივი ტექსტური ფაილი რეგისტრაციის მასივში Dim i As Integer Dim LineOfText As String სცადეთ FileOpen (1, TextBox3. Text, OpenMode. Input) 'წაიკითხეთ დისტანციური ფაილის სახელი i = 0 დან 13 LineOfText = LineInput (1)' წაკითხული 14 ლაინში es PicaxeRegisters (i) = Val (LineOfText) 'ტექსტის მნიშვნელობებად გადაქცევა შემდეგი FileClose (1) Catch ex ex Exception FileClose (1)' ფაილი არ არსებობს, ასე რომ არაფერი გააკეთო ბოლომდე სცადე ბოლომდე Sub ReadFTPFilename () 'ასე რომ სახელი დისტანციური ftp ფაილი იგივეა მომდევნო დროს როდესაც ეს პროგრამა გაუშვით Dim LineOfText As String სცადეთ FileOpen (1, "FTPFilename.txt", OpenMode. Input) "გახსენით ფაილი LineOfText = LineInput (1) TextBox3. Text = LineOfText" წაიკითხეთ სახელი FileClose (1) Catch ex როგორც გამონაკლისი FileClose (1) დასრულება სცადეთ ბოლომდე Sub SaveFTPFilename () FileOpen (1, "FTPFilename.txt", OpenMode. Output) 'შეინახეთ დისტანციური ftp ფაილის სახელი PrintLine (1, TextBox3. Text) FileClose (1) ბოლო SubEnd კლასი

ნაბიჯი 9: გაუშვით პროგრამა ორივე კომპიუტერზე

გაუშვით პროგრამა ორივე კომპიუტერზე
გაუშვით პროგრამა ორივე კომპიუტერზე

დაიწყეთ პროგრამის გაშვება ეკრანის ზედა ნაწილში მწვანე სამკუთხედის დაჭერით - ღილაკი "გამართვის გამართვის დაწყება". არაფერი მოხდება 20 წამის განმავლობაში და შემდეგ პროგრამა შეეცდება დაუკავშირდეს ftp სერვერს და შეეცდება დაუკავშირდეს პიკასს. სურათების ყუთები იქნება წითელი ან მწვანე. Ftp ადგილმდებარეობა არის უფასო ვებგვერდი და ნებისმიერს შეუძლია გამოიყენოს ეს, მაგრამ თქვენ უნდა გამოიყენოთ სხვა ftp სამუშაო ფაილის სახელი (ჩემი არის DoctorAcula1) წინააღმდეგ შემთხვევაში ჩვენ ყველას შეგვიძლია მივიღოთ ერთმანეთის მონაცემები, თუ ვიყენებთ ერთი და იმავე ფაილის სახელს! თუ მოგწონთ, საბოლოოდ შეგიძლიათ მიიღოთ თქვენი საკუთარი ftp საიტი - უბრალოდ შეცვალეთ ftp ადგილმდებარეობა, მომხმარებლის სახელი და პაროლი კოდში ორ ადგილას ჩემი 0Catch ვებ – გვერდიდან. ვებსაიტების უმეტესობა იძლევა ftp. მრავალ კომპიუტერს შეუძლია ერთი და იგივე ftp ფაილზე წვდომა - ftp ფაილების სერვერი ალაგებს რა თანმიმდევრობით ხდება ეს. ზოგჯერ ხდება მონაცემების შეჯახება ან გათიშვა და ეს ხდება ყოველ 20 ფაილს კითხულობს.კოდში არის ვადა, თუ ეს მოხდება, ასე რომ ის არ დააბრუნებს მონაცემებს და არა დაზიანებულ მონაცემებს. 128 კბსტ სიჩქარის მქონე ფართოზოლოვანი კავშირის გამოყენება ნიშნავს ფაილის ატვირთვას დაახლოებით 3 წამი, მაგრამ ზოგჯერ 8 წამამდე, რომელთა უმეტესობა აღებულია ხელის ჩამორთმევაში და არა მონაცემთა გადაცემაში. ეს ადგენს ტაიმერს 1 დრო მინიმუმ 20 წამი პიკაქსთან გადმოტვირთვის, ატვირთვის და ჩეთის გათვალისწინებით. ძალიან სწრაფი ფართოზოლოვანი საშუალებით თქვენ შეძლებთ ციკლის დროის შემცირებას. თქვენ შეგიძლიათ შეცვალოთ რეგისტრაცია ხელით VB პროგრამის ფარგლებში. თუ ასეა, შემდეგი ტაიმერის ციკლი გამოტოვებს გადმოტვირთვას ftp საიტიდან და აგზავნის ახალ მონაცემებს პიკაქსზე, შემდეგ კითხულობს უკან და ატვირთავს მას. ამრიგად, ახალი მონაცემები პოულობს გზას ამ ჯგუფთან დაკავშირებულ ყველა პიკასზე. ეს გამოსადეგია გამართვისთვის და/ან კომპიუტერული პროგრამული უზრუნველყოფის მიკროკონტროლის აპარატურის მარყუჟში დასაკავშირებლად. ვებსაიტებს ასევე შეუძლიათ წვდომა აპარატურულ მარყუჟზე PERL სკრიპტის გამოყენებით ან მსგავსი, რათა დაწერონ ახალი ფაილი ftp საიტზე. ეს ეკრანის ანაბეჭდი გადაღებულია Tx ჩიპით, გადამრთველი ჩართული იყო და რეგისტრი b0 = 1 იყო გაგზავნილი Rx ჩიპზე, რომელიც შემდეგ შეიცვალა რეგისტრაცია b1 ასევე 1 -ით. წამყვანი ასე იყო ორივე დაფაზე განათებული. ეს არის ტრივიალური პროგრამა, მაგრამ ადვილია ჩართოთ 3.6Kw ტუმბო led– ის ნაცვლად. კიდევ რამდენიმე იდეა არის https://drvernacula.topcities.com/ მათ შორის პიკაქსების დაკავშირება მზის ენერგიაზე მომუშავე რადიო ბმულების საშუალებით. რადიო ბმულებთან ერთად ინტერნეტით შესაძლებელია "მანქანები" მიაღწიონ მსოფლიოს მრავალ კუთხეს. არსებობს რამდენიმე იდეა პიკაქსის ფორუმზე ამ იდეის შემდგომი განხორციელების და კომპიუტერისა და ftp საიტის შეცვლის მიზნით ვებ სერვერის ჩიპებით, რომლებიც პირდაპირ ჩართულია როუტერში. ცხადია, ეს შეამცირებს ბმულის ენერგიის მოხმარებას. თუ თქვენ დაინტერესებული ხართ შემდგომი დისკუსიებით, გთხოვთ განათავსოთ Intstructable კომენტარები და/ან პიკაქს ფორუმი. დოქტორი ჯეიმს მოქშამი ადელაიდა, სამხრეთ ავსტრალია

ნაბიჯი 10: კოდის ეკრანის ანაბეჭდები

კოდის ეკრანის ანაბეჭდები
კოდის ეკრანის ანაბეჭდები

მოთხოვნისამებრ, აქ არის სერია vb.net კოდის ეკრანის ანაბეჭდები, ყველა ფორმატირებული ადგილით. ეს კოდი რეალურად გადაწერილია ამ ინსტრუქციის უკან და ფორმატირება ხელახლა გამოჩნდა ავტომატურად. უკეთესი იქნება ტექსტის კოპირება და ჩასმა, ვიდრე ამ სურათების წაკითხვა, მაგრამ ეს სასარგებლო იქნება, თუ ინტერნეტ კაფეში ხართ და ვერ დააინსტალირებთ vb.net.

ნაბიჯი 11: ეკრანის სურათი 2

ეკრანის ანაბეჭდი 2
ეკრანის ანაბეჭდი 2

ეკრანის ანაბეჭდი 2

ნაბიჯი 12: ეკრანის სურათი 3

ეკრანის ანაბეჭდი 3
ეკრანის ანაბეჭდი 3

ეკრანის ანაბეჭდი 3

ნაბიჯი 13: ეკრანის სურათი 4

ეკრანის სურათი 4
ეკრანის სურათი 4

ეკრანის სურათი 4

ნაბიჯი 14: ეკრანის სურათი 5

ეკრანის ანაბეჭდი 5
ეკრანის ანაბეჭდი 5

ეკრანის ანაბეჭდი 5

ნაბიჯი 15: ეკრანის სურათი 6

ეკრანის ანაბეჭდი 6
ეკრანის ანაბეჭდი 6

ეკრანის ანაბეჭდი 6

გირჩევთ: