Zeichnen wir die Spannung des Digitalmultimeters 34461A des Messgeräts Keysight mit Circuit Python

Circuit Python Wi-Fi-Verbindung

Die Mikrocomputerplatine verwendet Adafruit Metro M4 Express AirLift (WiFi). Dies ist das Hauptmerkmal.

IMG_3038.png

CircuitPython ist 5.0.0 Beta 0 (https://github.com/adafruit/circuitpython/tags)  ) Wird genutzt. Die Installation wird übersprungen. Bei Verwendung von Wi-Fi muss die Firmware von ESP32-WROOM-32 1.3.0 oder höher sein. Erhöhen Sie es gemäß den Anweisungen von Adafruit auf 1.4.0 oder 1.5.0. Siehe diesen Artikel. https://www.denshi.club/pc/python/circuitpython/circuitpython-10-step3-1.html

Laden Sie im Mu-Editor in Beispielen esp32spi_simpletest.py und ändern Sie die beiden Wi-Fi-Router-Verbindungspunkte (Routername und Kennwort) in Zeile 40.

esp.connect_AP(b'MY_SSID_NAME', b'MY_SSID_PASSWORD')


Speichern Sie es in main.py. Öffnen Sie die Seriennummer im Menü. Der Ausführungsstatus wird am unteren Bildschirmrand angezeigt.

wifi01.png

Der CircuitPython-Socket (BSD) basiert auf MicroPython

Dokumente »Kurzanleitung für ESP8266» MicroPython-Lernprogramm für ESP8266 »5. Network-TCP-Socket  https://micropython-docs-ja.readthedocs.io/ja/latest/esp8266/tutorial/network_tcp.html Wenn Sie sich den Kommentarartikel ansehen, unterscheidet er sich vom normalen Python-Socket-Programm.

import socket

Ist das gleiche, aber

addr_info = socket.getaddrinfo("towel.blinkenlights.nl", 23)

Stellen Sie eine Verbindung mit der Funktion getaddrinfo () her. Dann entsorgen Sie die unnötigen Teile und

addr = addr_info[0][-1]

Verbinden Sie sich mit dieser Adresse.

s = socket.socket()


s.connect(addr)```

 Ich habe die notwendigen Teile aus der Probe extrahiert.

import board import busio from digitalio import DigitalInOut import adafruit_esp32spi.adafruit_esp32spi_socket as sockets from adafruit_esp32spi import adafruit_esp32spi import adafruit_requests as requests import time

esp32_cs = DigitalInOut(board.ESP_CS) esp32_ready = DigitalInOut(board.ESP_BUSY) esp32_reset = DigitalInOut(board.ESP_RESET)

spi = busio.SPI(board.SCK, board.MOSI, board.MISO) esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset)

requests.set_socket(sockets, esp)

if esp.status == adafruit_esp32spi.WL_IDLE_STATUS: print("ESP32 found and in idle mode")

print("Connecting to AP...") while not esp.is_connected: try: esp.connect_AP(b'Buffalo-G-20EA', b'xxxxxx') except RuntimeError as e: print("could not connect to AP, retrying: ",e) continue print("Connected to", str(esp.ssid, 'utf-8'), "\tRSSI:", esp.rssi) print("My IP address is", esp.pretty_ip(esp.ip_address))


 Als nächstes beschreiben wir, wie die Buchse angeschlossen wird. Unter Windows und Raspeye kann .local verwendet werden (mDNS und avahi), CircuitPython unterstützt dies jedoch nicht. Schreiben Sie daher die IP-Adresse direkt.

host = "K-34461A-16054.local" ipAddr = "192.168.111.111" ports = 5025 addr_info = sockets.getaddrinfo(ipAddr, ports) print(addr_info) addr = addr_info[0][-1] print(addr) skt = sockets.socket() print("connect to") skt.connect(addr) print("connect'd")

print("send to") skt.send("*IDN?\n")  print("received")

data = skt.recv(64).decode() print(data) skt.close() print("Done")


 Abhängig vom Verarbeitungssystem wird die empfangende Funktion recv () nicht beendet, wenn die Anzahl der gesendeten Zeichen geringer als der Puffer ist. CircuitPython scheint eine solche Spezifikation zu haben. Dieses DMM gibt ungefähr 70 Zeichen für * IDN zurück? Fragen Sie nach dem Gerätenamen. Recv (256) hat den Empfang nicht beendet.

 Dies ist das Ausführungsergebnis.
 ![wifi02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407635/0041f4ee-88c5-727b-aab2-be3320bfbfac.png)

# Messen Sie die Spannung

import board import busio from digitalio import DigitalInOut import adafruit_esp32spi.adafruit_esp32spi_socket as sockets from adafruit_esp32spi import adafruit_esp32spi import adafruit_requests as requests import time

If you are using a board with pre-defined ESP32 Pins:

esp32_cs = DigitalInOut(board.ESP_CS) esp32_ready = DigitalInOut(board.ESP_BUSY) esp32_reset = DigitalInOut(board.ESP_RESET)

spi = busio.SPI(board.SCK, board.MOSI, board.MISO) esp = adafruit_esp32spi.ESP_SPIcontrol(spi, esp32_cs, esp32_ready, esp32_reset)

requests.set_socket(sockets, esp)

if esp.status == adafruit_esp32spi.WL_IDLE_STATUS: print("ESP32 found and in idle mode")

print("Connecting to AP...") while not esp.is_connected: try: esp.connect_AP(b'Buffalo-G-20EA', b'xxxxxxx') except RuntimeError as e: print("could not connect to AP, retrying: ",e) continue print("Connected to", str(esp.ssid, 'utf-8'), "\tRSSI:", esp.rssi) print("My IP address is", esp.pretty_ip(esp.ip_address))

ipAddr = "192.168.111.111" ports = 5025 addr = sockets.getaddrinfo(ipAddr, ports)[0][-1]

skt = sockets.socket() skt.connect(addr)

skt.send("*IDN?\n") print(skt.recv(71).decode())

skt.send('CONF:VOLT:DC 10,0.001\n') skt.send('READ?\n') print('DC: ' + skt.recv(17).decode()) skt.close() print("Done")

 Dies ist das Ausführungsergebnis. Der Ausgang der experimentellen Spannungsquelle TL431 ist mit dem Messanschluss des DMM verbunden.

 ![wifi04a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407635/445fa189-2e2b-59d4-ac34-0a84fd683651.png)



Recommended Posts

Zeichnen wir die Spannung des Digitalmultimeters 34461A des Messgeräts Keysight mit Circuit Python
Zeichnen Sie mit PyQtGraph Teil 5 ein Diagramm. Erhöhen Sie die Y-Achse
Machen Sie LCD-Screenshots mit Python-LEGO Mindstorms
Visualisieren Sie das charakteristische Vokabular eines Dokuments mit D3.js.
Berechnen Sie das Produkt von Matrizen mit einem Zeichenausdruck?
Sie können es mit Kopie versuchen! Lassen Sie uns ein cooles Netzwerkdiagramm mit networkx von Python zeichnen
Mit den Daten von COVID-19 wurde ein Netzwerkdiagramm erstellt.
Messen Sie die Wichtigkeit von Features mit einem zufälligen Gesamtstrukturwerkzeug
Holen Sie sich die ID einer GPU mit geringer Speichernutzung
Holen Sie sich UNIXTIME zu Beginn des heutigen Tages mit einem Befehl
Lassen Sie uns den Befehl pünktlich mit dem Bot der Zwietracht ausführen
Berühren wir die API der Netatmo Weather Station mit Python. #Python #Netatmo
Stellen wir uns die Anzahl der mit Matplotlib mit dem Coronavirus infizierten Personen vor
Verwenden wir den verteilten Ausdruck von Wörtern schnell mit fastText!
Analysieren Sie das Themenmodell, mit GensimPy3 Romanautor zu werden
Die Geschichte, wie man mit discord.py einen Fragenkasten-Bot erstellt
Beweisen wir den Additionssatz einer Dreiecksfunktion, indem wir die Funktion durch eine Funktion in SymPy ersetzen (≠ Substitution).