INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
INA219 Telemetrie
17.10.2020, 22:02
Beitrag #1
INA219 Telemetrie
Hallo
Ich will auf einem TFTLCD Display auf der Fern Steuerung Batteriespannung und Strom des fahrenden Fahrzeuges anzeigen. Der RF24 eignet sich nicht weil ich zwei SPI Schnittselle brauche.(RF24,TFT).
So kam ich auf WIFI.
Den Code habe ich von randomnerdutorials dort ist er mit dem BME280 als Wetterstation. Ich habe weil dieser ja auch ein I2C Ausgang hat für meine Zwecke für den INA219 anwenden wollen. Nun kommt in Zeile 62 " Status =
ina219.begin(0x76); Eine Fehlermeldung die ich trotz C-Referenz nicht verstehe
"invalid conversion from `int` to Twowire*` [-fpermissive]. es sind doch beide Sensoren I2C also zwei Draht Sensoren.


Code:
Server Sender


#include <ESP8266WiFi.h>
#include "ESPAsyncWebServer.h"

#include <Wire.h>
//#include <Adafruit_Sensor.h>
#include <Adafruit_INA219.h>                                

// Set your access point network credentials
const char* ssid = "XXXXXXX";
const char* password = "XXXXXXX";



Adafruit_INA219 ina219;                      

// Create AsyncWebServer object on port 80
AsyncWebServer server(80);

String readVolt() {
  return String(ina219.getBusVoltage_V());                                                          
}                                              
                                
String readAmp() {
  return String(ina219.getCurrent_mA());
}

  void setup(){
  // Serial port for debugging purposes
  Serial.begin(115200);
  Serial.println();
  
  // Setting the ESP as an access point
  Serial.print("Setting AP (Access Point)…");
  // Remove the password parameter, if you want the AP (Access Point) to be open
  WiFi.softAP(ssid, password);

  IPAddress IP = WiFi.softAPIP();
  Serial.print("AP IP address: ");
  Serial.println(IP);

  server.on("/busvoltage", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send_P(200, "text/plain", readVolt().c_str());
  });
  server.on("/current", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send_P(200, "text/plain", readAmp().c_str());
  });



  
  bool status;

  // default settings
  // (you can also pass in a Wire library object like &Wire2)
     status = ina219.begin(0x76);                                                                                                                    
  if (!status) {
    Serial.println("Could not find a valid INA219 sensor, check wiring!");
    while (1);
  }
  
  // Start server
  server.begin();
}

void loop(){
  
}


Vielen Dank
Gruss
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.10.2020, 22:17 (Dieser Beitrag wurde zuletzt bearbeitet: 17.10.2020 22:31 von hotsystems.)
Beitrag #2
RE: INA219 Telemetrie
SPI ist ein Bus.
Du kannst somit 2 Clients (oder mehr) daran anschließen. Musst dann nur jedem einen eigenen CS-Pin zuweisen.

Der Fehler ist, du kannst der Variablen "Status" keinen anderen Wert zuweisen. Da musst du die Anweisung ändern.
Z.B. so o.ä.
Code:
if (! ina219.begin(0x76)) {

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.10.2020, 23:20
Beitrag #3
RE: INA219 Telemetrie
Hallo,

die Meinung von Dieter teile ich nicht, "status" ist im Kontext der Funktion als "bool status" deklariert, es müsste also gehen. Habe ich was übersehen?

Ist sicher, dass das "ina219.begin" einen bool-Wert liefert? Ansonsten, in der Library sind doch bestimmt einige Demos drin, mal probieren.

Gruß
GuaAck
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.10.2020, 09:33
Beitrag #4
RE: INA219 Telemetrie
(17.10.2020 23:20)GuaAck schrieb:  ....
Ansonsten, in der Library sind doch bestimmt einige Demos drin, mal probieren.

Genau das Beispiel habe ich ja oben gezeigt.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.10.2020, 10:09 (Dieser Beitrag wurde zuletzt bearbeitet: 18.10.2020 10:10 von Tommy56.)
Beitrag #5
RE: INA219 Telemetrie
(17.10.2020 22:02)Tellen schrieb:  "invalid conversion from `int` to Twowire*`

0x76 ist keine Instanz von TwoWire - steht doch klar dort.

Ein Blick in die Adafruit_INA219.h zeigt klar, dass begin als Parameter eine Instanz von TwoWire haben will oder eine leere Klammer(), dann gilt Wire als Default.
Die Adresse wird im Header auf 0x40 festgelegt. Die 0x76 gilt für den BME 280.

Man sollte schon versuchen wenigstens ansatzweise zu verstehen, was man kopiert. Meist hilft ein Blick in den Quellcode der Libs, besonders der .h.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.10.2020, 10:26
Beitrag #6
RE: INA219 Telemetrie
Der TO könnte sich den ganzen "firlefanz" sparen, wenn er bei SPI bleibt.
Das es funktioniert, hatte ich ja schon geschrieben.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.10.2020, 13:09
Beitrag #7
RE: INA219 Telemetrie
(17.10.2020 22:17)hotsystems schrieb:  SPI ist ein Bus.
Du kannst somit 2 Clients (oder mehr) daran anschließen. Musst dann nur jedem einen eigenen CS-Pin zuweisen.

Der Fehler ist, du kannst der Variablen "Status" keinen anderen Wert zuweisen. Da musst du die Anweisung ändern.
Z.B. so o.ä.
Code:
if (! ina219.begin(0x76)) {

Hallo
Vielen Dank für die Antwort
Mit Deinem Hinweis hat es funktioniert.
Die SPI Sache ist mir neu wusste ich nicht
Probiere ich noch aus.
Gruss
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.10.2020, 13:33
Beitrag #8
RE: INA219 Telemetrie
(18.10.2020 13:09)Tellen schrieb:  Hallo
Vielen Dank für die Antwort
Mit Deinem Hinweis hat es funktioniert.
Die SPI Sache ist mir neu wusste ich nicht
Probiere ich noch aus.
Gruss

Freut mich, dass es funktioniert.
Und danke für die Rückmeldung.
Und SPI ist sehr vielseitig. Auch was die Nutzung betrifft.
Man nennt es auch ISP oder ICSP, dann sind diese Pins zur Programmierung des Controllers gedacht.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Strommessung INA219 Bastel_Ronald 14 2.236 02.04.2019 10:52
Letzter Beitrag: Chopp

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste