V.O. 21 juillet 2015
Rev 16/04/2021


WIFI 3-Click et Clicker 2 PIC18F87J50

Presentation du module WIFI3
Test préalable , direct ,du module WIFI3 avec un terminal RS232
Traduction Guide utilisateur
Application MikroC minimaliste
Outils logiciels dont l' Explorer IDE
Montage de test Wifi3 sur Mikrobus #1
Application Serveur , MikroC version Clicker2 18F8750
Application Client , avec Clicker2 18F87J50 Survivor *

Version 18F26K22

Le module WIFI3-Click
Module enfichage sur support MikroBus MikroE

images/t_wifi3_click_.gif images/t_WIFI3_click_schem.gif
lien sur Wifi3 Click ESP8266 MOD schema et interliaison PIC <-> MikroBus #1


Wifi3_click_manual.pdf


Test direct du module WIFI3 avec VBRAY terminal

Le but est de rendre connaissance avec ce module, le plus simplement possible
soit en prise directe avec un terminal de communication "RS232" ou comme si...
- soit en vrai mode RS232 via l'interface 2TR , alimenté en 3,3V depuis le support MikroBus#2 -> port COM DB9 PC
- soit via USB : un cordon d'adaptation PROLIFIC PL2303 LTTL <-> USB COM#12 virtuel
La carte WIFI3 N'EST PAS INSTALLEE SUR LE SUPPORT mikrobus#1 ,
mais necessite les liaisons AN et RST pour l'init du module (Power Init) gérées via un bout de code C
because, timming à respecter.
Les lignes Rx et TX du moduiles sont reliées et gérees UNIQUEMENT par le terminal ..
Le programme du PIC n'intervient plus.
Le fichier Macro VBRAY contient la plupart des commandes de tests :
WIFI3_test.tmf sous les touches de fonction
ou le fichier script qui deroule les commandes :
WIFI3_test_script_150830.tsc

La liste des commandes AT :
ESP8266_AT_Command.pdf

images/t_WIFI3_Test_with_VBRAY_terminal.gi images/t_Test_Wifi3_schem_montage.gif
Hardware Test module WIFI3 montage avec liaison PROLIFIC USB

Le module WIFI3 est retiré du mikrobus et relié en externe..
via liaisons au PIC Clicker2 avec des fils prologateurs Male-femelle
4 fils : pour PWD (AN0) et GPIO15 (RD2), 0V, +3,3V
2 fils : alimenter l'interface 2TR en 3,3V
2 fils liaison UART
Wifi3 pin 6 Tx ---> vert --> pin3 interface 2TR -> DB9 ecran
Wifi3 pin 5 Rx <--- Jaune -->pin2 interface 2TR <--DB9 clavier


