Table des matières:

Lien mondial de microcontrôleur pour moins de 20 $ : 15 étapes
Lien mondial de microcontrôleur pour moins de 20 $ : 15 étapes

Vidéo: Lien mondial de microcontrôleur pour moins de 20 $ : 15 étapes

Vidéo: Lien mondial de microcontrôleur pour moins de 20 $ : 15 étapes
Vidéo: TRONIK AVENTUR 301 : ATMEGA328P pour économiser des Arduino Uno 2024, Juillet
Anonim
Lien mondial de microcontrôleur pour moins de 20 $
Lien mondial de microcontrôleur pour moins de 20 $

Contrôlez votre thermostat domestique depuis le travail. Allumez un arroseur de n'importe où dans le monde en appuyant sur un interrupteur. Cet Instructable montre comment lier deux microcontrôleurs ou plus de 4 $ en utilisant l'épine dorsale d'Internet et un code VB. Net simple. Cela s'appuie sur un Instructable antérieur qui montre comment lier un microcontrôleur à un PC et utiliser un pot pour contrôler un servo https://www.instructables.com/id/Control-real-world-devices-with-your-PC/ Cette fois, nous avons un microcontrôleur qui parle à un programme VB. Net puis à un site Web ftp, retour à un autre VB. Net programme et de là un deuxième microcontrôleur n'importe où dans le monde, avec ou sans intervention humaine. Sinon, comment les machines de Matrix sont-elles censées prendre le relais si elles ne peuvent pas se parler ?

Étape 1: Rassemblez les pièces

Rassembler les pièces
Rassembler les pièces

La plupart des pièces sont les mêmes que dans le PC Control Instructable https://www.instructables.com/id/Control-real-world-devices-with-your-PC/ et il est suggéré que cela soit terminé avant d'essayer pour relier deux microcontrôleurs. S'il est tout à fait possible d'utiliser un potentiomètre pour contrôler un servo, cette fois-ci nous allons opter pour quelque chose de plus simple - un interrupteur activant une led. L'interrupteur pourrait facilement être un capteur de niveau de réservoir et la LED pourrait être une pompe près d'une rivière, mais commençons par quelque chose de simple qui fonctionne. Pièces - Deux puces Picaxe 08M - disponibles auprès de nombreuses sources, y compris Rev Ed https://www.rev- ed.co.uk/picaxe/ (Royaume-Uni), PH Anderson https://www.panderson.com/ (États-Unis) et Microzed https://www.microzed.com.au/ (Australie). Ces jetons coûtent moins de 4 USD. Deux parmi: Protoboard, batterie 9V et pinces pour batterie, résistance 10k, résistance 22k, condensateur 33uF 16V, condensateur 0,1uF, régulateur 7805L basse consommation 5V, fils (fil téléphonique/données à noyau solide, par exemple Cat5/6), LED, résistance 1k. 1 parmi: Prise femelle D9 et couvercle et 2 mètres de câble de données à 3 (ou 4) noyaux (à télécharger) et un interrupteur à bascule. 2 ordinateurs avec des ports série à 9 broches (peut être débogué sur un seul ordinateur) et une connexion Internet. Pour les ordinateurs sans port série, un périphérique USB vers série https://www.rev-ed.co.uk/docs/axe027.pdf et une petite prise stéréo.

Étape 2: Téléchargez et installez certains logiciels

Télécharger et installer certains logiciels
Télécharger et installer certains logiciels

Nous aurons besoin du logiciel gratuit VB. Net et du contrôleur picaxe et si vous avez fait le contrôleur PC Instructable, vous les aurez déjà. VB. Net (Visual Basic Express) est disponible sur https://msdn2.microsoft.com/en -us/express/aa718406.aspxLe logiciel picaxe est disponible sur https://www.rev-ed.co.uk/picaxe/Vous devrez vous inscrire auprès de Microsoft pour obtenir le téléchargement - si cela pose un problème, utilisez un faux e-mail ou quelque chose. En fait, j'ai trouvé utile de donner mon véritable e-mail car ils envoient des mises à jour occasionnelles. Je vais également mentionner le forum picaxe https://www.picaxeforum.co.uk/ car c'est le genre de forum composé d'enseignants et d'éducateurs et où les étudiants peuvent généralement obtenir des réponses aux questions en quelques heures. Le forum est très compréhensif, même pour les questions les plus simples, car certains élèves sont encore au niveau de l'école primaire. N'ayez pas peur de demander de l'aide !

