Dessinons la tension du multimètre numérique 34461A de l'instrument de mesure Keysight avec Circuit Python

Connexion Wi-Fi Circuit Python

La carte micro-ordinateur utilise Adafruit Metro M4 Express AirLift (WiFi). C'est la caractéristique principale.

IMG_3038.png

CircuitPython est 5.0.0 Beta 0 (https://github.com/adafruit/circuitpython/tags)  ) Est utilisé. L'installation est ignorée. Lors de l'utilisation du Wi-Fi, le micrologiciel de l'ESP32-WROOM-32 doit être 1.3.0 ou supérieur. Augmentez-le à 1.4.0 ou 1.5.0 selon les instructions d'Adafruit. Consultez cet article. https://www.denshi.club/pc/python/circuitpython/circuitpython-10-step3-1.html

Dans l'éditeur Mu, chargez esp32spi_simpletest.py dans les exemples et modifiez les deux points de connexion du routeur Wi-Fi (nom et mot de passe du routeur) à la ligne 40.

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


Enregistrez-le dans main.py. Ouvrez le numéro de série dans le menu. Le statut d'exécution est affiché en bas de l'écran.

wifi01.png

Le socket CircuitPython (BSD) est basé sur MicroPython

Docs »Référence rapide pour ESP8266» Tutoriel MicroPython pour ESP8266 »5. Socket Network-TCP  https://micropython-docs-ja.readthedocs.io/ja/latest/esp8266/tutorial/network_tcp.html Si vous regardez l'article de commentaire, il est différent du programme de socket Python normal.

import socket

C'est pareil, mais

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

Connectez-vous avec la fonction getaddrinfo (). Jetez ensuite les pièces inutiles et

addr = addr_info[0][-1]

Connectez-vous avec cette adresse.

s = socket.socket()


s.connect(addr)```

 J'ai extrait les pièces nécessaires de l'échantillon.

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))


 Ensuite, nous décrirons comment connecter la prise. Sous Windows et Raspeye, .local peut être utilisé (mDNS et avahi), mais CircuitPython ne le prend pas en charge, alors écrivez directement l'adresse IP.

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")


 Selon le système de traitement, la fonction recv () qui le reçoit ne se terminera pas si le nombre de caractères envoyés est inférieur au buffer. CircuitPython semble avoir une telle spécification. Ce multimètre numérique renvoie environ 70 caractères pour * IDN? Demande sur le nom de l'appareil. Recv (256) n'a pas fini de recevoir.

 C'est le résultat de l'exécution.
 ![wifi02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/407635/0041f4ee-88c5-727b-aab2-be3320bfbfac.png)

# Mesurer la tension

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")

 C'est le résultat de l'exécution. La sortie de la source de tension expérimentale TL431 est connectée à la borne de mesure du multimètre numérique.

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



Recommended Posts

Dessinons la tension du multimètre numérique 34461A de l'instrument de mesure Keysight avec Circuit Python
Dessinez un graphique avec PyQtGraph Partie 5-Augmentez l'axe Y
Prenez des captures d'écran LCD avec Python-LEGO Mindstorms
Visualisez le vocabulaire caractéristique d'un document avec D3.js
Calculer le produit des matrices avec une expression de caractère?
Vous pouvez l'essayer avec une copie! Dessinons un diagramme de réseau sympa avec networkx de Python
Un diagramme de réseau a été créé avec les données du COVID-19.
Mesurer l'importance des entités avec un outil de forêt aléatoire
Obtenez l'identifiant d'un GPU avec une faible utilisation de la mémoire
Obtenez UNIXTIME au début d'aujourd'hui avec une commande
Exécutons la commande à temps avec le bot discord
Touchons l'API de Netatmo Weather Station avec Python. #Python #Netatmo
Visualisons le nombre de personnes infectées par le virus corona avec matplotlib
Utilisons rapidement l'expression distribuée des mots avec fastText!
Analysez le modèle thématique pour devenir romancier avec GensimPy3
L'histoire de la création d'un bot de boîte à questions avec discord.py
Prouvons le théorème d'addition d'une fonction triangulaire en remplaçant la fonction par une fonction dans SymPy (≠ substitution)