Отправка данных с помощью Raspberry Pi, где отображается Nextion 2.4
Привет я пытаюсь отправить данные на дисплей Nextion 2.4 от Raspberry Pi, я пытаюсь сделать изменения, такие как t0.txt="abc", но я не знаю, как я делаю с Python
я пытаюсь этот блок кода, но не работает
import serial
import time
import struct
ser = serial.Serial("/dev/ttyAMA0")
print ser
time.sleep(1)
i=1
k=struct.pack('B', 0xff)
while True:
ser.write(b"t0.txt=")
ser.write(str(i))
ser.write(k)
ser.write(k)
ser.write(k)
print " NEXT"
time.sleep(1)
i=i+1`
2 ответа
Вы пропускаете кавычки вокруг str(i)
, Вы отправляете; t0.txt=1
, t0.txt=2
и т. д. Это должно быть; t0.txt="1"
,
Я думаю, что-то вроде этого должно сработать:
ser.write(b"t0.txt=")
ser.write('"')
ser.write(str(i))
ser.write('"')
ser.write(k)
ser.write(k)
ser.write(k)
В 2023 году мне ничего из этого не помогло,
это работает для переключения страниц
import struct
import serial
port = serial.Serial(
port='/dev/ttyS0',
baudrate =9600,
parity=serial.PARITY_NONE)
eof = struct.pack('B', 0xff)
port.write("page 1".encode())
port.write(eof)
port.write(eof)
port.write(eof)
А это для отображения текста нужноpip install nextion
import asyncio
import logging
import random
from nextion import Nextion, EventType
class App:
def __init__(self):
self.client = Nextion('/dev/ttyS0', 9600, self.event_handler)
# Note: async event_handler can be used only in versions 1.8.0+ (versions 1.8.0+ supports both sync and async versions)
async def event_handler(self, type_, data):
if type_ == EventType.STARTUP:
print('We have booted up!')
elif type_ == EventType.TOUCH:
print('A button (id: %d) was touched on page %d' % (data.component_id, data.page_id))
logging.info('Event %s data: %s', type, str(data))
print(await self.client.get('t0.txt'))
async def run(self):
await self.client.connect()
# await client.sleep()
# await client.wakeup()
# await client.command('sendxy=0')
print(await self.client.get('sleep'))
print(await self.client.get('t0.txt'))
await self.client.set('t0.txt', 'hello')
print('finished')
if __name__ == '__main__':
logging.basicConfig(
format='%(asctime)s - %(levelname)s - %(message)s',
level=logging.DEBUG,
handlers=[
logging.StreamHandler()
])
loop = asyncio.get_event_loop()
app = App()
asyncio.ensure_future(app.run())
loop.run_forever()