Guide utilisateur ( traduit de http://www.electrodragon.com/w/ESP8266)

Etapes et notes
AT+RST redémarre le module (Initialisation alimentation ) ,et recoit des caracteres bizarres .. puis le message "Ready"
AT+CWMOD=3 Change le mode de travail avec 3= AP+STA,utilise le mode passe partout 3 (AT+RST doit etre fait au prealable!)
Liaison au Routeur
AT+CWLAP Recherche si un point Wifi est accessible
AT+CWJAP=“SSID" ,"PASSWORD" Service Set Identifier : le nom de votre réseau sans fil WiFi, puis “password” le mot de passe,
AT+CWJAP=? Test si la connection a réussi , ou sinon utiliser AT+CWJAP?
TCP Client
AT+CIPMUX=1 Active le mode connection multiple
AT+CIPSTART=4,"TCP","192,168.1.104",9999 exemple pour connection au serveur distant TCP 192.168.1.104 (votre PC)
AT+CIPMODE=1 option pour entrer dans le mode de transmission de données
AT+CIPSEND=4,5 Envoi via le canal 4, 5 bytes (svoir le resultat de la socket* ci dessous,seul "elect" est reçu),le message sera "unlink" si aucune donnée est recue
TCP Server
AT+CIPSERVER=1,9999 Initialise le serveur TCP, sur le port # 9999, 1 = valide
AT+CIFSR Verifie l'adresse IP du module
Le PC utilisé comme Client TCP client , connecte au module via la socket Test, envoi les données
Avec la socket de Test , ne pas valider le mode "secure" dans le client TCP client, cela cause des instabilités
Notes :
Utiliser de préférence une source d'alimentation externe ayant une grande capabilité en courant,
au lieu de l'alimentaion via la liaison USB
Le Module se déconnectera automatiquement "unlink" TCP/UDP lorsque le flux de données est arreté
Le mot de pass Wifi (password ) doit avoir plus de 8 caracteres.

Application MikroC minimaliste :

compilation conditionnelle pour ce test :
#define Version "05-12-2015\r\n"
#define Test_With_VBRAY
WiFI3_click_UART2_UART1_mikrobus1_151204.c






Outils logiciels :
specifique aux modules ESP8266

Avec cette meme connectique,
test avec programme ESP8266 User Progr V1.1 firatdeveci.com

Un document eBook IMPORTANT crée par
Rui Santos, pour bien démarrer un projet à base de ESP8266.
autres liens :
http://esp8266.com/
Getting Started with the ESPlorer IDE
Le programme ESPlorer

L' ESPLORER IDE
Il permet de dialoguer directement avec le module ESP8266
Envoyer des commandes
Charger des programmes d'application

images/t_ESP8266_User_Program_test_150902_basic.gi images/t_ESP8266_User_Program_test_150902_TCPIP.gif
Test de base Tes mode TCPIP

Wifi3_Click datas:
Adresse MAC : 1A:FE:34:9C:10:0C
Adresse IP : 192.168.1.4
SSID : ESP_9C100C



Le montage de Test Clicker2 * + Wifi3 click in situ

avec
PIC18F87J50 :
Microchip datasheet
Pinout MCU



* Nota:
Alimentation de cette carte (100% OK) via alim USB .. qui assume aussi la fonction HID bootloader .

images/t_WIFI3_Clicker2_Proto.gif
 


Cette fois le module WIFI3-click est inséré sur le MikroBus #1
Le programme du PIC prend la main sur la gestion et échanges avec le WIFI3
L'UART1 est utilisé comme outil de debugging/ Tracage du programme et echange avec WIFI3
(ou option cable Prolific LTTL <-> USB)
La Liaison USB alimente la carte ET le module Wifi3 ( avec une carte clicker2 en bon état)
Rajout LCD2119 2x16 car sur bus I2C2 (RD6,RD5)

images/t_Wifi3_Clikcer2_18F87J50_Test_hardware.gif
Test in situ, mais avec alim 3,3V

images/t_wifi3_click_18F87J50_inter_links.gif
L'UART du PIC est ici en RG1,RG2 ! le module ESP8266




08/03/2016
Application MikroC, version 18F87J50 , Serveur

Gros probleme de timing avec l'usage de Tmr0 interrupt..
comportement OK si utilisé dans le main ..
mais le programme n'en tient pas compte .. passe tout droit , dans le traitement buffer2 UART ?
=> usage de Delay_ms(xxx) .. OK
plusieurs tests et variantes autour de ce probleme
L'interrupt Timer0 est TOUJOURS en High Level Priority
Meme située en premier, dans le traitement des IT .. idem probleme
.. non résolu!
=> Question sur site Mikroelektronica Forum ..
Idem avec un autre MCU ...
Probleme finalement résolu :
GROSSE BOURDE ! "Arme_Timer0" utilisé SANS LES PARENTHESES
donc jamais exécutee => Flag_Timer0 jamais Mis à Zero.
Avec "Arme_Timer0
();" c'est OK
Nota: Aucun warning du compilateur, dans ce ca là!
Rajout LCD2119 2x16 car sur bus I2C2 (RD6,RD5)



Projet MikroC :
rev Mai 2016

WiFI3_Serveur_18F87J50_UART1_2_LCD_I2C2_160513.zip
18F87J50_ESP8266_server_160521_.c
Liens sur détails "AT commands"

Resultat echanges MCU <-> Wifi3-Click



Wifi3_Click_PIC18F_echanges.doc

Page Web MCU -> ESP8266:





Application WIFI3 Client avec 18F87J50 Clicker2 (version Survivor )

rev 03 juin 2016

HARDWARE :
Alimentation 3,3V

images/t_Wifi3_Click_18F87J50_Test_160306.gif images/t_Clicker2_18F87J50_Survivor.gif
Clicker2 SURVIVOR photo Clicker2 SURVIVOR diagram


* Nota:
Cette carte Cliker2 a subit une catastrophe naturelle (Hum !) : application de 12V sur l'alim 5V
et toute la partie alim 5V et gestionnaire d'alimentation / batterie a fumé !
néanmoins elle reste fonctionelle en mode alim externe 3,3V , ainsi que le HID bootloader via USB.

On utilise maintenant le reseau ouvert WIFI ESP8266, sans cle WEP
Utilisation d'une
librairie version originale MikroE example ,revue par Hasan Hadi , decrite sur MikroC forum
Sur laquelle j'ai bloqué un bon moment, dans la partie config ESP8266
en particulier sur la commande AT+CWMODE=3;
on attend OK en retour de commande,
je recois systematiquement "No Change"

Ameliorations de la librairie :
La 1ere parrtie de la page web reside en Flash ROM ( contenu immuable) ,
la 2em partie , en RAM, pour pouvoir faire les mises à jour de variables.
* Faciliter l'evolution par la mise en place d' un tableau de pointeur des variables ,
situées dans le texte HTML, via un caractere de reconnaissance specifique #,$,&
Cela evite de définir en DUR , dans le code , la position exacte du N° de byte concerné.
voir
void Search_Pointeurs(void)
Les variables concernées étants:
LD1 at LATD4_bit;
LD2 at LATE4_bit;
Entree Analogique RA1
* rajout Compteur 16 bits
* rajout du test "no change" en reponse à AT+CWMODE=3 dans la state machine
* rajout de commentaires , explication decodage de la commande page Web ESP8266-> MCU

La librairie :
Library_ESP8266_4.h

Un LCD2119 2x16car, lié en I2C avec le PIC18, permet de suivre l'etat d'avancement et dialogue
L'UART2 est utillisé à 19200 bds pour etablir les echanges entre MCU <-> WIFI3 module ESP8266
L'UART1 (19200bds)étant l'outil ESPION , primordial pour voir le complet deroulement du programme et des
échanges effectués entre MCU et ESP8266
* nota: je n'ai pas pu activer le HID terminal ... peut etre à cause de la carte cramée au niveau 5V ?
à suivre ..

La partie reception est traitée via "une machine d'état" (State Machine), donc byte par byte
contrairement à une recption globale via buffer
L'avantage est de permettre un arret ,puis traitement sur une sequence de caractere bien precise
L'inconveniient est qu'on ne peut pas TOUT traiter .. et que la longueur de la state machine peut devenir consequente
et qu'il faut eviter les redondances de depart de traitement ou boucles sans fin

Le Source :
18F87J50_ESP8266_server_160524.c
le projet zipé :
18F87J50_ESP8266_server_160523.zip
Contenu du Zip


Capture page WEB
f

Dialogue capturé sur Vbray ;
Session_echange_Wifi3_log_160521.txt


Annexes



9/08/2015
sur PC XP affichage de mon reseau WIFI via monitor LINKSYS WUSB54G
sur l'onglet Site Survey



apparait en plus le module WIFI3 :
SSID= ESP_9C100C
Wireless mode = Infrastructure
channel = 1
Security = No
MAC= 1A-FE-34-9C-19-0C
adresse IP : 192.168.0.110

rajouté dans NORTON_Securite reseau : Approbation .. totale







paulfjujo@free.fr


../common/GIF/LTC1286p.jpg



Retour à l'index general