Étape 3: Construisez un circuit de téléchargement

Créer un circuit de téléchargement
Créer un circuit de téléchargement

Ce circuit de téléchargement utilise une puce picaxe, quelques résistances, un régulateur et une pile 9V. Plus d'informations sont disponibles dans la documentation/aide de picaxe qui apparaît dans le menu d'aide du programme. Le circuit ne devrait prendre que quelques minutes à construire une fois que toutes les pièces sont à portée de main. Une fois qu'une puce est programmée, elle conserve son programme dans l'EEPROM même lorsque l'alimentation est coupée. Étant donné que nous programmons deux puces, il peut être intéressant d'étiqueter les puces afin que vous sachiez laquelle est laquelle. Vous pouvez toujours revenir en arrière et reprogrammer une puce en supprimant un lien et en déplaçant une résistance.

Je pourrais également ajouter que les picaxes fonctionnent bien avec 3 piles AA. Une alimentation régulée de 5 V est utile pour faire fonctionner des entrées analogiques car les tensions de référence ne changent pas, mais pour les circuits marche/arrêt simples, une alimentation régulée n'est pas nécessaire. Le reg 5V peut être omis dans ces situations.

Étape 4: programmer les puces

Programmer les puces
Programmer les puces

Nous appellerons un programme Tx et un Rx. Tx est la puce de contrôle et possède un interrupteur et une led. Rx a également une led. Lorsque le commutateur change, le signal passe de Tx à Rx, change la led et change également une deuxième variable qui revient ensuite à Tx. Appuyez donc sur le commutateur et en moins d'une minute, la LED change sur les deux circuits, indiquant que le message est arrivé et que le Rx agit sur la nouvelle position du commutateur. Au niveau le plus simple, le picaxe dispose de 14 registres à un octet. Lorsqu'un réseau virtuel est créé, nous relions tous ces registres ensemble, donc si un octet change dans un picaxe, il change dans tous les picaxes. Clairement, si deux picaxes essaient de changer le même octet, cela deviendra très déroutant, mais si chaque picaxe ne change qu'un octet, alors tous les autres picaxes peuvent voir ce changement et agir en conséquence. Des messages simples peuvent être passés en avant et en arrière si un certain octet n'est modifié que par un picaxe. Un pot peut changer la valeur dans un registre et un ou plusieurs autres picaxes peuvent détecter ce changement et déplacer un servo ou autre et allumer un chauffage. Un deuxième registre pourrait renvoyer la température dans la pièce. Copiez et collez les programmes à tour de rôle dans le programmeur picaxe et téléchargez-les sur chacune des puces respectives à l'aide de la flèche de téléchargement bleue à partir du programmeur picaxe. Tx:main:serin 3, N2400, ("Données"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13' obtenir le paquet de l'ordinateur si pin2= 0 then' teste le commutateur et positionne le registre b0 en fonction de l'état b0=0 sinon b0=1 endif si b1=0 alors' autre picaxe met b1 en fonction de b0 bas 1' led éteinte sinon haut 1' led on endif serout 0, N2400, ("Données", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13)' renvoyer à l'ordinateur goto mainand Rx:main:serin 3, N2400, ("Données"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13' obtenir le paquet de l'ordinateur b1=b0' changer le registre b1 pour égaliser le registre b0 si b1 =0 puis bas 1' led éteint sinon haut 1' led on endif serout 0, N2400, ("Data", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13)' renvoyer à l'ordinateur goto main

Étape 5: Construire le circuit Tx

Construire le circuit Tx
Construire le circuit Tx

Si vous basculez entre un circuit de travail et un circuit de programmation, assurez-vous de changer la connexion à la jambe 2 et l'emplacement de la résistance de 22k de la jambe 2 à la jambe 4. Ou vous pouvez créer un circuit de téléchargement dédié et déplacer les puces de l'autre côté. Notez simplement si un circuit est en cours d'exécution ou en cours de téléchargement, car cela peut devenir assez déroutant. En particulier, notez qu'un circuit en marche ne fonctionnera pas si la jambe 2 est laissée flottante - elle doit être mise à la terre. La jambe 2 est la broche de téléchargement et si elle reste flottante, elle capte les RF parasites des lumières fluorescentes et la puce pense qu'un autre programme est en cours de téléchargement.

Il convient également de mentionner la nomenclature picaxe qui appelle une broche physique une jambe et une broche virtuelle une broche. Ainsi, une sortie sur la broche 2 dans le code est en fait une sortie sur la jambe physique 5. Cela peut sembler étrange, mais cela signifie que le code peut être porté sur des picaxes plus gros comme les versions 28 et 40 broches et fonctionner toujours.

Étape 6: Construisez le circuit Rx

Construire le circuit Rx
Construire le circuit Rx

Ce circuit est presque le même que l'émetteur - il n'a tout simplement pas d'interrupteur.

Étape 7: écrivez du code VB. Net

Écrire du code VB. Net
Écrire du code VB. Net

J'aurais pu compiler le code et rendre ce programme disponible sous forme de fichier.exe compilé, mais l'apprentissage de VB. Net est si incroyablement utile qu'il vaut la peine de le parcourir étape par étape. Si vous l'exécutez sur deux ordinateurs différents, vous pouvez créer le programme dans un fichier.exe qui crée un petit programme d'installation qui peut être installé sur le deuxième ordinateur. Ou vous pouvez mettre VB. Net sur les deux ordinateurs et exécuter les programmes à partir de VB. Net Supposons que vous sachiez comment ouvrir un nouveau projet VB.net à partir des étapes 7 et 8 de https://www.instructables.com/id/S1MMU2XF82EU2GT /Sur le formulaire vierge, ajoutons les composants suivants à partir de la barre d'outils et plaçons-les sur le formulaire aux emplacements indiqués. Pour les étiquettes et les zones de texte, modifiez la propriété text (en bas à droite) en fonction de ce qui est nécessaire. Ne vous inquiétez pas des paramètres de la minuterie - nous les modifierons dans le code, mais assurez-vous de mettre une minuterie. Vous pouvez déplacer les choses et il n'y a pas de vraies règles concernant l'emplacement. La grande zone de texte est une RichTextBox et les trois plus petites sont des Textbox ordinaires. En termes d'ordre, nous commençons par le haut du formulaire et nous descendons. Si vous laissez quelque chose, il y aura une erreur dans le code qui devrait donner une sorte d'indice. Veuillez choisir un nom de fichier aléatoire pour Textbox3 - c'est le nom de votre groupe unique de picaxes sur le serveur ftp et évidemment si nous utilisons tous le même nom, les données vont devenir confuses ! Désolé pour les tirets dans ce tableau - mettre des espaces perd la mise en forme dans le tableau. Objet Toolbox -------Texte ----------- ------------------------------NotesLabel1------------------Picaxe CommunicationsLabel2------------------FTP StatusLabel3------------------StatusLabel4---------- --------Picaxe RegistersLabel5------------------Registre 0-13Label6------------------ Valeur 0-255Label7------------------FTP link filenameTextbox1---0-------- --------------------------------------0 est un zéro pas un OTextbox2----- -----------0Texte3----------------Monnomfichier--------------------- ---------- Changez pour éviter les conflits!Bouton1------------------ModifierRichtextbox1 Picturebox1 Picturebox2 Timer1

Étape 8: ajouter du code

Ajouter du code
Ajouter du code

Voir l'étape 12 de l'autre instructable pour l'emplacement du bouton qui bascule entre la vue formulaire et la vue code. Passez en mode code et collez le code suivant. Les couleurs devraient toutes réapparaître comme dans la capture d'écran. Si une ligne n'a pas été copiée correctement en raison d'un problème de wordwrap, supprimez les espaces jusqu'à ce que le message d'erreur disparaisse. J'ai essayé de commenter la plupart des lignes pour que le code ait au moins un sens. Supprimez le bit de classe publique afin que le texte soit vide avant de le coller - ce code a déjà une classe publique. Si un objet comme une zone de texte n'a pas été placé sur le formulaire ou a un nom incorrect, il apparaîtra dans le code texte avec une ligne bleue ondulée en dessous. Imports System. IOImports Strings = Microsoft. VisualBasic ' donc peut utiliser des choses comme left(and right(for stringsPublic Class Form1 Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer) ' pour les instructions sleep Dim WithEvents serialPort As New IO. Ports. SerialPort ' le port série déclare Dim PicaxeRegisters (0 à 13) As Byte 'enregistre b0 à b13 Dim ModifyFlag As Boolean Private Sub Form1_Load (ByVal sender As Object, ByVal e As System. EventArgs) Handles Me. Load ' a besoin de toutes ces ordures -.net le met automatiquement quand aller form1events above/load Timer1. Enabled = True ' met ceci dans le code comme valeur par défaut à false lors de la création Timer1. Interval = 20000 ' toutes les 20 secondes PictureBox1. BackColor = Color. Gray ' commence par les boîtes de communication grises PictureBox2. BackColor = Color. Gray ModifyFlag = False ' si modifier une valeur manuellement alors s kip télécharger RichTextBox1. Multiline = True ' peut donc afficher plus d'une ligne Call DisplayPicaxeRegisters() ' afficher les 14 registres Call ReadFTPFilename() ' lire le nom du fichier sur le disque (réenregistré toutes les 20 secondes) End Sub Sub SerialTxRx() Dim DataPacket(0 à 17) As Byte ' paquet de données entier "Data" + 14 octets Dim i As Integer ' i est toujours utile pour les boucles, etc. For i = 0 To 3 DataPacket(i) = Asc(Mid("Data", i + 1, 1)) ' ajoute le mot "Data" au paquet Next For i = 0 To 13 DataPacket(i + 4) = PicaxeRegisters(i) ' ajoute tous les octets au paquet Next If serialPort. IsOpen Then serialPort. Close() ' juste au cas où déjà ouvert End If Try With serialPort. PortName = "COM1" ' La plupart des nouveaux ordinateurs sont par défaut com1 mais tout ordinateur antérieur à 1999 avec une souris série sera probablement par défaut com2. BaudRate = 2400 ' 2400 est la vitesse maximale pour petits picaxes. Parity = IO. Ports. Parity. None ' pas de parité. DataBits = 8 ' 8 bits. StopBits = IO. Ports. StopBits. One ' un bit d'arrêt. ReadTimeout = 1000 ' milliseconde ds donc expire en 1 seconde si aucune réponse minimum pour attendre le retour des données et plus si le flux de données est plus long (i - 4) = DataPacket(i) ' déplace le nouveau paquet de données dans le tableau des registres Next PictureBox1. BackColor = Color. GreenYellow ' fonctionne Catch ex As Exception PictureBox1. BackColor = Color. Red ' ne fonctionne pas End Try End Sub Sub FTPUpload (ByVal Filename As String) Dim localFile As String 'endroit pour stocker les données Dim remoteFile As String' le nom de fichier est sensible à la casse c'est vraiment important Const host As String = "ftp://ftp.0catch.com" ' notez que le 0 est un zéro pas un caractère O Const username As String = "picaxe.0catch.com" Const password As String = "picaxetester" Dim URI As String localFile = Filename ' n'est peut-être pas nécessaire mais si vous définissez un emplacement, par exemple c:\mydirectory peut être ajouté facilement de cette façon remoteFile = "/" + Filename ' le fichier sur le serveur ftp a besoin de "/" ajouté devant URI = host + remoteFile Try Dim ftp As System. Net. FtpWebRequest = CType(System. Net. FtpWebRequest. Create(URI), System. Net. FtpWebRequest) ftp. Credentials = New System. Net. NetworkCredential(nom d'utilisateur, mot de passe) ' connexion ftp. KeepAlive = False ' sera déconnexion une fois terminée ftp. UseBinary = True ' utilise les communications binaires ftp. Timeout = 9000 ' timeout après 9 secondes - très utile car ftp meurt parfois 'timeout (et la fréquence d'horloge de 20 secondes) peut devoir être plus lente pour les connexions à distance ftp. Method = System. Net. WebRequestMethods. Ftp. UploadFile ' commencer à envoyer le fichier Dim fs As New FileStream(localFile, FileMode. Open) ' ouvrir le fichier local Dim filecontents(fs. Length) As Byte ' lire en mémoire fs. Read (filecontents, 0, fs. Length) fs. Close() ' fermer le fichier Dim requestStream As Stream = ftp. GetRequestStream() ' démarrer ftp link requestSt ream. Write(filecontents, 0, filecontents. Length) ' send it requestStream. Close() ' ferme le lien PictureBox2. BackColor = Color. GreenYellow ' change la case en vert pour dire a fonctionné ok Label2. Text = "FTP Connected" ' texte disant qu'il est connecté Catch 'ne peut pas connecter PictureBox2. BackColor = Color. Red ' au rouge car aucune connexion Label2. Text = "FTP Upload Fail" ' texte indiquant que la connexion a échoué End Try End Sub Sub FTPDownload (ByVal Filename As String) ' télécharge remotefile to localfile Dim localFile As String 'place pour stocker les données Dim remoteFile As String ' le nom de fichier est sensible à la casse c'est vraiment important 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:\" + Filename ' stocker dans le répertoire racine mais peut changer ce localFile = Filename ' donc peut ajouter c:\ si besoin de définir emplacement réel remoteFile = "/" + Filename ' ajouté à l'URI de l'emplacement ftp distant = host + remoteFile ' make up adresse complète Essayez Dim ftp As System. Net. FtpWebRequest = CType(System. Net. FtpWebRequest. Create(URI), System. Net. FtpWebRequest) ftp. Credentials = New System. Net. NetworkCredential(nom d'utilisateur, mot de passe) ' connexion ftp. KeepAlive = False ' se déconnectera une fois terminé ftp. UseBinary = True ' mode binaire ftp. Timeout = 9000 ' timeout après 9 secondes ftp. Method = System. Net. WebRequestMethods. Ftp. DownloadFile ' télécharger un fichier ' lu en morceaux comme je ne sais pas quelle est la taille du fichier Utilisation de la réponse As System. Net. FtpWebResponse = CType(ftp. GetResponse, System. Net. FtpWebResponse) Utilisation de responseStream As IO. Stream = response. GetResponseStream Utilisation de fs 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) ' et écriture dans le fichier Boucle jusqu'à lecture = 0 ' jusqu'à ce qu'il n'y ait plus de morceaux responseStream. Close() ' ferme le fichier ftp fs. Flush() ' flush clear fs. Close() ' et ferme e e fichier End Using responseStream. Close() ' ferme-le même si rien n'était là End Using response. Close() PictureBox2. BackColor = Color. GreenYellow ' boîte verte comme cela a fonctionné Label2. Text = "FTP Connected" ' et texte le disant a fonctionné End Using Catch 'mettre les codes d'erreur ici PictureBox2. BackColor = Color. Red ' boîte rouge car cela n'a pas fonctionné Label2. Text = "FTP Download Fail" ' et message pour dire ceci End Try End Sub Private Sub Timer1_Tick (ByVal sender As System. Object, ByVal e As System. EventArgs) Gère Timer1. Tick If ModifyFlag = False Then 'si l'utilisateur a modifié un octet, ne téléchargez pas Label3. Text = "Téléchargement" System. Windows. Forms. Application. DoEvents() ' donc le nouveau texte de l'étiquette s'affiche Appeler FTPDownload(TextBox3. Text) ' télécharger le fichier distant Label3. Text = "Downloaded" System. Windows. Forms. Application. DoEvents() Appeler ReadRemoteFileToRegisters() ' enregistrer les numéros de fichier dans le tableau de registres Label3. Text = "Parler à picaxe" System. Windows. Forms. Application. DoEvents() Else ModifyFlag = False 'réinitialiser le drapeau End If Call SerialTxRx() ' envoyer au picaxe et le relire Label3. Text = "Envoyé et reçu de picaxe" System. Windows. Forms. Application. DoEvents() Appeler DisplayPicaxeRegisters() Appeler SaveRegistersToLocalFile() ' enregistrer les numéros dans un fichier Label3. Text = "Uploading" System. Windows. Forms. Application. DoEvents() Call FTPUpload(TextBox3. Text) ' renvoyer au site ftp nommé sous mon nom Label3. Text = "Resting" Call SaveFTPFilename() ' ainsi lit au redémarrage End Sub Sub DisplayPicaxeRegisters() Dim i As Integer Dim registernumber As String RichTextBox1. Multiline = True ' peut donc afficher plus d'une ligne dans la zone de texte RichTextBox1. Clear() ' efface la zone de texte For i = 0 To 13 numéro de registre = Trim(Str(i)) ' coupe les espaces de début Si i < 10 Then numéro de registre = "0" + numéro de registre ' ajoute 0 aux nombres inférieurs à 10 End If RichTextBox1. AppendText(numéro de registre + " = " + Str(PicaxeRegisters(i))) + Chr(13)) Suivant ' chr(13) est un retour chariot donc la nouvelle ligne End Sub Private Sub Button1_Click(ByVal sender As System. Object, ByVal e As System. EventArgs) Gère Button1. Click Dim i As Integer ' check out of range first i = Val(TextBox1. Text) If i <0 Or i> 13 Then TextBox1. Text = 0 End If i = Val(TextBox2. Text) If i <0 Ou i> 255 Then TextBox2. Text = 0 End If PicaxeRegisters(Val(TextBox1. Text)) = Val(TextBox2. Text) ' change la valeur Call DisplayPicaxeRegisters() ' et actualisez l'affichage ModifyFlag = True ' et le lien ftp suivant ignore le téléchargement End Sub Sub SaveRegistersToLocalFile() ' enregistre le tableau de registres dans un fichier texte local Dim i As Integer FileOpen(1, TextBox3. Text, OpenMode. Output) ' ouvre le fichier texte nommé dans la zone de texte For i = 0 To 13 PrintLine(1, Str(PicaxeRegisters(i))) ' save 14 values Next FileClose(1) ' ferme le fichier End Sub ReadRemoteFileToRegisters() ' lit le fichier texte local dans le tableau des registres Dim i As Integer Dim LineOfText As String Try FileOpen(1, TextBox3. Text, OpenMode. Input) ' lire le nom du fichier distant For i = 0 To 13 LineOfText = LineInput(1) ' lire dans la ligne 14 es PicaxeRegisters(i) = Val(LineOfText) ' convertit le texte en valeurs Next FileClose(1) Catch ex As Exception FileClose(1) ' le fichier n'existe pas donc ne fait rien End Try End Sub Sub ReadFTPFilename() ' donc le nom de le fichier ftp distant est le même la prochaine fois que ce programme est exécuté Dim LineOfText As String Try FileOpen(1, "FTPFilename.txt", OpenMode. Input) ' ouvre le fichier LineOfText = LineInput(1) TextBox3. Text = LineOfText ' lit le name FileClose(1) Catch ex As Exception FileClose(1) End Try End Sub Sub SaveFTPFilename() FileOpen(1, "FTPFilename.txt", OpenMode. Output) ' enregistre le nom du fichier ftp distant PrintLine(1, TextBox3. Text) FileClose(1) End SubEnd Class

