Programm auslesen eines Arduinos?

hey, ich versuche gerade (immer noch) Daten von meinem Arduino zu einer Datenbank in mysql zu senden. Jedoch kommt nichts an und beim Arduino blinkt die ganze Zeit TX (was doch fürs Daten senden steht, oder?).

Hier das Programm von VSC:

var mysql = require('mysql');


var SerialPort = require("serialport");


var column_name = 'Wert'
var table_name = 'Wertetabelle'


const parsers = SerialPort.parsers;
const parser = new parsers.Readline({
    delimiter: '\r\n'
});


var port = new SerialPort('COM4', {
    baudRate: 9600,
    dataBits: 8,
    parity: 'none',
    stopBits: 1,
    flowControl: false
});


port.pipe(parser);


//Determine the connection to MySQL
var con = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "",
  database: "werte_datenbank"
});


//Connect with Database
con.connect(function(err) {
    // Build the connection
    if (err) throw err;
    console.log("Connected!");
});


parser.on('data', function(data){
    console.log(data);


    // Deklariert was genau wo gespeichert werden soll
    var sql = "INSERT INTO `werte_tabelle` (`Wert`) VALUES ('" + data + "');"


    // Speichert bei Änderungen die neuen Daten in der Datenbank
    con.query(sql, function (err, result) {
      if (err) throw err;
      console.log("1 record inserted");
    });
});


//DELETE FROM `werte_tabelle` WHERE 1
var sql = "DELETE FROM `werte_tabelle` WHERE 1"
// Löscht die Datenbank
con.query(sql, function (err, result) {
    if (err) throw err;
    console.log("Every Entry deleted");

});

Hier das Programm vom Arduino Editor:

int pinPx = 3;
int x = 1;
const long intervall = 20000;
bool zeitspanne = true;
float zeit_now = millis();


void setup() {
  Serial.begin(9600);
  pinMode(pinPx, INPUT);


}


void loop() {
  zeit_now = millis();


  while (zeitspanne == true) {
    if (digitalRead(pinPx) == true) {
      Serial.write(x);
    }
    if (millis() > (zeit_now + intervall)) {
      zeitspanne = false;


    }
  }


  pinPx = pinPx + 1;
  x = x + 1;
  zeitspanne = true;
}

Vielen Dank!!

Arduino, Code, Datenbank, MySQL, Programmiersprache, phpMyAdmin, node.js
DropDown-Menu Links für Handy?

wenn ich mein dropdown-menu habe, und ich will dass wenn sich dieses dropdown-menu öffnet und die kategorien zum auswählen bereitstellt, dass wenn ich auf die Kategorie klicke dann sich ein link öffnet, dies funktioniert mit meinem html code (auf der website version) perfekt, jedoch funktioniert dies nicht in der smartphone ansicht, warum das ?

Falls es hilft hier dier html-code

 

<!DOCTYPE html>

<html lang="en">

<head>

  <title>Language Selection</title>

  <style>

    /* Dropdown Button */

    .dropbtn {

      font-size: 16px; 

      border: none;

    }

    /* The container <div> - needed to position the dropdown content */

    .dropdown {

      position: relative;

      display: inline-block;

    }

    /* Dropdown Content */

    .dropdown-content {

      display: none;

      position: absolute;

      background-color: transparent;

      min-width: 100px;

      box-shadow: 0px 0px 0px 0px rgba(0,0,0,0);

      z-index: 1;

      top: 100%;

      left: 50%;

      transform: translateX(-50%);

      margin: 8px 0;

    }

    /* Links inside the dropdown */

    .dropdown-content a {

      color: transparent;

    padding: 15px 13px; 

      text-decoration: none;

       

    }

    /* Change color of dropdown links on hover */

    .dropdown-content a:hover {

      background-color: transparent; /* Ändere die Hintergrundfarbe beim Hover */

    }

    /* Show the dropdown menu when hovering over the dropdown */

    .dropdown:hover .dropdown-content {

      display: block;

    }

    /* Keep the dropdown menu open when hovering over it */

    .dropdown:hover .dropbtn {

      background-color: transparent;

    }

     

  </style>

   

