All Projects → Pro → open62541-arduino

Pro / open62541-arduino

Licence: other
open62541 OPC UA example for Arduino

Programming Languages

CMake
9771 projects
C++
36643 projects - #6 most used programming language
python
139335 projects - #7 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to open62541-arduino

Opcua
A client and server implementation of the OPC UA specification written in Rust
Stars: ✭ 202 (+551.61%)
Mutual labels:  opc-ua
OpcUaHelperOld
一个OPC UA客户端二次封装类,使用本组件提供的类库,可以简单便捷的读写OPC-UA服务器上的数据,引用,方法等等操作。本版本为旧版,新版请参照:https://github.com/dathlin/OpcUaHelper
Stars: ✭ 31 (+0%)
Mutual labels:  opc-ua
EM7180 SENtral Calibration
Get the best AHRS accuracy out of the Tlera USFS with good sensor calibration
Stars: ✭ 22 (-29.03%)
Mutual labels:  esp32-arduino
node-opcua-coreaas
An extension for node-opcua implementing CoreAAS Information Model
Stars: ✭ 19 (-38.71%)
Mutual labels:  opc-ua
esp32 gps thingy
GPS location provider and distance measurement with ESP32
Stars: ✭ 36 (+16.13%)
Mutual labels:  esp32-arduino
milo-ece2017
Materials about my talk around Eclipse Milo at EclipseCon Europe 2017
Stars: ✭ 22 (-29.03%)
Mutual labels:  opc-ua
Iot Dc3
IOT DC3 is an open source, distributed Internet of Things (IOT) platform based on Spring Cloud. It is used for rapid development of IOT projects and management of IOT devices. It is a set of solutions for IOT system.
Stars: ✭ 195 (+529.03%)
Mutual labels:  opc-ua
opcua-datasource
An OPC UA datasource for reading from OPC UA servers (DA/HDA/AE) into Grafana directly
Stars: ✭ 43 (+38.71%)
Mutual labels:  opc-ua
esp32-BLEKeyboard
Bluetooth keyboard made from ESP32 board and PS/2 keyboard
Stars: ✭ 26 (-16.13%)
Mutual labels:  esp32-arduino
ESP32Partitions
No description or website provided.
Stars: ✭ 30 (-3.23%)
Mutual labels:  esp32-arduino
QUaModbusClient
Modbus to OPC UA Gateway
Stars: ✭ 38 (+22.58%)
Mutual labels:  opc-ua
Somfy Remote
Somfy remote control emulator connected to MQTT
Stars: ✭ 19 (-38.71%)
Mutual labels:  esp32-arduino
device-epd
E-Paper Display Device
Stars: ✭ 26 (-16.13%)
Mutual labels:  esp32-arduino
Opcua Asyncio
OPC UA library for python > 3.6 asyncio
Stars: ✭ 251 (+709.68%)
Mutual labels:  opc-ua
TTGO-T8-ESP32
esp32-i2s-sdcard-wav-player
Stars: ✭ 89 (+187.1%)
Mutual labels:  esp32-arduino
Opc Ua Client
Visualize and control your enterprise using OPC Unified Architecture (OPC UA) and Visual Studio.
Stars: ✭ 198 (+538.71%)
Mutual labels:  opc-ua
ATM90E32
Updated version of the ATM90E32 Arduino library
Stars: ✭ 22 (-29.03%)
Mutual labels:  esp32-arduino
ESPAsyncE131
Asynchronous E1.31 (sACN) library for Arduino ESP8266 and ESP32
Stars: ✭ 97 (+212.9%)
Mutual labels:  esp32-arduino
ESP-Alerts-for-Arduino
Send Android Notifications to an ESP32 with OLED display
Stars: ✭ 40 (+29.03%)
Mutual labels:  esp32-arduino
ESP32Time
An Arduino library for setting and retrieving internal RTC time on ESP32 boards
Stars: ✭ 120 (+287.1%)
Mutual labels:  esp32-arduino

OPC UA for Arduino using open62541

NOTE: This project is not maintained anymore due to two reasons:

  1. The arduino-cmake modifications I did are not integrated in the main repo. Keeping that fork up-to-date is too much effort. See also arduino-cmake/arduino-cmake#74

  2. In general it's better and easier to use the esp32 framework directly, instead of using the arduino build tools. An example for that can be found here: https://github.com/Pro/open62541-esp32


Example project for compiling open62541 on an Arduino. This specific project uses an Adafruit ESP32 microcontroller with a WLAN module.

Build Status

How to build

Check out the file used by travis, to see which dependencies are required: tools/travis/travis_linux_before_install.sh

Then you can simply build using something like this. Don't forget to set the environment variable ARDUINO_SDK_PATH to the location of the arduino sdk.

mkdir build && cd build
cmake -DWIFI_SSID="SOME_SSID" -DWIFI_PWD="SOME_PWD" ..
make -j

Setting a fixed ttyUSB Port

If you plug in your microcontroller via USB, Linux will automatically assign a /dev/ttyUSB port, starting with index 0. Depending how many USB devices you have connected, it may happen that every time you plug the ESP32, it gets another ttyUSB name. To statically asign a custom port, follow these steps (for Ubuntu):

  1. Plug in the ESP32 and call udevadm info -a -n /dev/ttyUSB0 | grep -E '({serial}|{idProduct}|{idVendor})' | head -n3 (make sure that ttyUSB0 is the ESP32)
  2. Create a new udev rule with sudo nano /etc/udev/rules.d/99-usb-serial.rules and the following content, where you need to replace the values whith the one from previous command.
    SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="01435008", SYMLINK+="ttyUSB9"
    
  3. Now unplug and plug in ESP32 again, and it will be on /dev/ttyUSB9

See also: http://hintshop.ludvig.co.nz/show/persistent-names-usb-serial-devices/

How to flash

If the previous step with makeruns through successfully, you can use the CMAke target to upload/flash the program to your microcontroller:

make arduino_opcua-upload

If everything is set up correctly, the flashing should run through, otherwise please check the CMake files, you may need to adjust the COM port.

Increase the stack size

You need to manually increase the stack size of the loopTask in the file:

arduino-1.5.8/hardware/espressif/esp32/cores/esp32/main.cpp

and change the line

xTaskCreatePinnedToCore(loopTask, "loopTask", 8192, NULL, 1, NULL, ARDUINO_RUNNING_CORE);

to

xTaskCreatePinnedToCore(loopTask, "loopTask", 16384, NULL, 1, NULL, ARDUINO_RUNNING_CORE);

Otherwise you will get an error like:

Guru Meditation Error: Core  1 panic'ed (Unhandled debug exception)
Debug exception reason: Stack canary watchpoint triggered (loopTask) 

How to debug

It is possible to use an OCD debugger to directly debug your code on the microcontroller using gdb (or any IDE which is based on gdb, like Eclipse, CLion, ...).

Additional info can be found in the Wiki: Debugging ESP32

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].