Inhoudsopgave:

Wereldwijde microcontroller-link voor minder dan $ 20: 15 stappen
Wereldwijde microcontroller-link voor minder dan $ 20: 15 stappen

Video: Wereldwijde microcontroller-link voor minder dan $ 20: 15 stappen

Video: Wereldwijde microcontroller-link voor minder dan $ 20: 15 stappen
Video: FIRE IN 3 STAPPEN 2024, Juli-
Anonim
Wereldwijde microcontroller-link voor minder dan $ 20
Wereldwijde microcontroller-link voor minder dan $ 20

Bedien je huisthermostaat vanaf je werk. Zet een sproeier aan van waar ook ter wereld door een schakelaar om te zetten. Deze Instructable laat zien hoe je twee of meer $ 4 microcontrollers kunt koppelen met behulp van de ruggengraat van internet en een aantal eenvoudige VB. Net-code. Dit bouwt voort op een eerdere Instructable die laat zien hoe je een microcontroller aan een pc kunt koppelen en een pot kunt gebruiken om een servo te besturen https://www.instructables.com/id/Control-real-world-devices-with-your-PC/ Deze keer hebben we een microcontoller die praat met een VB. Net-programma en vervolgens met een ftp-website, terug naar een andere VB. Net programma en vandaar een tweede microcontroller waar ook ter wereld, met of zonder menselijke tussenkomst. Hoe moeten de machines in The Matrix het anders ooit overnemen als ze niet met elkaar kunnen praten?

Stap 1: Verzamel de onderdelen

Verzamel de onderdelen
Verzamel de onderdelen

Veel van de onderdelen zijn hetzelfde als in de PC Control Instructable https://www.instructables.com/id/Control-real-world-devices-with-your-PC/ en het wordt aangeraden dit eerst te voltooien voordat u probeert om twee microcontrollers te koppelen. Hoewel het heel goed mogelijk is om een pot te gebruiken om een servo te besturen, gaan we deze keer voor iets eenvoudiger: een schakelaar die een led aanzet. De schakelaar kan gemakkelijk een tankniveausensor zijn en de led kan een pomp in de buurt van een rivier zijn, maar laten we eerst iets eenvoudigs laten werken. Onderdelen - Twee Picaxe 08M-chips - verkrijgbaar bij vele bronnen, waaronder Rev Ed https://www.rev- ed.co.uk/picaxe/ (VK), PH Anderson https://www.panderson.com/ (VS) en Microzed https://www.microzed.com.au/ (Australië). Deze chips zijn minder dan $ 4US. Twee van: Protoboard, 9V-batterij en batterijklemmen, 10k-weerstand, 22k-weerstand, 33uF 16V-condensator, 0.1uF-condensator, 7805L laagvermogen 5V-regelaar, draden (vaste telefoon-/datakabel bijv. Cat5/6), LED, 1k-weerstand. 1 van: D9 female socket en cover en 2 meter 3 (of 4) core datadraad (te downloaden) en een tuimelschakelaar. 2 computers met 9-pins seriële poorten (debuggen kan echter op één computer) en een internetverbinding. Voor computers zonder seriële poort, een USB-naar-serieel apparaat https://www.rev-ed.co.uk/docs/axe027.pdf en een kleine stereo-aansluiting.

Stap 2: Download en installeer sommige software

Sommige software downloaden en installeren
Sommige software downloaden en installeren

We hebben de gratis VB. Net en de picaxe-controllersoftware nodig en als je de pc-controller Instructable hebt gedaan, heb je deze al. VB. Net (Visual Basic Express) is beschikbaar via https://msdn2.microsoft.com/en -us/express/aa718406.aspxDe picaxe-software is beschikbaar op https://www.rev-ed.co.uk/picaxe/U moet zich bij microsoft registreren om de download te krijgen - als dit een probleem is, gebruik dan een nep-e-mail of zoiets. Ik vond het eigenlijk nuttig om mijn echte e-mail te geven omdat ze af en toe updates sturen. waar studenten meestal binnen een paar uur antwoord op vragen kunnen krijgen. Het forum begrijpt zelfs de eenvoudigste vragen erg goed, aangezien sommige leerlingen nog op het niveau van de basisschool zitten. Wees alsjeblieft niet bang om hulp te vragen!