</head>

<body>

  <div class="gtco-loader"></div>

  <div id="page">

    <nav class="gtco-nav" role="navigation">

      <div class="container">

        <div class="row">

          <div class="col-sm-2 col-xs-12">

            <div id="gtco-logo"><a href="index.html">Endo<em>scopy</em></a></div>

          </div>

          <div class="col-xs-10 text-right menu-1 main-nav">

            <ul>

              <li class="active"><a href="#" data-nav-section="home">Home</a></li>

              <li><a href="#" data-nav-section="about">Über uns</a></li>

              <li><a href="#" data-nav-section="practice-areas">Anwendungsbereiche</a></li>

              <li><a href="#" data-nav-section="technics">Operationstechniken</a></li>

              <li><a href="#" data-nav-section="our-team">Unser Team</a></li>

              <li class="btn-cta"><a href="#" data-nav-section="contact"><span>Kontakt</span></a></li>

              <li class="dropdown">

                <div class="dropdown">

                  <a href="#" class="dropbtn">Deutsch ∨</a>

                  <div class="dropdown-content">

                    <p><a href="italiano.html" class="italiano">Italiano</a></p> 

                    <p><a href="english.html" class="english">English</a></p> 

                  </div>

                </div>

              </li>

            </ul>

          </div>

        </div>

      </div>

    </nav>

  </div>

  <script>

  // JavaScript to handle dropdown menu clicks

  document.addEventListener("DOMContentLoaded", function() {

    var dropdownButtons = document.querySelectorAll(".dropdown .dropbtn");

    var dropdownContents = document.querySelectorAll(".dropdown .dropdown-content");

    // Function to toggle the dropdown content visibility

    function toggleDropdown(index) {

      if (dropdownContents[index].classList.contains("show")) {

        dropdownContents[index].classList.remove("show");

      } else {

        dropdownContents[index].classList.add("show");

      }

    }

    // Close dropdown content if clicked outside the dropdown

    window.addEventListener("click", function(event) {

      if (!event.target.matches('.dropbtn')) {

        dropdownContents.forEach(function(content) {

          content.classList.remove("show");

        });

      }

    });

    // Handle dropdown button clicks

    dropdownButtons.forEach(function(button, index) {

      button.addEventListener("click", function(event) {

        event.stopPropagation(); // Prevent the document click event

        toggleDropdown(index);

      });

    });

    // Handle dropdown options clicks

    var dropdownOptions = document.querySelectorAll(".dropdown-content a");

    dropdownOptions.forEach(function(option) {

      option.addEventListener("click", function(event) {

        // Prevent default action

        event.preventDefault();

        // Redirect to the selected page

        window.location.href = option.getAttribute("href");

      });

    });

  });

</script>

</body>

</html>

HTML, Webseite, CSS, JavaScript, HTML5, Code, PHP, Programmiersprache, Webdesign, Webentwicklung
Wie Behebe ich diese Fehler Python CTK/Mailtm?

FEHLER 1 :

Traceback (most recent call last):

 File "C:\Users\arrou\OneDrive\Desktop\cheese\für acc\tm\main.py", line 43, in <module>

  knopf = ctk.CTkButton(main, text="Emails", command=neum('self'))

FEHLER 2 :

