4

I'm working in a IoT project and my role is to provide APIs to allow devices to communicate with server/database. I have decided to use MySql for relational data like user details etc.. and MongoDb for other data like device data (Multi tenant data), and PHP Laravel framework for API development.

I just want to know if this is good combination of Language, Framework and Databases? if not then what is the good combination of Language, Framework and Database, as per my requirement.

As of now devices are limited but in future it may goes into thousands and can send data frequently (Once in a minute or once in 5 seconds). Most of the devices will be running on low power and memory, ex., Temperature, Humidity, Heart Beats sensors. Same time APIs will be used for web portal as well. End of the day Rest APIs will get used by Devices, WebPortal, MobileApp.

  1. Is it good to use MongoDb+MySql over other databases like PostgresSQL? or any other suggestions.
  2. Is it good to use two different platforms for API development, one for devices (MQTT+Mosquitto) and another for web portal and mobile app (Laravel). Or any suggestion to make this system better.
  3. What programming language would you suggest in open source?
Helmar
  • 8,450
  • 6
  • 36
  • 84
Shri
  • 341
  • 1
  • 10

1 Answers1

5

If you want to use a RESTlike Environment, you can setup: PHP CodeIgniter + MariaDB But you need to reconsider your requirements. Using REST over HTTP may require the use of intermediate techniques and a webservice based implementation. If you are planning a real-time application, it would be better to use a telemetry messaging protocol, as MQTT.

In our IoT Lab we're implementing this configuration for a real-time solution:

The IOT devices are "Adafruit Feather Huzzah" ESP8266, using arduino PubSubClient.h

The Mosquitto MQTT Broker has not (by now) any security configuration, and every port of MongoDB and MQTT is set by default.

Should work out of the box by setting up the data collections and documents on "application.conf" on Izmailoff's GitHub.