Stap 3: Bouw een downloadcircuit

Bouw een downloadcircuit
Bouw een downloadcircuit

Dit downloadcircuit maakt gebruik van een picaxe-chip, een paar weerstanden, een regelaar en een 9V-batterij. Meer informatie is beschikbaar in de picaxe-documentatie/help die in het helpmenu van het programma verschijnt. Als alle onderdelen bij de hand zijn, duurt het maar een paar minuten om het circuit te bouwen. Als een chip eenmaal is geprogrammeerd, behoudt deze zijn programma in EEPROM, zelfs als de stroom is uitgeschakeld. Aangezien we twee chips aan het programmeren zijn, is het misschien de moeite waard om de chips te labelen, zodat u weet welke welke is. Je kunt altijd teruggaan en een chip herprogrammeren door een link te verwijderen en een weerstand te verplaatsen.

Ik zou ook kunnen toevoegen dat picaxes prima werken op 3 AA-batterijen. Een 5V gereguleerde voeding is handig voor analoge ingangen omdat de referentiespanningen niet veranderen, maar voor eenvoudige aan/uit-circuits is een gereguleerde voeding niet nodig. De 5V reg kan in deze situaties worden weggelaten.

Stap 4: Programmeer de chips

Programmeer de chips
Programmeer de chips

