Go Down

Topic: Miglior soluzione wifi per scheda di programazione (Read 518 times) previous topic - next topic

ilteo85

Salve a tutti,
per un progetto vorrei trovare una soluzione che mi permetta di avere un accesspoint wifi e delle altre schede wifi che mandano dati all accesspoint.
Ma ho bisogno che tutte queste schede abbiano un uscita a 5v per alimentare i sensori e che la scheda che fa da access point abbia 3 pin analogici (che supportino 5 v).
Da una piccola ricerca ho trovato 3 soluzioni.

1 la più costosa
https://store.arduino.cc/arduino-uno-wifi-rev2
PRO: non dovrei avere grosse difficoltà nell utilizzo e avrei già tutta la parte del progetto non inerente il wifi programmata e adatta visto che è tutto scritto per Arduino UNO.
CONTRO: molto costosa

2 la più economica
collegare un esp8266 al mio Uno
Potrebbe essere un ottima soluzione..l'unico scrupolo che mi faccio è che alla stessa scheda ho collegato già parecchia roba..con l'uscita dei 5v vado a alimentare un amperometro e un termistore. Dovrei portarmi fuori anche 3v per alimentare l'esp8266.. è rischioso alimentare tante cose usando la stessa scheda?
(il sistema si trova lontano da casa e è in funzione h24)

3 la più complessa
https://robotdyn.com/mega-wifi-r3-atmega2560-esp8266-flash-32mb-usb-ttl-ch340g-micro-usb.html
Sulla carta sarebbe la scheda perfetta..si trova a 10 euro ordinandola dalla cina ha una bella potenza di calcolo..ma leggendo in giro sembra MOLTO complessa da far funzionare tra interruttore firmwere ecc

Esistono altre soluzioni, qualcuno puo rassicurarmi sulla seconda soluzione che magari solo io la vedo come "rischiosa"..

mannaggia l'esp32 sarebbe perfetta se avesse i 5v in uscita e supportasse i 5v in ingresso!  :'( 

Grazie mille!

savoriano

Quote
mannaggia l'esp32 sarebbe perfetta se avesse i 5v in uscita e supportasse i 5v in ingresso!
prendi un power module (pochi euro) e fatti dei partitori di tensione.
Pardonnez moi pour mon français, ce n'ai pas ma langue maternelle.

steve-cr

Vai sicuramente su ESP32.
E per i segnali usa QUESTO o qualcosa di simile.
Samantha Cristoforetti: "Mi fai fare un giro sul tuo ultraleggero?". "Certamente, però piloto io !"

ilteo85

Grazie mille..ho in parte risolto per l'alimentazione dei sensori perchè ho scoperto che il modello che ho io di esp32 ha un uscita a 5v!!! :) :)
Il sensore che utilizzo (un amperometro) restituisce sul pin analogico valori da 2,5v in giu (in base a quanti ampere passano)..

posso leggere direttamente questo valore o  serve comunque un commutatore??

è possibile fare a meno del commutatore modificando la formula che usavo su arduino per calcolare gli ampere?

Grazie mille!

steve-cr

Se non superi i 3,3 volt non ti serve un convertitore, quindi modifica la formula e vai tranquillo...
Ehm, mica tanto tranquillo, perchè l'analogica ESP32 non è così lineare come la Arduino UNO, e ogni ESP32 ha i suoi ingressi analogici (non ce n'è uno uguale all'altro, incredibile) ma con un po' di campionamenti ottieni la tua curva.
Samantha Cristoforetti: "Mi fai fare un giro sul tuo ultraleggero?". "Certamente, però piloto io !"

ilteo85

l'analogica ESP32 non è così lineare come la Arduino UNO, e ogni ESP32 ha i suoi ingressi analogici (non ce n'è uno uguale all'altro, incredibile) ma con un po' di campionamenti ottieni la tua curva.
Oddio mai fatti campionamenti per ottenere le curve.. dovrei misurare che voltaggio mi restituisce misurande vari ampere e in base a quello scrivere la formula? spero di no perche sarebbe complicato.. cobsigli?

Grazie mille :)

nid69ita

#6
Mar 22, 2020, 04:12 pm Last Edit: Mar 22, 2020, 04:13 pm by nid69ita
@steve si riferisce a questo: LINK

Inoltre @ilteo85  ricorda che su ESP32 non è implementata analogWrite per il PWM (se ti serve) ma si usa un altro comando
my name is IGOR, not AIGOR

ilteo85

@steve si riferisce a questo: LINK
Grazie mille, ho fatto l'esperimento con il potenziometro come da link tutto regolarissimo 0-4095

Ora ho collegato questo sensore ACS712 e ho adattato lo sketch che utilizzavo su arduino in questo modo

Code: [Select]

float media;
float consumotemp;

void setup() {
  // put your setup code here, to run once:
    Serial.begin(115200);
}

void loop() {
  // put your main code here, to run repeatedly:
  amperometro();
  delay(5000);

}

void amperometro() {
   unsigned int x=0;
   float AcsValue=0.0,Samples=0.0,AvgAcs=0.0,media=0.0;

    for (int x = 0; x < 1000; x++){ //ottengo mille misurazioni
    AcsValue = analogRead(34);     //Read current sensor values  
    Samples = Samples + AcsValue;  //Add samples together
    delay (3); // let ADC settle before next sample 3ms
    }
    AvgAcs=Samples/1000.0;//faccio la media
    media = (2.33 - (AvgAcs * (3.3 / 4095.0)) )/0.066;
    consumotemp = media;
    Serial.println("il consumo di Ampere è: ");
    Serial.println(media);//Print the read current on Serial monitor
    delay(1);
    }


nel codice originale la stringa era


Code: [Select]

media = (2.5 - (AvgAcs * (5.0 / 1024.0)) )/0.066;

//2.5 is offset(I assumed that arduino is working on 5v so the viout at no current comes
//out to be 2.5 which is out offset. If your arduino is working on different voltage than
//you must change the offset according to the input voltage)
//0.066v(66mV) is rise in output voltage when 1A current flows at input


io sto alimentando sempre con 5v anche da esp32 ma ho misurato che il voltaggio che misuravo da a 0 Ampere era 2.33 invece che 2.5 quindi ho adattato cosi.

Code: [Select]

media = (2.33 - (AvgAcs * (3.3 / 4095.0)) )/0.066;


come amperometro non è molto affidabile (credo abbia una discrepanza di 0.6) ma per il momento è l'unica soluzione che ho trovato e visto che principalmente mi serve per sapere quando il consumo passa da 0 a >3
va comunque bene :)


steve-cr

Grazie mille, ho fatto l'esperimento con il potenziometro come da link tutto regolarissimo 0-4095
...e ci mancherebbe anche che non fa da 0 a 4095  :smiley-lol:  :smiley-grin:  :D

Il problema della linearità di ESP32 è che non comincia subito a 0 volt e che finisce prima dei 3,3 volt.

Quindi col potenziometro tu giri e vedi 0-4095, ma spiegato più "meccanicamente" lo ZERO te lo porta per qualche decimo di millimetro del potenziometro, e il 4095 arriva prima del fondoscala del potenziometro.
Per verificarlo dovresti "iniettare" una tensione da 0 a 3,3 volt e vedere che "numerini" ti da: magari comincia a muoversi da 0,1 volt e arriva a 4095 a 3,1 volt...

Comunque il LINK che ti è stato postato è chiarissimo, basta saperlo.
Samantha Cristoforetti: "Mi fai fare un giro sul tuo ultraleggero?". "Certamente, però piloto io !"

Go Up