Étape 9: Exécutez le programme sur les deux PC

Exécutez le programme sur les deux PC
Exécutez le programme sur les deux PC

Commencez à exécuter le programme en cliquant sur le triangle vert en haut au milieu de l'écran - le bouton « Démarrer le débogage ». Rien ne se passera pendant 20 secondes, puis le programme tentera de se connecter au serveur ftp et tentera de se connecter au picaxe. Les boîtes à images deviendront rouges ou vertes. L'emplacement ftp est un site Web gratuit et tout le monde peut l'utiliser, mais vous devez utiliser un nom de fichier de travail ftp différent (le mien est DoctorAcula1), sinon nous pourrions tous nous retrouver avec les données de l'autre si nous utilisons le même nom de fichier ! Si vous le souhaitez, vous pouvez éventuellement obtenir votre propre site ftp - il suffit de changer l'emplacement ftp, le nom d'utilisateur et le mot de passe à deux endroits dans le code de mon site Web 0Catch. La plupart des sites Web autorisent le ftp. Plusieurs ordinateurs peuvent accéder au même fichier ftp - le serveur de fichiers ftp trie dans quel ordre ils se produisent. Parfois, il y a des conflits ou des blocages de données et ceux-ci semblent se produire toutes les 20 lectures de fichiers. Il y a un délai d'attente dans le code si cela se produit, il ne renvoie donc aucune donnée plutôt que des données corrompues. L'utilisation d'une connexion haut débit avec une vitesse de téléchargement de 128 Ko signifie qu'un téléchargement de fichier prend environ 3 secondes mais parfois jusqu'à 8 secondes, dont la plupart sont pris dans la poignée de main plutôt que dans le transfert de données. Cela définit le temps de timer1 d'un minimum d'environ 20 secondes en tenant compte du téléchargement, du téléchargement et du chat avec le picaxe. Avec un haut débit très rapide, vous pourrez peut-être raccourcir le temps de cycle. Vous pouvez modifier un registre manuellement dans le programme VB. Si vous le faites, le prochain cycle de minuterie ignore le téléchargement à partir du site ftp et envoie les nouvelles données au picaxe, puis les relit et les télécharge. La nouvelle donnée se retrouve ainsi dans tous les picaxes liés à ce groupe. Ceci est utile pour le débogage et/ou pour lier le logiciel PC à la boucle matérielle du microcontrôleur. Les sites Web peuvent également accéder à la boucle matérielle en utilisant un script PERL ou similaire pour écrire un nouveau fichier sur le site ftp. Cette capture d'écran a été prise en exécutant la puce Tx, le commutateur était activé et le registre b0 = à 1 avait été envoyé à la puce Rx qui avait alors changé le registre b1 en 1 également. La led était ainsi allumée sur les deux planches. C'est une application triviale mais il est facile d'allumer une pompe de 3,6Kw au lieu d'une led. D'autres idées sont disponibles sur https://drvernacula.topcities.com/, notamment la liaison de picaxes via des liaisons radio à énergie solaire. Avec des liaisons radio et Internet, il est possible pour « The Machines » d'atteindre de nombreux coins du globe. Il y a quelques idées sur le forum picaxe pour aller plus loin dans cette idée et remplacer le site PC et ftp par des puces de serveur Web dédiées qui se branchent directement sur un routeur. Il est clair que cela réduirait la consommation d'énergie d'un lien. Si vous êtes intéressé par d'autres discussions, veuillez publier sur les commentaires Intstructable et/ou sur le forum picaxe. Dr James MoxhamAdelaide, Australie du Sud

Étape 10: Captures d'écran du code

Captures d'écran de Code
Captures d'écran de Code

Sur demande, voici une série de captures d'écran du code vb.net avec tout le formatage en place. Ce code a en fait été copié de cette instructable et la mise en forme est réapparue automatiquement. Il vaudrait mieux copier et coller le texte que d'essayer de lire ces images mais celles-ci seront utiles si vous êtes dans un cybercafé et que vous ne pouvez pas installer vb.net.

Étape 11: Capture d'écran2

Capture d'écran2
Capture d'écran2

Capture d'écran 2

Étape 12: Capture d'écran 3

Capture d'écran 3
Capture d'écran 3

Capture d'écran 3

Étape 13: Capture d'écran 4

Capture d'écran 4
Capture d'écran 4

Capture d'écran 4

Étape 14: Capture d'écran 5

Capture d'écran 5
Capture d'écran 5

Capture d'écran 5

Étape 15: Capture d'écran 6

Capture d'écran 6
Capture d'écran 6

Capture d'écran 6

Conseillé: