giovedì 30 gennaio 2020

Server sent charset unknown to the client - mysql8

Esperienza vissuta durante installazione e configurazione di mysql8 su windows 7



Se stai cercando di interrogare un database su mysql8 da php, ma durante la fase di connessione al server ottieni il seguente errore:

"Server sent charset unknown to the client"... 

significa che mysql8 è configurato con un charset utf8mb4

per poterti connettere devi riconfigurare il charset a utf8 e cercando in rete si trovano consigli su come procedere, e in realtà è abbastanza semplice.

Basta aggiungere queste righe al file di configurazione di mysql (my.ini) che in una installazione standard su windows si trova in : C:\ProgramData\MySQL\MySQL Server 8.0\my.ini

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8


[mysqld]
collation-server = utf8_unicode_ci
init-connect='SET NAMES utf8'
character-set-server = utf8


purtoppo però, e questo l'ho provato sulla mia pelle, una volta modificato il file my.ini con notepad e fermato il servizio mysql, al tentativo di riavvio, questo non riparte più. 

nemmeno se si prova cancellare le linee aggiunte al file si riesce più a far ripartire il servizio.

Dilemma...

Il problema è notepad.

Infatti all'interno del file originale my.ini c'è la seguente riga:

# range from 1 to 2^32 − 1. “Unique” means that each ID must be different 

che contiene 3 caratteri  speciali che nel momento in cui viene salvato il file, creano un problema che impedisce il riavvio di mysql.

Per ovviare al problema, basta: cancellare la linea incriminata (tanto è un commento, non serve a nulla se non a dare un spiegazione) modificare il file aggiungendo le linee indicate sopra, e poi usare l'opzione "save as..." o "salva con nome..." andando poi a scegliere l'opzione ANSI nella select.


In questo modo il file salvato è formalmente corretto e sarà visto correttamente da mysql.

fermate il servizio Mysql, chiudete il workbach se lo state usando, riaprite workbach e riavviate il servizio mysql.

Tutto fatto.


ho trovato soluzioni e consigli ai seguenti indirizzi:

https://superuser.com/questions/1421016/mysql-8-0-starts-and-stops-after-my-ini-saved-or-edited-in-windows-10
https://stackoverflow.com/questions/3513773/change-mysql-default-character-set-to-utf-8-in-my-cnf
https://bugs.mysql.com/bug.php?id=85946



lunedì 19 marzo 2018

Un player mp3 molto versatile

Mi sono scontrato con la necessità di attivare file audio al passaggio su una fotocellula, alla pressione di un pulsante o semplicememente all'arrivo di un comando lanciato da un qualsiasi computer tramite UDP.

Arduino, cavi, alimentazioni, audio lanciati da computer remoti quando invece, sarebbe bastato usare fin da subito questo fantastico prodotto: Dfplayer Mini



Ha un alloggio per una schedina micro sd e può funzionare in diversi modi: tramite collegamento seriale ad arduino, dal quale riceve i comandi per attivare gli audio (play, next, prev, pause, vol+ vol-, etc.. etc.. ) oppure in modalità stand alone collegando dei pulsanti derettamente al dfplayer.

piedinatura del DFPlayer mini:


per l'utilizzo  con arduino è necessario scaricare le librerie che trovate al seguente indirizzo: https://github.com/DFRobot/DFRobotDFPlayerMini



Inoltre alla pagina : https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299#Connection_Diagram sono riportati esempi e le varie modalità di collegamento.


Sicuramente la modalità di utilizzo più versatile è quella che prevede il collegamento con arduino, qui trovate lo schema di collegamento:


La resistenza tra tx e rx viene impiegata per ridurre il rumore all'uscita audio.

Nel mio esperimento avevo la necessità di par partire sempre lo stesso file audio alla pressione di un pulsante, quandi mi sono limitato ad usare la modalità stand alone senza l'impiego di arduino, alimentando solo il DFplayer con un alimentatore da 4,2V e 1A , collegando un solo pulsante al pin 9 del DFPlayer (Pre/vol+)



L'uscita audio è già amplificata, infatti il volume (che può essere regolato) aggiungendo anche il tasto sul pin 11, è abbastanza alto.

martedì 19 dicembre 2017

Arduino come ricevitore DMX tramite ethernet

E' capitato di dover installare una o più  teste mobili e doverle pilotare tramite dmx, tutto questo comporta dover tirare molti cavi, ma con arduino che riceve il segnale dmx via LAN e si interfaccia alle teste mobili, tutto diventa più semplice e veloce.

Tutto quello che serve è un arduino uno, una ethernet shield w5100, un cip MAX485 e una resistenza; i segnali dmx saranno inviati tramite un software preposto: Q light Controller Plus tramite l'uscita artnet.

Il collegamento è abbastanza semplice e alla portata di chiunque abbia una minima dimestichezza con la saldatura a stagno.




Il pin 4 viene collegato al pin 3 di arduino (pin output di default utilizzato dalla libreria DmxSimple)

Arduino deve essere dotato di una w5100 (non ho provato con la enc28j60) .


/****************
Inizio sketch
****************/
#include <Artnet.h>
#include <Ethernet.h>
#include <EthernetUdp.h>
#include <SPI.h>
#include <DmxSimple.h>

Artnet artnet;


byte ip[] = {192, 168, 10, 229};
byte mac[] = {0x04, 0xE9, 0xE5, 0x00, 0x69, 0xEC};

void setup()
{
  Serial.begin(115200);
  //Serial.begin(9600);
  artnet.begin(mac, ip);
  //pinMode(TXEnablePin,OUTPUT);
}

void loop()
{
  if (artnet.read() == ART_DMX)
  {
    // print out our data
    /*Serial.print("universe number = ");
    Serial.print(artnet.getUniverse());
    Serial.print("\tdata length = ");
    Serial.print(artnet.getLength());
    Serial.print("\tsequence n0. = ");
    Serial.println(artnet.getSequence());*/
   
    Serial.print("DMX data: ");
    if (artnet.getUniverse()==2) {
      for (int i = 0 ; i < artnet.getLength() ; i++)
      {
        DmxSimple.write(i+1, artnet.getDmxFrame()[i]);
        /*Serial.print(i+1);
        Serial.print(", ");
        Serial.println(artnet.getDmxFrame()[i]);*/
      
      }
    }
    Serial.println();
    Serial.println();
  }
}
/****************
FINE sketch
****************/


Con questo semplice sketch Arduino è in grado di ricevere il dmx (sull'universo 2 in questo caso ) e lo inoltrerà direttamente al MAX485 che potrà comandare il dispositivo DMX.

giovedì 14 dicembre 2017

Arduino Pro mini (5v - 16Mhz) e modulo ethernet

Collegamenti pin:
Ho cercato nei vari siti web, ma molti riportano l'assegnazione dei pin di Arduino uno anche per il Pro Mini.

La piedinatura corretta per il Pro Mini è la seguente, utilizzando la libreria EtherCard

Arduino Pro Mini  |  Enc28j60
Pin 10 CS
Pin 11 SI
Pin 12 SO
Pin 13 SCK
5v VCC
GND GND

I collegamneti per la scheda di rete w5100 invece sono i seguenti:
La libreria da utilizzare in questo caso è quella ufficiale "Ethernet" e i pin dell'arduino pro mini sono i medesimi che vengon outilizzati su arduino uno.

martedì 23 maggio 2017

w5100 e arduino problemi connessione lan

Probabilmente ci state sbattendo il naso da diverso tempo, perchè vi siete accorti che montando la scheda di rete w5100 su arduino ed utilizzando le sue librerie, riuscite a connettervi alla rete lan solo con alcuni modelli di router e switch.

venerdì 17 febbraio 2017

Il jukebox sociale che ti permette di votare la playlist via web

In una struttura che manda musica in filodiffusione è auspicabile che non tutti siano accontentati dai brani scelti! Cosa ci sarebbe di meglio che far scegliere proprio alle persone all'interno della struttura quale sia la classifica delle canzoni da ascoltare? 



mercoledì 30 marzo 2016

project Lasertag - ancora sulle pistole

Eravamo rimasti alla realizzazione delle pistole nell'ultimo post:
http://labwma.blogspot.it/2016/03/costruire-pistola-lasertag1.html

--------------------------------------------------------------------------

Procediamo quindi, una volta individuati i piedini da cortocircuitare possiamo anche procedere al taglio della scheda.