File "C:\Users\arrou\OneDrive\Desktop\cheese\für acc\tm\main.py", line 36, in neum

  mail_body = ctk.CTkEntry(mail_window, placeholder_text='Subject: ' + message['subject'] + '\nBody: ' + (

TypeError: 'module' object is not subscriptable

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

Wenn ihr für die oben genannten Probleme eine Lösung habt, dann bitte lasst es mich wissen.

from mailtm import Email, message
import customtkinter as ctk
def listener(message):
    print("\nSubject: " + message['subject'])
    print("Content: " + message['text'] if message['text'] else message['html'])

#Domain bekommen
test = Email()
print("\nDomain: " + test.domain)

# neue email erstellen
test.register()
print("\nEmail Adress: " + str(test.address))

#listiner
test.start(listener)
print("\nEtwas Geduld...")

main = ctk.CTk()
main.geometry("500x320")
main.title("Temp mail By Amjn                             /Mailtm")


emaila = ctk.CTkEntry(main, placeholder_text="         " + test.address, width=900, font=("Helvetica", 20))
emaila.configure(state="readonly")
emaila._corner_radius = 10
emaila.pack()


def neum(self):
    mail_window = ctk.CTkToplevel()
    mail_window.title("amjs tm by mailtm")
    mail_window.geometry('500x320')
    mail_window.corner_radius = 30
    mail_window.resizable(width=True, height=True)
    mail_body = ctk.CTkEntry(mail_window, placeholder_text='Subject: ' + message['subject'] + '\nBody: ' + (
        message['text'] if message['text'] else message['html']), width=900, font=('Helvetica', 20))
    mail_body.pack()

    mail_window.mainloop()


knopf = ctk.CTkButton(main, text="Emails", command=neum('self'))
knopf.pack(pady=10)

main.mainloop()

Code, Programmiersprache, Python, Python 3, Tkinter
wie behebe ich diesen fehler?

Hallo!

Kann mir jemand helfen diese Fehler zu beheben?

FEHLER 1 :Traceback (most recent call last):

 File "C:\Users\arrou\OneDrive\Desktop\cheese\für acc\tmmail\main.py", line 37, in <module>

class mailtm_gui(ctk.CTk):

Fehler 2 :  File "C:\Users\arrou\OneDrive\Desktop\cheese\für acc\tmmail\main.py", line 59, in mailtm_gui

  knopf = ctk.CTkButton(main, text="n", command=neum())

FEHLER 3 :  File "C:\Users\arrou\OneDrive\Desktop\cheese\für acc\tmmail\main.py", line 56, in neum

  mail_body = ctk.CTkEntry(mail_window, placeholder_text='Subject: ' + message['subject'] + '\nBody: ' + (message['text'] if message['text'] else message['html']), width=900, font=('Helvetica', 20))

TypeError: 'module' object is not subscriptable

import customtkinter as ctk
from mailtm import *
from mailtm import message


def listener(message):
    print("\nSubject: " + message['subject'] + str(listener))
    print("Content: " + message['text'] if message['text'] else message['html'] + str(listener))


test = Email()
print("\nDomain: " + test.domain)

test.register()
print("\nEmail Adress: " + str(test.address))


test.start(listener, interval=3)
print("\nHab Sabr.....")


main = ctk.CTk()
main.geometry("500x320")
main.title("Temp mail By Amjn")


emaila = ctk.CTkEntry(main, placeholder_text="         " + test.address, width=900, font=("Helvetica", 20))
emaila.configure(state="readonly")
emaila._corner_radius = 10
emaila.pack()


Copyt = ctk.CTkLabel(main, text="Copy Email", font=("Helvetica", 20))
Copyt.pack()


class mailtm_gui(ctk.CTk):
    def __init__(self):
        ctk.CTk.__init__(self)
        self.geometry('500x320')
        self.title('Temp mail By Amjn')
        listener = Email()
        listener.register()
        emaila = ctk.CTkEntry(self, placeholder_text=listener.address, width=900, font=('Helvetica', 20))
        emaila.configure(state='readonly')
        emaila._corner_radius = 10
        emaila.pack()
        listener.start(listener, interval=3)

    def neum():
        mail_window = ctk.CTkToplevel()
        mail_window.title("amjs tm by mailtm")
        mail_window.geometry('500x320')
        mail_window.corner_radius = 30
        mail_window.resizable(width=True, height=True)
        mail_body = ctk.CTkEntry(mail_window, placeholder_text='Subject: ' + message['subject'] + '\nBody: ' + (message['text'] if message['text'] else message['html']), width=900, font=('Helvetica', 20))
        mail_body.pack()

    knopf = ctk.CTkButton(main, text="n", command=neum())


main.mainloop()
Code, Programmiersprache, Python, Python 3, Tkinter, Pycharm
C Kompilieren für einen w65c02 Mikroprozessor?

Guten Tag,

Ich probiere schon eine weile mit einem w65c02 Mikroprozessor inklusive EEPROM, RAM und IO-Interface herum. Bisher habe ich diesen immer mit VASM Assembly Code Programmiert und es hat auch alles geklappt. Allerdings möchte ich nun für Komplexere Programme diesen mit C Programmieren.

Nach einiger Recherche habe ich mir die vbcc Compiler heruntergeladen. Nun habe ich das Problem das dieser das Programm nicht Kompilieren will.

Kompilieren tu ich indem der folgende Befehl ausgeführt wird:

vc -65c02 +src\\W65C02.cfg -o bin\\a.out src\\main.c

Dieser wird auch soweit erfolgreich ausgeführt, allerdings wird am angegebenen Pfad keine Datei erstellt und es kommt auch keine Meldung das irgendetwas fehlgeschlagen ist.

Der Inhalt vom src\main.c ist nur ein leeres Programm:

void main(void) {
}

Der Inhalt von src\W65C02.cfg ist das Linker-Skript das genutzt wird (Wenn ich dieses option im Befehl weg lasse schlägt der Befehl mit der Ausgabe No config file! fehl). Hier habe ich zwei Inhalte ausprobiert. Den ersten habe ich mit Hilfe der vlink Dokumentation und etwas Recherche erstellt:

MEMORY {
    EEPROM : ORIGIN = 0x8000, LENGTH = 0x7FF9
    RAM : ORIGIN = 0x4000, LENGTH = 0x1FFF
}

SECTIONS {
    .text : {
        *(.text)
    } > EEPROM


    .data : {
        *(.data)
    } > RAM
}

Den zweiten habe ich in meiner Suche nach einer Lösung vom ChatGPT-4o erstellen lassen mit der Frage:

Schreibe ein Linker Skript für vlink das die Speicher Sektionen des 65c02 konfiguriert. Die Speicherbereiche sind folgende:
RAM: 4000 - 5FFF
EEPROM: 8000 - FFF9

Das Ergebnis war (zusammengefasst):

MEMORY {
    RAM   : ORIGIN = 0x4000, LENGTH = 0x2000  /* 4000 - 5FFF, Größe: 8 KB */
    EEPROM: ORIGIN = 0x8000, LENGTH = 0x7FFA  /* 8000 - FFF9, Größe: ca. 32 KB */
}

SEGMENTS {
    CODE:   load = EEPROM, type = ro
    RODATA: load = EEPROM, type = ro
    DATA:   load = RAM,    type = rw
    BSS:    load = RAM,    type = bss
}

Egal ob ich das erstes Linker-Skript oder das zweite genutzt habe es ist immer so abgelaufen wie oben beschrieben.

Als ich auf Fehlersuche war habe ich bei vc auch die Option -vv (very verbose) aktiviert und dann kam beim ersten Linker Skript folgende Ausgabe:

vc frontend for vbcc (c) in 1995-2020 by Volker Barthelmann
flags=1414 opt=1 len=1490
Argument 6:src\main.c
File "src\main.c"=2
add_name: "C:\Users\<user>\AppData\Local\Temp\vbcc068c.asm"


add_name: "C:\Users\<user>\AppData\Local\Temp\vbcc068c.o"
add_name: "C:\Users\<user>\AppData\Local\Temp\vbcc068c.o"


Argument 7:MEMORY {
File "MEMORY {"=5
add_name: "MEMORY {"
Argument 8:    EEPROM : ORIGIN = 0x8000, LENGTH = 0x7FF9
File "    EEPROM : ORIGIN = 0x8000, LENGTH = 0x7FF9"=5
add_name: "    EEPROM : ORIGIN = 0x8000, LENGTH = 0x7FF9"
Argument 9:    RAM : ORIGIN = 0x4000, LENGTH = 0x1FFF
File "    RAM : ORIGIN = 0x4000, LENGTH = 0x1FFF"=5
add_name: "    RAM : ORIGIN = 0x4000, LENGTH = 0x1FFF"
Argument 10:}
File "}"=5
add_name: "}"
Argument 12:SECTIONS {
File "SECTIONS {"=5
add_name: "SECTIONS {"
Argument 13:    .text : {
File "    .text : {"=5
add_name: "    .text : {"
Argument 14:        *(.text)
File "        *(.text)"=5
add_name: "        *(.text)"
Argument 15:    } > EEPROM
File "    } > EEPROM"=5
add_name: "    } > EEPROM"
Argument 17:    .data : {
File "    .data : {"=5
add_name: "    .data : {"
Argument 18:        *(.data)
File "        *(.data)"=5
add_name: "        *(.data)"
Argument 19:    }
File "    }"=5
add_name: "    }"
Argument 20:}
File "}"=5
add_name: "}"
linklen=296

free p->obj
"C:\Users\<user>\AppData\Local\Temp\vbcc068c.o"
free p
free p->obj
"MEMORY {"
free p
free p->obj
"    EEPROM : ORIGIN = 0x8000, LENGTH = 0x7FF9"
free p
free p->obj
"    RAM : ORIGIN = 0x4000, LENGTH = 0x1FFF"
free p
free p->obj
"}"
free p
free p->obj
"SECTIONS {"
free p
free p->obj
"    .text : {"
free p
free p->obj
"        *(.text)"
free p
free p->obj
"    } > EEPROM"
free p
free p->obj
"    .data : {"
free p
free p->obj
"        *(.data)"
free p
free p->obj
"    }"
free p
free p->obj
"}"
free p
free p->obj
"C:\Users\<user>\AppData\Local\Temp\vbcc068c.asm"
free p
free p->obj
"C:\Users\<user>\AppData\Local\Temp\vbcc068c.o"
free p

Beim ausführen vom zweiten Linker Skript mit -vv kommt eine ähnliche Ausgabe wo ebenfalls das Linker-Skript teilweise wiederholt wird.

Hoffe jemand weiß was ich falsch mache und kann helfen, lg Suiram1.

compiler, Assembler, Code, Programmiersprache, vc, C (Programmiersprache)
TypeError: can only concatenate str (not "function") to str?

ich möchte eine ui für mailtm erstellen aber bekomme kein output raus also wenn email ankommen werden sie nicht angezeigt und wenn ich listener eingebe bekomme ich jedes mal den gleichen fehler code

Fehler code:

TypeError: can only concatenate str (not "function") to str

from mailtm import *


def listener(message):
    print("\nSubject: " + message['subject'] + str(listener))
    print("Content: " + message['text'] if message['text'] else message['html'] + str(listener))


test = Email()
print("\nDomain: " + test.domain)

test.register()
print("\nEmail Adress: " + str(test.address))


test.start(listener, interval=3)
print("\nHab Sabr.....")


main = ctk.CTk()
main.geometry("500x320")
main.title("Temp mail By Amjn")


emaila = ctk.CTkEntry(main, placeholder_text="         " + test.address, width=900, font=("Helvetica", 20))
emaila.configure(state="readonly")
emaila._corner_radius = 10
emaila.pack()


Copyt = ctk.CTkLabel(main, text="Copy Email", font=("Helvetica", 20))
Copyt.pack()


def neuw(self=None):
    neu = ctk.CTkToplevel(main)
    neu.title("Emails              (MADE BY AMJN)")
    neu.geometry("500x320")
    neu.corner_radius = 30
    neu.resizable(width=True, height=True)

    Ausg = ctk.CTkEntry(neuw, placeholder_text=("         ") + listener, width=900, font=("Helvetica", 20))
    Ausg.pack()


knopf = ctk.CTkButton(main, text="Emails", font=("Helvetica", 20), command=neuw)
knopf.pack(pady=20)

main.mainloop()
Code, Programmiersprache, Python, UI, Python 3, Tkinter, Pycharm
HTML/CSS/JS: Warum funktioniert meine bindDelete-Funktion nicht und wie kann ich die Preisangaben untereinander formatieren?

Hi, ich habe an einen Spezialisten eine Frage:

import Order from './Order.js';
import ArticleModel from './ArticleModel.js';

export default function UserOrderViewHandler(articleModel) {
  this.articleModel = articleModel;
  this.order = new Order(-1, null, [], 0, 0, 0, 0, 0, false);
}

UserOrderViewHandler.prototype.renderPage = function() {
  let body = document.getElementsByTagName('body')[0];
  body.innerHTML = "";
  body.innerHTML = `<div class="container">
    <sidebar>
      <h1 class="mb-4">Unser Sortiment</h1>
      <div id="articleList">
        <div class="row space-between">
          <div class="col-md-4 mb-4">
            <div class="card" data-index="0">
              <div>
                <h2>Salamipizza</h2>
                <p>Halbe hausgemachte Pizza mit Käse und regionaler Salami</p>
                <p><strong>6.50 €</strong></p>
                <button class="addBtnClss btn btn-primary">Artikel hinzufügen</button>
              </div>
            </div>
          </div>
          <div class="col-md-4 mb-4">
            <div class="card" data-index="1">
              <div>
                <h2>Hamburger</h2>
                <p>Burger mit österreichischem Rindfleisch, Ketchup und Senf</p>
                <p><strong>6.00 €</strong></p>
                <button class="addBtnClss btn btn-primary">Artikel hinzufügen</button>
              </div>
            </div>
          </div>
          <div class="col-md-4 mb-4">
            <div class="card" data-index="2">
              <div>
                <h2>Wochenmenü</h2>
                <p>Frittatensuppe --- Spaghetti Bolognese --- Muffin</p>
                <p><strong>12.50 €</strong></p>
                <button class="addBtnClss btn btn-primary">Artikel hinzufügen</button>
              </div>
            </div>
          </div>
        </div>
      </div>
    </sidebar>
    <sidebar>
      <h1 class="mb-4 extramargin">Bestellung</h1>
      <ul id="order"></ul>
      <div class="form-group">
        <label for="pickupTime">Gewünschte Abholzeit:</label>
        <input type="time" id="pickupTime" class="form-control">
      </div>
    </sidebar>
  </div>`;
}

UserOrderViewHandler.prototype.renderOrder = function() {
  let orderElement = document.getElementById('order');
  orderElement.innerHTML = "";
  orderElement.className = "list-group";

  let i = 0;

  for (let article of this.order.articleList) {
    let articleElement = document.createElement('li');
    articleElement.className = "list-group-item d-flex justify-content-between align-items-center";
    articleElement.innerHTML = `
      <div>1 x ${article.name} &emsp; &emsp; &emsp;${article.price.toFixed(2)} €</div>
      <button class="delBtn btn btn-danger btn-sm" data-index="${i}">Entfernen</button>
    `;
    orderElement.appendChild(articleElement);
    i++;
  }
}

UserOrderViewHandler.prototype.bindAddBtn = function() {
  let buttons = document.getElementsByClassName('addBtnClss');
  const that = this;

  for (let button of buttons) {
    button.addEventListener('click', function() {
      let index = this.closest('.card').getAttribute('data-index');
      let article = that.articleModel.getByIndex(index);

      if (article) {
        that.order.addArticle(article);
        that.renderOrder();
      }
    });
  }
}

UserOrderViewHandler.prototype.bindDeleteBtn = function() {
  let orderElement = document.getElementById('order');
  orderElement.addEventListener('click', function(event) {
    if (event.target.classList.contains('delBtn')) {
      let index = event.target.getAttribute('data-index');
      that.order.deleteArticle(index);
      that.renderOrder();
    }
  });
}
  1. Warum funktioniert meine bindDelete-Funktion nicht, um die li-Elemente wieder zu löschen?
  2. Wie kann ich es schaffen, dass der Preis von jedem li-Element genau so untereinander ist, sodass man ihn schön zusammenrechen könnte:

Danke für die Hilfe.

Bild zum Beitrag
Homepage, HTML, Webseite, CSS, JavaScript, HTML5, Code, Programmiersprache, Webdesign, Webentwicklung, Frontend

Meistgelesene Fragen zum Thema Code