esp8266_12 + max3421e не дружат

Тема в разделе "Проводная и беспроводная связь", создана пользователем ossinc, 25 янв 2017.

Метки:
  1. ossinc

    ossinc Нерд

    Доброго дня, подключил max3421e к esp12, пытаюсь данные со сканера ШК отправлять на сервак. Но ни ка не могу прочитать данные с max3421. Прошивка на esp стоит NodeMCU 0.9.5 build 20150318 powered by Lua 5.1.4.
    Подскажите куда копать?
     
  2. rkit

    rkit Гуру

    Ну для начала попробуйте внятно описать что же вы делаете и в чем затруднение.
     
  3. ossinc

    ossinc Нерд

    upload_2017-1-25_17-7-49.png
    пытаюсь через esp 12 получать данные со сканера ШК, для этого использую max3421e
     
  4. ossinc

    ossinc Нерд

    использую прошивку
    NodeMCU 0.9.5 build 20150318 powered by Lua 5.1.4
    lua и esplorer, согласно описанию https://nodemcu.readthedocs.io/en/master/en/modules/spi/#spi-module
    нужно инициализировать подключение spi на порту 1(hspi). Но при выполнении кода esp идет на перезагрузку
     
  5. alp69

    alp69 Форумчанин

    В скрипте для ESP используете номера пинов, gpio или индексы? Gpio 16 у ESP как используется? Что происходит на 12 ноге max3421e. Да и неплохо бы скрипт показать.
     
  6. ossinc

    ossinc Нерд

    Код (Python):
    --spi.setup(1, spi.MASTER, spi.CPOL_LOW, spi.CPHA_LOW, 32, 5) --Инициализация hspi подключения

    wifi.setmode(wifi.STATION)
    wifi.sta.config("ossinc","840220300219")
    wifi.sta.autoconnect(1)   -- восстанавливаем соединение со станцией при потере связи

    uart.setup(0,9600,8,0,1,0) -- коннектимся к ардуине
    sv=net.createServer(net.TCP, 60) -- создаем сервер
    global_c = nil
    sv:listen(8266, function(c)      -- и слушаем на порту 8266
         if global_c~=nil then       -- много клиентов мне не надо - я управляю либо с телефона, либо с компа
              global_c:close()
         end
         global_c=c
        c:n("receive",function(sck,pl)    uart.write(0,pl) end)     -- что пришло по TCP валим в UART
    end)

    uart.on("data",0, function(data)    -- Что ответила ардуина - шлем по TCP
    if global_c~=nil then
       
        global_c:send('HTTP/1.1 200 OK\n\n')
        global_c:send('<!DOCTYPE HTML>\n')
        global_c:send('<html>\n')
        global_c:send('<head><meta  content="text/html; charset=utf-8">\n')
        global_c:send('<title>ESP8266</title></head>\n')
        global_c:send('<body>')
        global_c:send('<h3>')
        global_c:send(data)
        global_c:send('</h3>\n')
        global_c:send('</body></html>\n')
    -- при отправке данных по uart на com пытась прочитать что есть на max3421e
    --spi_transaction(HSPI, 3, 0b101, 9, 0x1F3, 8, 0xCC, 0, 0);
    --data_read = (uint8) spi_transaction(HSPI, 3, 0b101, 9, 0x1F3, 0, 0, 8, 0);
    --global_c:send(data_read)
         end
    end,0 )
     
    Последнее редактирование: 26 янв 2017
  7. ИгорьК

    ИгорьК Гуру

    Оформите, пожалуйста, код нормально. Так, как Вы его видете здесь у всех.
     
  8. ossinc

    ossinc Нерд

    подправил - это lua
     
  9. alp69

    alp69 Форумчанин

    Воспользуйтесь кнопкой с иконкой, похожей на сим-карту со стрелками внутри (слева от кнопки с кавычками).
     
  10. ossinc

    ossinc Нерд

    готово
     
  11. alp69

    alp69 Форумчанин

    Так у Вас эта строка закомментирована.
     
  12. ossinc

    ossinc Нерд

    потому что при запуске дает ошибку
     
  13. alp69

    alp69 Форумчанин

    Что пишет?
     
  14. ossinc

    ossinc Нерд

    init.lua:32: malformed number near '0b101'

    я просто не знаю как мне правильно инициализировать доступ к max3421e
     
  15. ossinc

    ossinc Нерд

    Код (Python):
    spi.setup(1, spi.MASTER, spi.CPOL_LOW, spi.CPHA_LOW, 32, 5) --Инициализация hspi подключения

    wifi.setmode(wifi.STATION)
    wifi.sta.config("ossinc","840220300219")
    wifi.sta.autoconnect(1)   -- восстанавливаем соединение со станцией при потере связи

    uart.setup(0,9600,8,0,1,0) -- коннектимся к ардуине
    sv=net.createServer(net.TCP, 60) -- создаем сервер
    global_c = nil
    sv:listen(8266, function(c)      -- и слушаем на порту 8266 :)
         if global_c~=nil then       -- много клиентов мне не надо - я управляю либо с телефона, либо с компа
              global_c:close()
         end
         global_c=c
         c:on("receive",function(sck,pl)    uart.write(0,pl) end)     -- что пришло по TCP валим в UART
    end)
    uart.on("data",0, function(data)    -- Что ответила ардуина - шлем по TCP
    if global_c~=nil then
           
        global_c:send('HTTP/1.1 200 OK\n\n')
        global_c:send('<!DOCTYPE HTML>\n')
        global_c:send('<html>\n')
        global_c:send('<head><meta  content="text/html; charset=utf-8">\n')
        global_c:send('<title>ESP8266</title></head>\n')
        global_c:send('<body>')
        global_c:send('<h3>')
        global_c:send(data)
        global_c:send('</h3>\n')
        global_c:send('</body></html>\n')
    -- при отправке данных по uart на com пытась прочитать что есть на max3421e
    --spi_transaction(HSPI, 3, 0b101, 9, 0x1F3, 8, 0xCC, 0, 0);
    --data_read = (uint8) spi_transaction(HSPI, 3, 0b101, 9, 0x1F3, 0, 0, 8, 0);
    global_c:send(data_read)
         end
    end,0 )
    то тогда init.lua:1: wrong arg type
     
  16. ИгорьК

    ИгорьК Гуру

    Похоже здесь проблема в кодировке. Удалить все до этой строки и после и набрать удаленное заново вручную.
     
  17. ossinc

    ossinc Нерд

    не понял
     
  18. ИгорьК

    ИгорьК Гуру

  19. ossinc

    ossinc Нерд

    так вот согласно этому и делал
     
  20. ИгорьК

    ИгорьК Гуру

    Быает что при копипасте кода с сайтов внутрь его попадают неотображаемые символы. Их изловить не всегда удается. Иногда проще удалить кусок кода и набрать его вручную чтобы поймать символ.