Задать вопрос
  • Советы по оптимизации считывание параметров из SD Arduino?

    @papkinv
    А точно не хватает памяти в ардуине? А если испрользовать PROGMEM - т.е. хранить значения в ПЗУ вместе с кодом. Ну и не в строках конечно. В строках это слишком жирно.
    Ответ написан
    Комментировать
  • Не открывается Serial на ардуино?

    @papkinv
    Почему бы для начала не попробовать простой вариант подключения из C#? Без всякой многопоточности.
    Ответ написан
  • Arduino: Пoдскажитe программу для моделирования/симуляции работы электрических принцыпиальных схем для Arduino?

    @papkinv
    Proteus 8 версия. Есть возможность писать как в Arduino IDE, AVR Studio. Есть отладчик. Разводка не очень удобная, но приемлемая. Уроков по ней много. В основном использую для отладки и опробования схем.
    Ответ написан
    Комментировать
  • Как создать кросс-доменную сессию?

    @papkinv
    можно посмотреть на CORS
    Ответ написан
    Комментировать
  • Передача данных от Arduino Uno в C#. Как реализовать?

    @papkinv
    обмен данными с ардуино идет по COM порту. Копать надо в сторону класса SerialPort. Что то примерно такое
    using System;
    using System.IO;
    using System.IO.Ports;
    using System.Text;
    
    namespace MyProgram
    {
        class MainClass
        {
            public static void Main(string[] args)
            {
                Console.WriteLine("Opening serial port");
                SerialPort sp = new SerialPort("COM3", 115200); //порт и скорость обмена
                sp.Open();
                WriteLine("Hello!");
    			while (sp.BytesToRead() <= 0)
    			{
    				System.Threading.Thread.Sleep(1000);
    			}
    			Console.WriteLine(sp.ReadLine());
                sp.Close();
            }        
        }
    }
    Ответ написан
    2 комментария
  • Как сделать обменн данными между arduino nano и Ethernet Shield Module(For Arduino UNO MEGA)?

    @papkinv
    Делал так:
    Шилд подключается к arduino mega 2560. Подключать к более простым не считаю целесообразным - под страницы и изображения требуется много памяти которая есть в MEGA примерно 256K.
    скетч (выдает html если адрес ip-addres или json если запрос к ip-addres/data, прикрутить другие данные просто, вплоть до картинок и др.)

    #include<stdlib.h>
    #include <SPI.h>
    #include <Ethernet.h>
    
    // Enter a MAC address and IP address for your controller below.
    // The IP address will be dependent on your local network:
    byte mac[] = {
      0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
    };
    IPAddress ip(192, 168, 1, 177);
    
    float data[2];
    uint8_t buflen = 8;
    
    const int receive_pin = 2;
    
    String htmlContentType = "text/html";
    String jsonContentType = "application/json";
    
    const char html[] PROGMEM = "<!DOCTYPE html>\r\n"
    "<html>\r\n"
    "<head>\r\n"
    "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">\r\n"
    "</head>\r\n"
    "<body>\r\n"
    "</body>\r\n"
    "</html>\r\n";
    
    // Initialize the Ethernet server library
    // with the IP address and port you want to use
    // (port 80 is default for HTTP):
    EthernetServer server(80);
    
    void setup() {
      // Open serial communications and wait for port to open:
      Serial.begin(9600);
    
      // start the Ethernet connection and the server:
      Ethernet.begin(mac, ip);
      server.begin();
      Serial.print("server is at ");
      Serial.println(Ethernet.localIP());  
    }
    
    void respondPage(EthernetClient client, const prog_char page[])
    {
      char c;
      while((c = pgm_read_byte(page++)))
        client.write(c);
    }
    
    void responseHeader(EthernetClient client, String contentType) {
      client.println("HTTP/1.1 200 OK");
      client.print("Content-Type: ");
      client.println(contentType);
      client.println("Connection: close");
      client.println();
    }
    
    String readURL(EthernetClient client) {
      if(client.find("GET /")) {
        String URL = client.readStringUntil(' ');
        while(client.available()) 
          client.read();
        return URL;
      }
      return "&nothing";
    }
    
    void loop() {
      EthernetClient client = server.available();
      if (client) {
        Serial.println("new client");
        while (client.connected()) {
          if (client.available()) {
              String URL = readURL(client);
              Serial.println("'"+URL+"'");
              if (URL == "") {
                responseHeader(client, htmlContentType);
                respondPage(client, html);
              }
              else if (URL == "data") {
                responseHeader(client, jsonContentType);
                client.print("[1,1]");            
              }
              break;
          }
        }
        delay(1);
        client.stop();
        Serial.println("disconnected");    
      }
    }
    Ответ написан
    Комментировать