We noemen één programma Tx en één Rx. Tx is de controlerende chip en heeft een schakelaar en een led. Rx heeft ook een led. Wanneer de schakelaar verandert, gaat het signaal van Tx naar Rx, verandert de led en verandert ook een tweede variabele die dan teruggaat naar Tx. Dus druk op de schakelaar en in minder dan een minuut verandert de led op beide circuits om aan te geven dat het bericht daar is aangekomen en dat de Rx handelt op de nieuwe schakelaarpositie. Op het eenvoudigste niveau heeft de picaxe 14 single-byte registers. Wanneer een virtueel netwerk wordt gemaakt, koppelen we al die registers aan elkaar, dus als een byte verandert in één picaxe, verandert deze in alle picaxes. Het is duidelijk dat als twee picaxes dezelfde byte proberen te veranderen, het erg verwarrend wordt, maar als elke picaxe maar één byte verandert, kunnen alle andere picaxes die verandering zien en ernaar handelen. Eenvoudige berichten kunnen heen en weer worden doorgegeven als een bepaalde byte slechts door één picaxe wordt gewijzigd. Een pot kan de waarde in een register veranderen en een of meer andere picaxes kunnen die verandering voelen en een servo of wat dan ook verplaatsen en een verwarming aanzetten. Een tweede register zou de temperatuur in de kamer terug kunnen sturen. Kopieer en plak de programma's om de beurt in de picaxe-programmer en download ze naar elk van de respectieve chips met behulp van de blauwe downloadpijl vanuit de picaxe-programmer. Tx:main:serin 3, N2400, ("Data"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13' pakket ophalen van computer als pin2= 0 test dan de schakelaar en stel register b0 afhankelijk van status b0=0 else b0=1 endif if b1=0 then' andere picaxe sets b1 afhankelijk b0 low 1' led off else high 1' led on endif serout 0, N2400, ("Gegevens", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13)' stuur terug naar computer ga naar het vasteland en Rx:main:serin 3, N2400, ("Data"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13' haal pakket op van computer b1=b0' verander register b1 naar gelijk aan register b0 als b1 =0 dan laag 1' ging uit else high 1' led aan endif serout 0, N2400, ("Data", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13)' terugsturen naar computer ga naar hoofd

Stap 5: Bouw het Tx-circuit

Bouw het Tx-circuit
Bouw het Tx-circuit

Als u heen en weer wisselt tussen een werkend circuit en een programmeercircuit, zorg er dan voor dat u de verbinding naar been 2 en de locatie van de 22k-weerstand van been 2 naar been 4 verandert. Of u kunt een speciaal downloadcircuit bouwen en de chips verplaatsen aan de overkant. Houd er rekening mee of een circuit actief of aan het downloaden is, want het kan behoorlijk verwarrend zijn. Houd er in het bijzonder rekening mee dat een lopend circuit niet werkt als been 2 zwevend blijft - het moet worden geaard. Been 2 is de downloadpin en als hij zweeft, pikt hij verdwaalde RF op van fluorlampen en denkt de chip dat er een ander programma wordt gedownload.

Het is ook de moeite waard om de picaxe-nomenclatuur te noemen die een fysieke pin een been noemt en een virtuele pin een pin. Dus een uitvoer op pin 2 in code is eigenlijk een uitvoer op fysiek been 5. Dit lijkt misschien vreemd, maar het betekent dat code kan worden geport naar grotere picaxes zoals de 28- en 40-pins versies en nog steeds werkt.

Stap 6: Bouw het Rx-circuit

Bouw het Rx-circuit
Bouw het Rx-circuit

Dit circuit is bijna hetzelfde als de zender - het heeft alleen geen schakelaar.

Stap 7: Schrijf wat VB. Net-code

Schrijf wat VB. Net-code
Schrijf wat VB. Net-code

Ik had de code kunnen compileren en dit programma beschikbaar kunnen maken als een gecompileerde.exe, maar het leren van wat VB. Net is zo ongelooflijk nuttig dat het de moeite waard is om het stap voor stap door te nemen. Als u dit op twee verschillende computers uitvoert, kunt u het programma in een.exe-bestand bouwen dat een klein installatieprogramma maakt dat op de tweede computer kan worden geïnstalleerd. Of u kunt VB. Net op beide computers plaatsen en de programma's uitvoeren vanuit VB. Net. Laten we aannemen dat u weet hoe u een nieuw VB.net-project kunt openen vanaf stap 7 en 8 van https://www.instructables.com/id/S1MMU2XF82EU2GT /Laten we op het lege formulier de volgende componenten van de werkbalk toevoegen en ze op het formulier plaatsen op de locaties zoals weergegeven. Wijzig voor de labels en de tekstvakken de teksteigenschap (rechtsonder) in wat nodig is. Maak je geen zorgen over de instellingen voor de timer - we zullen ze in de code veranderen, maar zorg ervoor dat je een timer plaatst. Je kunt dingen verplaatsen en er zijn geen echte regels over locatie. Het grote tekstvak is een RichTextBox en de kleinere drie zijn gewone tekstvakken. Qua volgorde beginnen we bovenaan het formulier en gaan we naar beneden. Als je iets weglaat, zal er een fout in de code zijn die een soort aanwijzing zou moeten geven. Kies een willekeurige bestandsnaam voor Textbox3 - dit is de naam van je unieke groep picaxes op de ftp-server en uiteraard als we allemaal de dezelfde naam, dan raken de gegevens in de war!Sorry voor de streepjes in deze tabel - door spaties in te voeren verliest de opmaak in de tabel. Toolbox-object-------Tekst----------- ------------------------------NotesLabel1------------------Picaxe CommunicationsLabel2------------------FTP StatusLabel3------------------StatusLabel4---------- --------Picaxe RegistersLabel5------------------Registreer 0-13Label6------------------ Waarde 0-255Label7------------------ FTP-link bestandsnaamTextbox1----------------0-------- -------------------------------------- 0 is een nul, geen OTextbox2----- -----------0Textbox3----------------Mijnbestandsnaam--------------------- ---------- Wijzigen zodat er geen botsingen zijn! Knop1------------------WijzigenRichtextbox1 Picturebox1 Picturebox2 Timer1

Stap 8: voeg wat code toe

Voeg wat code toe
Voeg wat code toe

Zie stap 12 van de andere instructable voor de locatie van de knop die schakelt tussen formulierweergave en codeweergave. Schakel over naar de codeweergave en plak de volgende code erin. De kleuren zouden allemaal weer moeten verschijnen zoals in de schermafbeelding. Als een regel niet goed is gekopieerd vanwege een wordwrap-probleem, verwijder dan spaties totdat de foutmelding verdwijnt. Ik heb geprobeerd de meeste regels te becommentariëren, zodat de code op zijn minst enige zin heeft. Verwijder de openbare klasse-bit zodat de tekst leeg is voordat u deze plakt - deze code heeft al een openbare klasse. Als een object zoals een tekstvak niet op het formulier is geplaatst of de verkeerde naam heeft, komt het in de tekstcode met een golvende blauwe lijn eronder. Imports System. IOImports Strings = Microsoft. VisualBasic ' dus kan gebruiken dingen als left(en right(for stringsPublic Class Form1 Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer) ' for sleep statements Dim WithEvents serialPort As New IO. Ports. SerialPort ' serial port declare Dim PicaxeRegisters (0 tot 13) As Byte ' registreert b0 tot b13 Dim ModifyFlag As Boolean Private Sub Form1_Load (ByVal-afzender As Object, ByVal e As System. EventArgs) Handles Me. Load ', heb al deze onzin nodig -.net plaatst het automatisch wanneer ga form1events above/load Timer1. Enabled = True ' zet dit in de code standaard op false wanneer aangemaakt Timer1. Interval = 20000 ' elke 20 seconden PictureBox1. BackColor = Color. Gray ' begin met de communicatievakken grijs PictureBox2. BackColor = Color. Gray ModifyFlag = False ' als u een waarde handmatig wijzigt, s kip download RichTextBox1. Multiline = True ' dus kan meer dan één regel weergeven Bel DisplayPicaxeRegisters() ' toon de 14 registers Roep ReadFTPFilename() ' lees de bestandsnaam van de schijf (opnieuw opgeslagen elke 20 sec) End Sub Sub SerialTxRx() Dim DataPacket(0 To 17) As Byte ' hele datapakket "Data"+14 bytes Dim i As Integer ' i is altijd handig voor loops etc For i = 0 To 3 DataPacket(i) = Asc(Mid("Data", i + 1, 1)) ' voeg het woord "Data" toe aan het pakket Next For i = 0 To 13 DataPacket(i + 4) = PicaxeRegisters(i) ' voeg alle bytes toe aan het pakket Next If serialPort. IsOpen Then serialPort. Close() ' voor het geval dat het al is geopend. End If Try With serialPort. PortName = "COM1" ' De meeste nieuwe computers zijn standaard ingesteld op com1, maar elke computer van vóór 1999 met een seriële muis zal waarschijnlijk standaard op com2 staan . BaudRate = 2400 ' 2400 is de maximale snelheid voor kleine picaxes. Parity = IO. Ports. Parity. None ' geen pariteit. DataBits = 8 ' 8 bits. StopBits = IO. Ports. StopBits. One' one stop bit. ReadTimeout = 1000 ' millisecon ds dus time-out in 1 seconde als geen reactie. Open() ' open de seriële poort. DiscardInBuffer() ' wis de invoerbuffer. Write (DataPacket, 0, 18) ' stuur de datapacket-array Call Sleep (300) ' 100 milliseconden minimaal wachten tot gegevens terugkomen en meer als de gegevensstroom langer is. Read (DataPacket, 0, 18) ' lees terug in de datapakketarray. Close () ' sluit de seriële poort End With For i = 4 To 17 PicaxeRegisters (i - 4) = DataPacket(i) ' verplaats het nieuwe datapakket naar de registerarray Volgende PictureBox1. BackColor = Color. GreenYellow ' werkt Catch ex As Exception PictureBox1. BackColor = Color. Red ' werkt niet End Try End Sub Sub FTPUpload (ByVal Bestandsnaam As String) Dim localFile As String 'plaats om gegevens op te slaan Dim remoteFile As String ' bestandsnaam is hoofdlettergevoelig dit is erg belangrijk Const host As String = "ftp://ftp.0catch.com" ' let op de 0 is een nul geen teken O Const gebruikersnaam As String = "picaxe.0catch.com" Const wachtwoord As String = "picaxetester" Dim URI As String localFile = Bestandsnaam ' is misschien niet nodig, maar als u een locatie definieert, bijv. c:\mijndirectory, kan remoteFile op deze manier eenvoudig worden toegevoegd = "/" + Bestandsnaam ' bestand op ftp-server heeft "/" nodig vooraan URI = host + remoteFile Probeer ftp als systeem te dimmen. Net. FtpWebRequest = CType(System. Net. FtpWebRequest. Create(URI), System. Net. FtpWebRequest) ftp. Credentials = Nieuw System. Net. NetworkCredential(gebruikersnaam, wachtwoord) ' log in ftp. KeepAlive = False ' zal zijn loskoppelen eenmaal gedaan ftp. UseBinary = True ' use binary comms ftp. Timeout = 9000 ' timeout na 9 seconden - erg handig omdat ftp soms uitvalt 'time-out (en de klokfrequentie van 20 seconden) moet mogelijk langzamer zijn voor inbelverbindingen ftp. Methode = System. Net. WebRequestMethods. Ftp. UploadFile ' start met het verzenden van bestand Dim fs As New FileStream (localFile, FileMode. Open) ' open lokaal bestand Dim filecontents (fs. Length) As Byte ' lees in geheugen fs. Read (filecontents, 0, fs. Length) fs. Close() ' sluit het bestand Dim requestStream As Stream = ftp. GetRequestStream() ' start ftp link requestSt ream. Write(filecontents, 0, filecontents. Length) ' send it requestStream. Close() ' sluit de link PictureBox2. BackColor = Color. GreenYellow ' verander het vakje in groen om te zeggen dat het goed is gegaan Label2. Text = "FTP Connected" ' tekst die zegt dat het verbonden is Catch 'can't connect PictureBox2. BackColor = Color. Red ' box naar rood omdat er geen verbinding is Label2. Text = "FTP Upload Fail" ' tekst zegt dat verbinding is mislukt End Try End Sub Sub FTPDownload (ByVal Filename As String) ' downloads remotefile naar localfile Dim localFile As String 'plaats om gegevens op te slaan Dim remoteFile As String ' bestandsnaam is hoofdlettergevoelig dit is erg belangrijk Const host As String = "ftp://ftp.0catch.com" Const gebruikersnaam As String = "picaxe.0catch.com" Const wachtwoord As String = "picaxetester" Dim URI As String 'localFile = "C:\" + Bestandsnaam ' opslaan in hoofdmap maar kan dit wijzigen localFile = Bestandsnaam ' dus kan c:\ toevoegen indien nodig werkelijke locatie remoteFile = "/" + Bestandsnaam ' toegevoegd aan externe ftp-locatie URI = host + remoteFile ' make-up volledig adres Probeer Dim ftp As System. Net. FtpWebRequest = CType(System. Net. FtpWebRequest. Create(URI), System. Net. FtpWebRequest) ftp. Credentials = New System. Net. NetworkCredential(gebruikersnaam, wachtwoord) ' log in ftp. KeepAlive = False ' wordt verbroken na voltooiing ftp. UseBinary = True ' binaire modus ftp. Timeout = 9000 ' time-out na 9 seconden ftp. Method = System. Net. WebRequestMethods. Ftp. DownloadFile ' download een bestand ' lees in stukken als weet niet hoe groot het bestand is. Response gebruiken As System. Net. FtpWebResponse = CType(ftp. GetResponse, System. Net. FtpWebResponse) responseStream gebruiken As IO. Stream = response. GetResponseStream fs gebruiken As New IO. FileStream(localFile, IO. FileMode. Create) Dim buffer (2047) As Byte Dim read As Integer = 0 Do read = responseStream. Read(buffer, 0, buffer. Length) 'piece from ftp fs. Write(buffer, 0, read)' en schrijf naar bestand Loop Tot lezen = 0 ' totdat er geen stukken meer zijn responseStream. Close() ' sluit het ftp-bestand fs. Flush() ' flush clear fs. Close() ' en sluit th e bestand End Gebruik responseStream. Close() ' sluit het zelfs als er niets was End Gebruik response. Close() PictureBox2. BackColor = Color. GreenYellow ' groene doos zoals het werkte Label2. Text = "FTP Connected" ' en tekst die het zegt werkte Einde Gebruik Catch ' plaats hier foutcodes PictureBox2. BackColor = Color. Red ' rode doos omdat het niet werkte Label2. Text = "FTP Download Fail" ' en bericht om dit te zeggen End Try End Sub Private Sub Timer1_Tick (ByVal afzender As System. Object, ByVal e As System. EventArgs) Verwerkt Timer1. Tick If ModifyFlag = False Then 'als de gebruiker een byte heeft gewijzigd, download dan niet Label3. Text = "Downloading" System. Windows. Forms. Application. DoEvents() ' zodat nieuwe labeltekst wordt weergegeven. Call FTPDownload(TextBox3. Text) ' download extern bestand Label3. Text = "Gedownload" System. Windows. Forms. Application. DoEvents() Roep ReadRemoteFileToRegisters() ' sla bestandsnummers op in de registerarray Label3. Text = "Praat met picaxe" System. Windows. Forms. Application. DoEvents() Else ModifyFlag = False 'reset de vlag End If Call SerialTxRx() ' stuur naar de picaxe en lees het terug Label3. Text = "Verzonden en ontvangen van picaxe" System. Windows. Forms. Application. DoEvents() Bel DisplayPicaxeRegisters() Roep SaveRegistersToLocalFile() ' nummers opslaan in bestand Label3. Text = "Uploaden" System. Windows. Forms. Application. DoEvents() Call FTPUpload(TextBox3. Text) ' stuur terug naar ftp-site met de naam mijn naam Label3. Text = "Resing" Call SaveFTPFilename() ' zo leest in wanneer herstart End Sub Sub DisplayPicaxeRegisters() Dim i As Integer Dim registernummer As String RichTextBox1. Multiline = True ' dus kan meer dan één regel in het tekstvak weergeven RichTextBox1. Clear() ' wis het tekstvak For i = 0 To 13 registernummer = Trim(Str(i)) ' voorloopspaties wegknippen Als i < 10 Dan registernummer = "0" + registernummer ' 0 toevoegen aan getallen onder 10 End If RichTextBox1. AppendText(registernummer + " = " + Str(PicaxeRegisters(i)) + Chr(13)) Volgende ' chr(13) is regelterugloop dus nieuwe regel End Sub Private Sub Button1_Click(ByVal afzender As System. Object, ByVal e As System. EventArgs) Behandelt Button1. Click Dim i As Integer ' check eerst buiten bereik i = Val(TextBox1. Text) If i <0 Or i> 13 Then TextBox1. Text = 0 End If i = Val(TextBox2. Text) If i <0 Or i> 255 Then TextBox2. Text = 0 End If PicaxeRegisters(Val(TextBox1. Text)) = Val(TextBox2. Text) ' verander de waarde Call DisplayPicaxeRegisters() ' en ververs de weergave ModifyFlag = True ' en volgende ftp-link downloaden overslaan End Sub Sub SaveRegistersToLocalFile() ' registerarray opslaan in een lokaal tekstbestand Dim i As Integer FileOpen(1, TextBox3. Text, OpenMode. Output) ' open het tekstbestand met de naam in het tekstvak For i = 0 To 13 PrintLine(1, Str(PicaxeRegisters(i))) ' save 14 values Next FileClose(1) ' sluit het bestand End Sub Sub ReadRemoteFileToRegisters() ' lees het lokale tekstbestand in de register array Dim i As Integer Dim LineOfText As String Probeer FileOpen(1, TextBox3. Text, OpenMode. Input) ' lees de bestandsnaam op afstand For i = 0 To 13 LineOfText = LineInput(1) ' lees in de 14 lin es PicaxeRegisters(i) = Val(LineOfText) ' converteer tekst naar waarden Next FileClose(1) Catch ex As Exception FileClose(1) ' file bestaat niet dus doe niets End Try End Sub Sub ReadFTPFilename() ' dus de naam van het externe ftp-bestand is hetzelfde de volgende keer dat dit programma wordt uitgevoerd Dim LineOfText As String Probeer FileOpen(1, "FTPFilename.txt", OpenMode. Input) ' open het bestand LineOfText = LineInput(1) TextBox3. Text = LineOfText ' lees de naam FileClose(1) Catch ex As Exception FileClose(1) End Try End Sub Sub SaveFTPFilename() FileOpen(1, "FTPFilename.txt", OpenMode. Output) ' save the remote ftp file name PrintLine(1, TextBox3. Text) BestandSluiten(1) End SubEnd Class

Stap 9: Voer het programma uit op beide pc's

Voer het programma uit op beide pc's
Voer het programma uit op beide pc's

Start het programma door op de groene driehoek bovenaan in het midden van het scherm te klikken - de knop 'Start Debugging'. Er gebeurt 20 seconden lang niets en dan zal het programma proberen verbinding te maken met de ftp-server en zal het proberen verbinding te maken met de picaxe. De fotoboxen worden rood of groen. De ftp-locatie is een gratis website en iedereen kan deze gebruiken, maar je moet een andere werkende ftp-bestandsnaam gebruiken (de mijne is DoctorAcula1) anders zouden we allemaal met elkaars gegevens kunnen eindigen als we dezelfde bestandsnaam gebruiken! Als je wilt, kun je uiteindelijk je eigen ftp-site krijgen - verander gewoon de ftp-locatie, gebruikersnaam en wachtwoord op twee plaatsen in de code van mijn 0Catch-website. De meeste websites staan ftp toe. Meerdere computers hebben toegang tot hetzelfde ftp-bestand - de ftp-bestandsserver bepaalt in welke volgorde dit gebeurt. Af en toe zijn er gegevensbotsingen of loopt vast en deze lijken elke 20 lezen van bestanden te gebeuren. Er is een time-out in de code als dit gebeurt, zodat er geen gegevens worden geretourneerd in plaats van beschadigde gegevens. Het gebruik van een breedbandverbinding met een uploadsnelheid van 128 kbs betekent dat het uploaden van een bestand ongeveer 3 seconden duurt, maar soms tot 8 seconden, waarvan het grootste deel in beslag wordt genomen in handenschudden in plaats van gegevensoverdracht. Dit stelt de timer1 tijd in van minimaal ongeveer 20 seconden, rekening houdend met downloaden, uploaden en chatten met de picaxe. Met zeer snel breedband kunt u de doorlooptijd wellicht verkorten. Binnen het VB-programma kunt u handmatig een register wijzigen. Als je dat doet, slaat de volgende timercyclus het downloaden van de ftp-site over en stuurt de nieuwe gegevens naar de picaxe en leest ze dan terug en uploadt ze. De nieuwe data vindt zo zijn weg naar alle picaxes die aan deze groep zijn gekoppeld. Dit is handig voor het debuggen en/of voor het koppelen van pc-software aan de hardwarelus van de microcontroller. Websites kunnen ook toegang krijgen tot de hardwarelus met behulp van PERL-script of iets dergelijks om een nieuw bestand naar de ftp-site te schrijven. had toen ook register b1 in 1 veranderd. De led brandde dus op beide borden. Dit is een triviale toepassing, maar het is gemakkelijk om een pomp van 3,6 kW aan te zetten in plaats van een led. Er zijn nog meer ideeën op https://drvernacula.topcities.com/ inclusief het koppelen van picaxes via radioverbindingen op zonne-energie. Met radioverbindingen plus internet is het voor 'The Machines' mogelijk om vele uithoeken van de wereld te bereiken. Er zijn enkele ideeën op het picaxe-forum om dit idee verder uit te werken en de pc en ftp-site te vervangen door speciale webserver-chips die rechtstreeks op een router kunnen worden aangesloten. Het is duidelijk dat dit het stroomverbruik van een link zou verminderen. Als je geïnteresseerd bent in verdere discussies, plaats dan een bericht op de Intstructable-opmerkingen en/of op het picaxe-forum. Dr James MoxhamAdelaide, Zuid-Australië

Stap 10: Screenshots van code

Schermafbeeldingen van Code
Schermafbeeldingen van Code

Op verzoek zijn hier een reeks schermafbeeldingen van de vb.net-code met alle opmaak aanwezig. Deze code is eigenlijk teruggekopieerd van deze instructable en de opmaak verscheen automatisch weer. Het is beter om de tekst te kopiëren en te plakken dan deze plaatjes te lezen, maar deze zijn handig als je in een internetcafé bent en vb.net niet kunt installeren.

Stap 11: Screenshot2

Schermafbeelding2
Schermafbeelding2

Schermafbeelding 2

Stap 12: Schermafbeelding 3

Schermafbeelding 3
Schermafbeelding 3

Schermafbeelding 3

Stap 13: Schermafbeelding 4

Schermafbeelding 4
Schermafbeelding 4

Schermafbeelding 4

Stap 14: Schermafbeelding 5

Schermafbeelding 5
Schermafbeelding 5

Schermafbeelding 5

Stap 15: Schermafbeelding 6

Schermafbeelding 6
Schermafbeelding 6

Schermafbeelding 6

Aanbevolen: